|
@@ -0,0 +1,520 @@
|
|
|
+<template>
|
|
|
+ <a-drawer :title="title" :maskClosable="true" :width="drawerWidth" placement="right" :closable="true"
|
|
|
+ @close="handleCancel" :visible="visible" style="height: 100%;overflow: auto;padding-bottom: 53px;">
|
|
|
+
|
|
|
+ <template slot="title">
|
|
|
+ <div style="width: 100%;">
|
|
|
+ <span>{{ title }}</span>
|
|
|
+ <span style="display:inline-block;width:calc(100% - 51px);padding-right:10px;text-align: right">
|
|
|
+ <a-button @click="toggleScreen" icon="appstore" style="height:20px;width:20px;border:0px"></a-button>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <a-spin :spinning="confirmLoading">
|
|
|
+ <a-form :form="form">
|
|
|
+
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*规则名称">
|
|
|
+ <a-input placeholder="请输入规则名称" v-model="name" />
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*上班类型">
|
|
|
+ <a-radio-group v-model="type">
|
|
|
+ <a-radio value="1">固定时间上下班</a-radio>
|
|
|
+ <a-radio value="2">按班次上下班</a-radio>
|
|
|
+ <a-radio value="3">自由上下班</a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*定制类型">
|
|
|
+ <a-radio-group v-model="ruletype" >
|
|
|
+ <a-radio value="1">人员</a-radio>
|
|
|
+ <a-radio value="2">部门</a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item v-if="ruletype=='1'" label="*打卡人员" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
|
+ <a-input-search placeholder="点击选择参与打卡人员" v-model="selectedUserName" readOnly @search="onSearch2">
|
|
|
+ <a-button slot="enterButton" icon="search">选择</a-button>
|
|
|
+ </a-input-search>
|
|
|
+ </a-form-item>
|
|
|
+ <!--部门分配-->
|
|
|
+ <a-form-item v-if="ruletype=='2'" label="*打卡部门" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled">
|
|
|
+ <a-input-search placeholder="点击选择部门" v-model="checkedDepartNameString" readOnly @search="onSearch">
|
|
|
+ <a-button slot="enterButton" icon="search">选择</a-button>
|
|
|
+ </a-input-search>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*上班时间" v-if="type==1">
|
|
|
+ <a-time-picker showTime format='HH:mm' v-model="startDate" />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*下班时间" v-if="type==1">
|
|
|
+ <a-time-picker showTime format='HH:mm' v-model="endDate" />
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="*工作日" v-if="type!=2">
|
|
|
+ <a-checkbox-group
|
|
|
+ v-model="values"
|
|
|
+ name="checkboxgroup"
|
|
|
+ @change="onChangets"
|
|
|
+ >
|
|
|
+ <a-checkbox value="1">星期一</a-checkbox>
|
|
|
+ <a-checkbox value="2">星期二</a-checkbox>
|
|
|
+ <a-checkbox value="3">星期三</a-checkbox>
|
|
|
+ <a-checkbox value="4">星期四</a-checkbox>
|
|
|
+ <a-checkbox value="5">星期五</a-checkbox>
|
|
|
+ </br>
|
|
|
+ <a-checkbox value="6">星期六</a-checkbox>
|
|
|
+ <a-checkbox value="0">星期日</a-checkbox>
|
|
|
+ </a-checkbox-group>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item v-if="ruletype=='2'" label="白名单" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
|
+ <a-input-search placeholder="点击选择不参与打卡人员" v-model="checkeUserName" readOnly @search="onSearch2">
|
|
|
+ <a-button slot="enterButton" icon="search">选择</a-button>
|
|
|
+ </a-input-search>
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+ </a-spin>
|
|
|
+ <depart-window ref="departWindow" @ok="modalFormOk"></depart-window>
|
|
|
+ <user-shift-list-modal ref="userShiftListModal" @ok="modalFormOk2"></user-shift-list-modal>
|
|
|
+ <div class="drawer-bootom-button" v-show="!disableSubmit">
|
|
|
+ <a-popconfirm title="确定放弃编辑?" @confirm="handleCancel" okText="确定" cancelText="取消">
|
|
|
+ </a-popconfirm>
|
|
|
+ <a-button @click="handleSubmits()" type="primary" :loading="confirmLoading">提交</a-button>
|
|
|
+ </div>
|
|
|
+ </a-drawer>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import pick from 'lodash.pick'
|
|
|
+ import moment from 'moment'
|
|
|
+ import Vue from 'vue'
|
|
|
+ // 引入搜索部门弹出框的组件
|
|
|
+ import departWindow from './DepartWindow'
|
|
|
+ import userShiftListModal from './UserShiftListModal'
|
|
|
+ import JSelectPosition from '@/components/jeecgbiz/JSelectPosition'
|
|
|
+ import {
|
|
|
+ ACCESS_TOKEN
|
|
|
+ } from "@/store/mutation-types"
|
|
|
+ import {
|
|
|
+ getAction,
|
|
|
+ httpAction
|
|
|
+ } from '@/api/manage'
|
|
|
+ import {
|
|
|
+ disabledAuthFilter
|
|
|
+ } from "@/utils/authFilter"
|
|
|
+ import {
|
|
|
+ duplicateCheck
|
|
|
+ } from '@/api/api'
|
|
|
+ import JImageUpload from '../../../components/jeecg/JImageUpload'
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: "AttendanceRuleModal",
|
|
|
+ components: {
|
|
|
+ departWindow,
|
|
|
+ userShiftListModal
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ values:[],
|
|
|
+ ruletype:"1",
|
|
|
+ work:"2",
|
|
|
+ workday:"",
|
|
|
+ type: "1",
|
|
|
+ id: null,
|
|
|
+ name: "",
|
|
|
+ startDate: "",
|
|
|
+ endDate: "",
|
|
|
+ deptids: "",
|
|
|
+ checkeUserids: [],
|
|
|
+ checkeUserNames: [],
|
|
|
+ checkeUserid: "",
|
|
|
+ checkeUserName: "",
|
|
|
+ selectedUserids: [],
|
|
|
+ selectedUserNames: [],
|
|
|
+ selectedUserid: "",
|
|
|
+ selectedUserName: "",
|
|
|
+ departDisabled: false, //是否是我的部门调用该页面
|
|
|
+ modalWidth: 800,
|
|
|
+ drawerWidth: 700,
|
|
|
+ modaltoggleFlag: true,
|
|
|
+ confirmDirty: false,
|
|
|
+ selectedDepartKeys: [], //保存用户选择部门id
|
|
|
+ checkedDepartKeys: [],
|
|
|
+ checkedDepartNames: [], // 保存部门的名称 =>title
|
|
|
+ checkedDepartNameString: "", // 保存部门的名称 =>title
|
|
|
+ resultDepartOptions: [],
|
|
|
+ userId: "", //保存用户id
|
|
|
+ disableSubmit: false,
|
|
|
+ userDepartModel: {
|
|
|
+ userId: '',
|
|
|
+ departIdList: []
|
|
|
+ }, // 保存SysUserDepart的用户部门中间表数据需要的对象
|
|
|
+ dateFormat: "YYYY-MM-DD",
|
|
|
+ validatorRules: {},
|
|
|
+ departIdShow: false,
|
|
|
+ title: "操作",
|
|
|
+ visible: false,
|
|
|
+ model: {},
|
|
|
+ roleList: [],
|
|
|
+ selectedRole: [],
|
|
|
+ labelCol: {
|
|
|
+ xs: {
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ sm: {
|
|
|
+ span: 5
|
|
|
+ },
|
|
|
+ },
|
|
|
+ wrapperCol: {
|
|
|
+ xs: {
|
|
|
+ span: 24
|
|
|
+ },
|
|
|
+ sm: {
|
|
|
+ span: 16
|
|
|
+ },
|
|
|
+ },
|
|
|
+ uploadLoading: false,
|
|
|
+ confirmLoading: false,
|
|
|
+ headers: {},
|
|
|
+ form: this.$form.createForm(this),
|
|
|
+
|
|
|
+ url: {
|
|
|
+ add: "/attendanceRule/attendanceRule/add",
|
|
|
+ edit: "/attendanceRule/attendanceRule/edit",
|
|
|
+ users:"/userRule/userRule/lists",
|
|
|
+ usersids:"/sys/user/queryUsersByIds"
|
|
|
+ },
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ queryuserName(e){
|
|
|
+ getAction(this.url.users, {
|
|
|
+ ruleId:e
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ if(res.result.length>0){
|
|
|
+ for(var i=0;i<res.result.length;i++){
|
|
|
+ this.selectedUserids.push(res.result[i].id);
|
|
|
+ this.selectedUserNames.push(res.result[i].realname);
|
|
|
+ this.selectedUserid=this.selectedUserids.join(",");
|
|
|
+ this.selectedUserName=this.selectedUserNames.join(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ queryUsersids(e){
|
|
|
+ getAction(this.url.usersids, {
|
|
|
+ id:e
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ if(res.result.length>0){
|
|
|
+ var selectedUserids=[];
|
|
|
+ var selectedUserNames=[];
|
|
|
+ var selectedUserid="";
|
|
|
+ var selectedUserName="";
|
|
|
+ for(var i=0;i<res.result.length;i++){
|
|
|
+ selectedUserids.push(res.result[i].id);
|
|
|
+ selectedUserNames.push(res.result[i].realname);
|
|
|
+ selectedUserid=selectedUserids.join(",");
|
|
|
+ selectedUserName=selectedUserNames.join(",");
|
|
|
+ }
|
|
|
+ if(this.ruletype=="1"||this.ruletype==1){
|
|
|
+ this.selectedUserids=selectedUserids;
|
|
|
+ this.selectedUserNames=selectedUserNames;
|
|
|
+ this.selectedUserid=selectedUserid;
|
|
|
+ this.selectedUserName=selectedUserName;
|
|
|
+ }else if(this.ruletype=="2"||this.ruletype==2){
|
|
|
+ this.checkeUserids=selectedUserids;
|
|
|
+ this.checkeUserNames=selectedUserNames;
|
|
|
+ this.checkeUserid=selectedUserid;
|
|
|
+ this.checkeUserName=selectedUserName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onChangets(checkedValues) {
|
|
|
+ console.log('checked = ', checkedValues);
|
|
|
+ this.values=checkedValues;
|
|
|
+ },
|
|
|
+ handleSubmits() {
|
|
|
+ if(this.name==null||this.name==""){
|
|
|
+ this.$message.warning("请输入规则名称!");
|
|
|
+ return;
|
|
|
+ }if(this.ruletype=="2"){
|
|
|
+ if (this.checkedDepartKeys == null || this.checkedDepartKeys.length == 0) {
|
|
|
+ this.$message.warning("请选择打卡部门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (this.type == "1" && this.startDate == null) {
|
|
|
+ this.$message.warning("请选择上班时间!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (this.type == "1" && this.endDate == null) {
|
|
|
+ this.$message.warning("请选择下班时间!");
|
|
|
+ return;
|
|
|
+ }if(this.type != "2"&&this.values.length==0){
|
|
|
+ this.$message.warning("请选择工作日!");
|
|
|
+ return;
|
|
|
+ }if(this.ruletype=="1"&&this.selectedUserid==""){
|
|
|
+ this.$message.warning("请选择打卡人员!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var url = this.url.add;
|
|
|
+ var types="post"
|
|
|
+ if (this.id!=null&&this.id!="") {
|
|
|
+ url = this.url.edit;
|
|
|
+ types="put";
|
|
|
+ }
|
|
|
+ var adate=null;
|
|
|
+ var edate=null;
|
|
|
+ var workday="";
|
|
|
+ var dept="";
|
|
|
+ var deptName="";
|
|
|
+ var userId="";
|
|
|
+ var userName="";
|
|
|
+ if(this.type == "1"&&this.startDate != null&&this.startDate!=""){
|
|
|
+ adate=moment(this.startDate).format('YYYY-MM-DD HH:mm:ss');
|
|
|
+ }if(this.type == "1"&&this.endDate != null&&this.endDate!=""){
|
|
|
+ edate=moment(this.endDate).format('YYYY-MM-DD HH:mm:ss');
|
|
|
+ } if(this.type!="2"){
|
|
|
+ workday=this.values.join(",");
|
|
|
+ }if(this.ruletype=="1"){
|
|
|
+ userId=this.selectedUserid
|
|
|
+ }if(this.ruletype=="2"){
|
|
|
+ dept=this.deptids;
|
|
|
+ deptName=this.checkedDepartNameString;
|
|
|
+ userId=this.checkeUserid;
|
|
|
+ userName=this.checkeUserName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ this.confirmLoading=true;
|
|
|
+ httpAction(url, {
|
|
|
+ id: this.id,
|
|
|
+ type: this.type,
|
|
|
+ name: this.name,
|
|
|
+ dept:dept ,
|
|
|
+ startDate: adate,
|
|
|
+ endDate: edate,
|
|
|
+ deptName:deptName ,
|
|
|
+ userId:userId,
|
|
|
+ userName:userName,
|
|
|
+ workDay:workday,
|
|
|
+ ruleType:this.ruletype
|
|
|
+ },
|
|
|
+ types).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ this.$message.success(res.message);
|
|
|
+ this.$emit('ok');
|
|
|
+ } else {
|
|
|
+ this.$message.warning(res.message);
|
|
|
+ }
|
|
|
+ }).finally(() => {
|
|
|
+ this.confirmLoading = false;
|
|
|
+ this.close();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //窗口最大化切换
|
|
|
+ toggleScreen() {
|
|
|
+ if (this.modaltoggleFlag) {
|
|
|
+ this.modalWidth = window.innerWidth;
|
|
|
+ } else {
|
|
|
+ this.modalWidth = 800;
|
|
|
+ }
|
|
|
+ this.modaltoggleFlag = !this.modaltoggleFlag;
|
|
|
+ },
|
|
|
+ add() {
|
|
|
+ this.refresh();
|
|
|
+ this.visible = true;
|
|
|
+ },
|
|
|
+ edit(record) {
|
|
|
+ console.log(record)
|
|
|
+ this.visible = true;
|
|
|
+ this.name = record.name;
|
|
|
+ this.type = record.type;
|
|
|
+ this.checkedDepartNameString = record.deptName;
|
|
|
+ this.deptids = record.dept;
|
|
|
+ this.id = record.id;
|
|
|
+ this.ruletype=record.ruleType;
|
|
|
+ this.checkeUserid=record.userId;
|
|
|
+ this.checkeUserids=record.userId.split(",");
|
|
|
+ this.checkeUserName=record.userName;
|
|
|
+ //时间格式化
|
|
|
+ if(record.type=="1"){
|
|
|
+ this.startDate = record.startDate ? moment(record.startDate).format('YYYY-MM-DD HH:mm:ss') : null
|
|
|
+ this.endDate = record.endDate ? moment(record.endDate).format('YYYY-MM-DD HH:mm:ss') : null
|
|
|
+ }
|
|
|
+ if(record.dept!=null&&record.dept!=""){
|
|
|
+ this.checkedDepartKeys= record.dept.split(",");
|
|
|
+ }if(record.workDay!=null&&record.workDay!=""){
|
|
|
+ this.values=record.workDay.split(",");
|
|
|
+ }if(record.ruleType=="1"){
|
|
|
+ this.queryuserName(record.id);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ onSearch2() {
|
|
|
+ var dept="";
|
|
|
+ if(this.ruletype=="2"){
|
|
|
+ if(this.deptids==null||this.deptids==""){
|
|
|
+ this.$message.warning("请先选择部门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ dept=this.deptids;
|
|
|
+ this.$refs.userShiftListModal.selectedKeys=this.checkeUserids;
|
|
|
+ }else{
|
|
|
+ this.$refs.userShiftListModal.selectedKeys=this.selectedUserids;
|
|
|
+ }
|
|
|
+ this.$refs.userShiftListModal.add(dept);
|
|
|
+
|
|
|
+ },
|
|
|
+ // 搜索用户对应的部门API
|
|
|
+ onSearch() {
|
|
|
+ console.log(this.checkedDepartKeys)
|
|
|
+
|
|
|
+ this.$refs.departWindow.add(this.checkedDepartKeys, "","2");
|
|
|
+ departWindow.data.departList = this.checkedDepartKeys;
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ modalFormOk2(e) {
|
|
|
+ this.checkeUserids=[];
|
|
|
+ this.checkeUserNames=[];
|
|
|
+ this.checkeUserid= "";
|
|
|
+ this.checkeUserName="";
|
|
|
+ this.selectedUserids= [];
|
|
|
+ this.selectedUserNames=[];
|
|
|
+ this.selectedUserid="";
|
|
|
+ this.selectedUserName= "";
|
|
|
+ if(e!=null&&e.length>0){
|
|
|
+ var ids=e.join(",");
|
|
|
+ this.queryUsersids(ids)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 获取用户对应部门弹出框提交给返回的数据
|
|
|
+ modalFormOk(formData) {
|
|
|
+ console.log(formData)
|
|
|
+ this.checkedDepartNames = [];
|
|
|
+ this.selectedDepartKeys = [];
|
|
|
+ this.checkedDepartNameString = '';
|
|
|
+ this.userId = formData.userId;
|
|
|
+ this.userDepartModel.userId = formData.userId;
|
|
|
+ this.departIds = [];
|
|
|
+ this.checkedDepartKeys = [];
|
|
|
+ this.deptids = "";
|
|
|
+ this.resultDepartOptions = [];
|
|
|
+ var depart = [];
|
|
|
+ if (formData.departIdList != null && formData.departIdList.length > 0) {
|
|
|
+ for (let i = 0; i < formData.departIdList.length; i++) {
|
|
|
+ this.selectedDepartKeys.push(formData.departIdList[i].key);
|
|
|
+ this.checkedDepartNames.push(formData.departIdList[i].title);
|
|
|
+ this.checkedDepartNameString = this.checkedDepartNames.join(",");
|
|
|
+ this.deptids = this.selectedDepartKeys.join(",");
|
|
|
+ //新增部门选择,如果上面部门选择后不为空直接付给负责部门
|
|
|
+ depart.push({
|
|
|
+ key: formData.departIdList[i].key,
|
|
|
+ title: formData.departIdList[i].title
|
|
|
+ })
|
|
|
+ this.departIds.push(formData.departIdList[i].key)
|
|
|
+ }
|
|
|
+ this.resultDepartOptions = depart;
|
|
|
+ this.userDepartModel.departIdList = this.selectedDepartKeys;
|
|
|
+ this.checkedDepartKeys = this.selectedDepartKeys //更新当前的选择keys
|
|
|
+ }
|
|
|
+ this.$refs.departWindow.close();
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ // 根据屏幕变化,设置抽屉尺寸
|
|
|
+ resetScreenSize() {
|
|
|
+ let screenWidth = document.body.clientWidth;
|
|
|
+ if (screenWidth < 500) {
|
|
|
+ this.drawerWidth = screenWidth;
|
|
|
+ } else {
|
|
|
+ this.drawerWidth = 700;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleCancel() {
|
|
|
+ this.close()
|
|
|
+ },
|
|
|
+ refresh() {
|
|
|
+ this.selectedDepartKeys = [];
|
|
|
+ this.checkedDepartKeys = [];
|
|
|
+ this.checkedDepartNames = [];
|
|
|
+ this.checkedDepartNameString = "";
|
|
|
+ this.userId = ""
|
|
|
+ this.resultDepartOptions = [];
|
|
|
+ this.departId = [];
|
|
|
+ this.departIdShow = false;
|
|
|
+ this.currentTenant = []
|
|
|
+ this.type = "1";
|
|
|
+ this.name = "";
|
|
|
+ this.startDate = null;
|
|
|
+ this.endDate = null;
|
|
|
+ this.id = null;
|
|
|
+ this.checkeUserName="";
|
|
|
+ this.checkeUserNames=[];
|
|
|
+ this.checkeUserid="";
|
|
|
+ this.checkeUserids=[];
|
|
|
+ this.deptids="";
|
|
|
+ this.values=[];
|
|
|
+ this.ruletype="1";
|
|
|
+ this.selectedUserids=[];
|
|
|
+ this.selectedUserNames=[];
|
|
|
+ this.selectedUserid="";
|
|
|
+ this.selectedUserName="";
|
|
|
+ },
|
|
|
+ close() {
|
|
|
+ this.$emit('close');
|
|
|
+ this.visible = false;
|
|
|
+ this.refresh();
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+ .avatar-uploader>.ant-upload {
|
|
|
+ width: 104px;
|
|
|
+ height: 104px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ant-upload-select-picture-card i {
|
|
|
+ font-size: 49px;
|
|
|
+ color: #999;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ant-upload-select-picture-card .ant-upload-text {
|
|
|
+ margin-top: 8px;
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+
|
|
|
+ .ant-table-tbody .ant-table-row td {
|
|
|
+ padding-top: 10px;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .drawer-bootom-button {
|
|
|
+ position: absolute;
|
|
|
+ bottom: -8px;
|
|
|
+ width: 100%;
|
|
|
+ border-top: 1px solid #e8e8e8;
|
|
|
+ padding: 10px 16px;
|
|
|
+ text-align: right;
|
|
|
+ left: 0;
|
|
|
+ background: #fff;
|
|
|
+ border-radius: 0 0 2px 2px;
|
|
|
+ }
|
|
|
+</style>
|