|  | @@ -0,0 +1,1353 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="form-main" id="form-main">
 | 
	
		
			
				|  |  | +    <a-card :body-style="{ padding: '24px 32px' }" :bordered="false">
 | 
	
		
			
				|  |  | +      <!-- <a-form @submit="handleSubmit" :form="form">
 | 
	
		
			
				|  |  | +        <a-form-item
 | 
	
		
			
				|  |  | +          label="标题"
 | 
	
		
			
				|  |  | +          :labelCol="{lg: {span: 7}, sm: {span: 7}}"
 | 
	
		
			
				|  |  | +          :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
 | 
	
		
			
				|  |  | +          <a-input :disabled="disabled"
 | 
	
		
			
				|  |  | +                   v-decorator="[
 | 
	
		
			
				|  |  | +            'name',
 | 
	
		
			
				|  |  | +            {rules: [{ required: true, message: '请输入标题' }]}
 | 
	
		
			
				|  |  | +          ]"
 | 
	
		
			
				|  |  | +                   name="name"
 | 
	
		
			
				|  |  | +                   placeholder="给目标起个名字" />
 | 
	
		
			
				|  |  | +        </a-form-item>
 | 
	
		
			
				|  |  | +        <a-form-item v-if="!disabled"
 | 
	
		
			
				|  |  | +                     :wrapperCol="{ span: 24 }"
 | 
	
		
			
				|  |  | +                     style="text-align: center"
 | 
	
		
			
				|  |  | +        >
 | 
	
		
			
				|  |  | +          <a-button htmlType="submit" type="primary" :disabled="disabled||btndisabled" @click="handleSubmit">保存</a-button>
 | 
	
		
			
				|  |  | +          <a-button style="margin-left: 8px" :disabled="disabled" @click="close">取消</a-button>
 | 
	
		
			
				|  |  | +        </a-form-item>
 | 
	
		
			
				|  |  | +      </a-form>-->
 | 
	
		
			
				|  |  | +      <k-form-build
 | 
	
		
			
				|  |  | +        :value="jsonData"
 | 
	
		
			
				|  |  | +        @change="handleChange"
 | 
	
		
			
				|  |  | +        :dynamicData="dynamicData"
 | 
	
		
			
				|  |  | +        ref="KFB"
 | 
	
		
			
				|  |  | +        @submit="handleSubmit"
 | 
	
		
			
				|  |  | +      />
 | 
	
		
			
				|  |  | +      <div style="text-align:center">
 | 
	
		
			
				|  |  | +        <a-button
 | 
	
		
			
				|  |  | +          htmlType="submit"
 | 
	
		
			
				|  |  | +          type="primary"
 | 
	
		
			
				|  |  | +          :disabled="disabled || btndisabled"
 | 
	
		
			
				|  |  | +          @click="handleSubmit"
 | 
	
		
			
				|  |  | +          class="noprint"
 | 
	
		
			
				|  |  | +        >保存</a-button>
 | 
	
		
			
				|  |  | +        <todoManageOperation
 | 
	
		
			
				|  |  | +          v-if="processData.operationType && processData.operationType == '1'"
 | 
	
		
			
				|  |  | +          :processData="processData"
 | 
	
		
			
				|  |  | +          :todoManageOperationObject="todoManageOperationObject"
 | 
	
		
			
				|  |  | +          :disabled="disabled"
 | 
	
		
			
				|  |  | +          :btndisabled="btndisabled"
 | 
	
		
			
				|  |  | +          @refreshToDo="refreshToDo"
 | 
	
		
			
				|  |  | +          @handleSubmit2="handleSubmit2"
 | 
	
		
			
				|  |  | +        ></todoManageOperation>
 | 
	
		
			
				|  |  | +        <a-button style="margin-left: 8px;" :disabled="disabled || disabled2" @click="close"   class="noprint">取消</a-button>
 | 
	
		
			
				|  |  | +        <!-- <a-button  type="primary"  v-if="printDisable" @click="changedd"   class="noprint" style="margin-left:10px">打印</a-button> -->
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </a-card>
 | 
	
		
			
				|  |  | +    <personnel-files-modal ref="personnelFilesModal" @close="closeP"></personnel-files-modal>
 | 
	
		
			
				|  |  | +    <fixed-zy-modal ref="FixedZyModal" @close="closeP"></fixed-zy-modal>
 | 
	
		
			
				|  |  | +    <car-sq-modal ref="CarSqModal" @close="closeP"></car-sq-modal>
 | 
	
		
			
				|  |  | +    <material-sl-modal ref="MaterialSlModal" @close="closeP"></material-sl-modal>
 | 
	
		
			
				|  |  | +    <!-- 技能博物馆人员列表 -->
 | 
	
		
			
				|  |  | +    <personnel-files-modall-jn ref="personnelFilesModallJn" @close="closeP"></personnel-files-modall-jn> 
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import pick from 'lodash.pick'
 | 
	
		
			
				|  |  | +import todoManageOperation from '../operation/todoManageOperation'
 | 
	
		
			
				|  |  | +import PersonnelFilesModal from './personnelFilesModal'
 | 
	
		
			
				|  |  | +import personnelFilesModallJn from './personnelFilesModallJn'
 | 
	
		
			
				|  |  | +import CarSqModal from './carSqModal'
 | 
	
		
			
				|  |  | +import MaterialSlModal from './materialSlModal'
 | 
	
		
			
				|  |  | +import FixedZyModal from './fixedZyModal'
 | 
	
		
			
				|  |  | +import { postAction, postFormDataAction} from '@/api/manage'
 | 
	
		
			
				|  |  | +import {annualLeave} from '@api/oa/cd-personnel-files'
 | 
	
		
			
				|  |  | +import moment from 'moment'
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +    name: 'DemoForm',
 | 
	
		
			
				|  |  | +    props: {
 | 
	
		
			
				|  |  | +    /* 全局禁用,可表示查看 */
 | 
	
		
			
				|  |  | +        disabled: {
 | 
	
		
			
				|  |  | +            type: Boolean,
 | 
	
		
			
				|  |  | +            default: false,
 | 
	
		
			
				|  |  | +            required: false
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        /* 流程数据 */
 | 
	
		
			
				|  |  | +        processData: {
 | 
	
		
			
				|  |  | +            type: Object,
 | 
	
		
			
				|  |  | +            default: () => {
 | 
	
		
			
				|  |  | +                return {}
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            required: false
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        /* 是否新增 */
 | 
	
		
			
				|  |  | +        isNew: { type: Boolean, default: false, required: false }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    components: {
 | 
	
		
			
				|  |  | +        todoManageOperation,
 | 
	
		
			
				|  |  | +        moment,
 | 
	
		
			
				|  |  | +        PersonnelFilesModal,
 | 
	
		
			
				|  |  | +        FixedZyModal,
 | 
	
		
			
				|  |  | +        CarSqModal,
 | 
	
		
			
				|  |  | +        MaterialSlModal,
 | 
	
		
			
				|  |  | +        personnelFilesModallJn
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    data () {
 | 
	
		
			
				|  |  | +        return {
 | 
	
		
			
				|  |  | +            isSJ: false,
 | 
	
		
			
				|  |  | +            todoManageOperationObject: {
 | 
	
		
			
				|  |  | +                isSave: false,
 | 
	
		
			
				|  |  | +                formData: {},
 | 
	
		
			
				|  |  | +                jsonData: {}
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            leave:0,//剩余年假
 | 
	
		
			
				|  |  | +            disabled2: false, // 用来取决于表单时不同流程节点填写不同表单信息使用
 | 
	
		
			
				|  |  | +            jsonData: {}, // 前台任意改变的json
 | 
	
		
			
				|  |  | +            jsonDataSave: {}, // 保存到数据库的json
 | 
	
		
			
				|  |  | +            url: {
 | 
	
		
			
				|  |  | +                getForm: '/actBusiness/getForm',
 | 
	
		
			
				|  |  | +                addApply: '/actBusiness/add',
 | 
	
		
			
				|  |  | +                editForm: '/actBusiness/editForm',
 | 
	
		
			
				|  |  | +                leaveType: '/sys/dict/getDictItems'
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            description: '流程表单demo,按例开发表单。需在 activitiMixin.js 中加入写好的表单',
 | 
	
		
			
				|  |  | +            // form
 | 
	
		
			
				|  |  | +            form: this.$form.createForm(this),
 | 
	
		
			
				|  |  | +            /* 表单回显数据 */
 | 
	
		
			
				|  |  | +            data: {},
 | 
	
		
			
				|  |  | +            btndisabled: false,
 | 
	
		
			
				|  |  | +            ceshi_file: null,
 | 
	
		
			
				|  |  | +            fArr:[],//保存含有help的单个表单信息
 | 
	
		
			
				|  |  | +            cvarr:[],//保存表单所有的label和key(用来寻找改变字段对应的key)
 | 
	
		
			
				|  |  | +            bv:[],//保存所有含有help的表单信息
 | 
	
		
			
				|  |  | +            dynamicData: {
 | 
	
		
			
				|  |  | +                jsonData: {},
 | 
	
		
			
				|  |  | +                typeData: [], // 请假类型下拉数据
 | 
	
		
			
				|  |  | +                reimbursementTypeList: [], // 报销类型下拉数据
 | 
	
		
			
				|  |  | +                invoiceTypeList: [], // 发票类型下拉数据
 | 
	
		
			
				|  |  | +                add: this.add,
 | 
	
		
			
				|  |  | +                gv:this.funName,
 | 
	
		
			
				|  |  | +                department:[],//技能博物管下拉框信息
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            postInfo: {},//职位信息
 | 
	
		
			
				|  |  | +            deptInfo: {},//部门信息
 | 
	
		
			
				|  |  | +            itemModelNameList: [], // 子表字段名
 | 
	
		
			
				|  |  | +            buttonArr:[],
 | 
	
		
			
				|  |  | +            printDisable:false//打印按钮
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    watch: {
 | 
	
		
			
				|  |  | +    // 'dynamicData.jsonData'(){
 | 
	
		
			
				|  |  | +    //   console.log("发生改变了")
 | 
	
		
			
				|  |  | +    // },
 | 
	
		
			
				|  |  | +        dynamicData: {
 | 
	
		
			
				|  |  | +            handler (newName, oldName) {
 | 
	
		
			
				|  |  | +                console.log('obj.a changed')
 | 
	
		
			
				|  |  | +                console.log(newName)
 | 
	
		
			
				|  |  | +                console.log(oldName)
 | 
	
		
			
				|  |  | +                newName.handle = this.funName1
 | 
	
		
			
				|  |  | +                newName.fixed_zy = this.fixedZy
 | 
	
		
			
				|  |  | +                newName.fixed_gh =this.fixedGh
 | 
	
		
			
				|  |  | +                newName.fixed_db=this.fixedDb
 | 
	
		
			
				|  |  | +                newName.fixed_bf=this.fixedBf
 | 
	
		
			
				|  |  | +                newName.car_sq = this.carSq
 | 
	
		
			
				|  |  | +                newName.material_sl = this.materialSl
 | 
	
		
			
				|  |  | +                newName.pesonListJn = this.pesonListJn
 | 
	
		
			
				|  |  | +            },
 | 
	
		
			
				|  |  | +            immediate: true,
 | 
	
		
			
				|  |  | +            deep: true
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    created () {
 | 
	
		
			
				|  |  | +        window.deleteRow = this.deleteRow
 | 
	
		
			
				|  |  | +        // console.log('流程数据', this.processData)
 | 
	
		
			
				|  |  | +        // 加载一些下拉选择数据等
 | 
	
		
			
				|  |  | +        // this.getDataList()
 | 
	
		
			
				|  |  | +        let businessTable = ''
 | 
	
		
			
				|  |  | +        // 如果没有值则在另一个属性上有值
 | 
	
		
			
				|  |  | +        if (!this.processData.businessTable) {
 | 
	
		
			
				|  |  | +            this.processData.businessTable = this.processData.tableName
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.getAction('/tbTableInfo/query', {
 | 
	
		
			
				|  |  | +            businessTable: this.processData.businessTable,
 | 
	
		
			
				|  |  | +            taskNodeId: this.processData.key,
 | 
	
		
			
				|  |  | +            tableId: this.processData.tableId,
 | 
	
		
			
				|  |  | +            type: '1'
 | 
	
		
			
				|  |  | +        }).then(res => {
 | 
	
		
			
				|  |  | +            var jsonString = JSON.stringify(res.result.jsonContent)
 | 
	
		
			
				|  |  | +            var index = 1
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            var dynamicKeyValueList = []
 | 
	
		
			
				|  |  | +            for (var index = 1; index !== -1;) {
 | 
	
		
			
				|  |  | +                // 动态字符位置
 | 
	
		
			
				|  |  | +                index = jsonString.indexOf('"dynamicKey"', index)
 | 
	
		
			
				|  |  | +                if (index !== -1) {
 | 
	
		
			
				|  |  | +                    // 从指定字符的周后一个字符后开始找(")
 | 
	
		
			
				|  |  | +                    var ihStart = jsonString.indexOf('"', index + 12)
 | 
	
		
			
				|  |  | +                    // 再从 (") 后面位置还是找下一个 (")
 | 
	
		
			
				|  |  | +                    var ihEnd = jsonString.indexOf('"', ihStart + 1)
 | 
	
		
			
				|  |  | +                    // 获取引号之间的字符
 | 
	
		
			
				|  |  | +                    var dynamicKeyValue = jsonString.substring(ihStart + 1, ihEnd)
 | 
	
		
			
				|  |  | +                    // 如果动态表示不为空则获取
 | 
	
		
			
				|  |  | +                    if (dynamicKeyValue != '') {
 | 
	
		
			
				|  |  | +                        dynamicKeyValueList.push(dynamicKeyValue)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    index = ihEnd + 1
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            let that = this;
 | 
	
		
			
				|  |  | +            if (dynamicKeyValueList.length > 0) {
 | 
	
		
			
				|  |  | +                // 获取数据字典数据源
 | 
	
		
			
				|  |  | +                postAction('/sys/dict/getDictItems/getDictList', dynamicKeyValueList).then(dictData => {
 | 
	
		
			
				|  |  | +                    if (dictData.success) {
 | 
	
		
			
				|  |  | +                        this.dynamicData = dictData.result.dicList
 | 
	
		
			
				|  |  | +                         //技能博物馆部门信息
 | 
	
		
			
				|  |  | +                        this.getAction('/sys/sysDepart/queryMyDeptList').then(res => {
 | 
	
		
			
				|  |  | +                             if (res.success) {
 | 
	
		
			
				|  |  | +                               var aa=[]
 | 
	
		
			
				|  |  | +                               res.result.map(item=>{
 | 
	
		
			
				|  |  | +                               aa.push({value:item.departName,label:item.departName})
 | 
	
		
			
				|  |  | +                             })
 | 
	
		
			
				|  |  | +                             this.dynamicData.department = aa
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                 this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                             }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                        // 获取用户下拉数据
 | 
	
		
			
				|  |  | +                        this.getAction('/sys/user/list2', { pageSize: 20000 }).then(userData => {
 | 
	
		
			
				|  |  | +                            if (res.success) {
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                                if(userData.data != null && userData.data.supplierList != null){
 | 
	
		
			
				|  |  | +                                    // userData.data.supplierList.forEach(user => {
 | 
	
		
			
				|  |  | +                                    //      console.log("userDatacode",user.code);
 | 
	
		
			
				|  |  | +                                    //      console.log("userDataname",user.name);
 | 
	
		
			
				|  |  | +                                    // })
 | 
	
		
			
				|  |  | +                                    this.dynamicData.supplierList = userData.data.supplierList
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                              
 | 
	
		
			
				|  |  | +                                userData.result.records.forEach(user => {
 | 
	
		
			
				|  |  | +                                    user.label = user.realname
 | 
	
		
			
				|  |  | +                                    user.value = user.username
 | 
	
		
			
				|  |  | +                                    that.postInfo[user.username] = user.post
 | 
	
		
			
				|  |  | +                                    that.deptInfo[user.username] = user.deptName
 | 
	
		
			
				|  |  | +                                })
 | 
	
		
			
				|  |  | +                                // 存到动态数据源中
 | 
	
		
			
				|  |  | +                                this.dynamicData.userList = userData.result.records
 | 
	
		
			
				|  |  | +                                this.dynamicData.add = this.add // 新增按钮
 | 
	
		
			
				|  |  | +                                
 | 
	
		
			
				|  |  | +                                // 获取json
 | 
	
		
			
				|  |  | +                                this.jsonData = res.result.jsonContent
 | 
	
		
			
				|  |  | +                                // this.jsonData.list[2].columns[0].list[0].help = "date_1663752082983,date_1663753163575,min"
 | 
	
		
			
				|  |  | +                                this.cvarr = []
 | 
	
		
			
				|  |  | +                                this.cvarr = []
 | 
	
		
			
				|  |  | +                                this.fArr =[]
 | 
	
		
			
				|  |  | +                                //遍历help
 | 
	
		
			
				|  |  | +                                this.forHelp(this.jsonData)
 | 
	
		
			
				|  |  | +                                this.jsonDataSave = JSON.parse(JSON.stringify(res.result.jsonContent))
 | 
	
		
			
				|  |  | +                                // 获取申请人信息
 | 
	
		
			
				|  |  | +                                this.getApplicant()
 | 
	
		
			
				|  |  | +                                // 如果是手机端子表初始化子表model
 | 
	
		
			
				|  |  | +                                this.listUpdateModel()
 | 
	
		
			
				|  |  | +                                if (!this.isNew) {
 | 
	
		
			
				|  |  | +                                    this.init()
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                this.$message.error(userData.message)
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        this.$message.error(dictData.message)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                // 获取json
 | 
	
		
			
				|  |  | +                this.jsonData = res.result.jsonContent
 | 
	
		
			
				|  |  | +                // this.jsonData.list[0].trs[5].tds[2].list[0].help = 'input_1662521241170,input_1662521240862,-'
 | 
	
		
			
				|  |  | +                // this.jsonData.list[0].trs[3].tds[2].list[0].help = 'today'
 | 
	
		
			
				|  |  | +                 this.cvarr = []
 | 
	
		
			
				|  |  | +                 this.fArr =[]
 | 
	
		
			
				|  |  | +                 //遍历help(计算)
 | 
	
		
			
				|  |  | +                 this.forHelp(this.jsonData)               
 | 
	
		
			
				|  |  | +                // 获取申请人信息
 | 
	
		
			
				|  |  | +                this.getApplicant()
 | 
	
		
			
				|  |  | +                // 如果是手机端子表初始化子表model
 | 
	
		
			
				|  |  | +                this.listUpdateModel()
 | 
	
		
			
				|  |  | +                // window.jsonData=this.jsonData;
 | 
	
		
			
				|  |  | +                if (!this.isNew) {
 | 
	
		
			
				|  |  | +                    this.init()
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            // 后台检测到流程节点有关联表单且前台处于我的待办界面打开表单详情
 | 
	
		
			
				|  |  | +            if (res.result.isSave && this.processData.isSuspended != undefined) {
 | 
	
		
			
				|  |  | +                this.disabled = false
 | 
	
		
			
				|  |  | +                this.btndisabled = false
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +        fixedZy(){
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.fixedZyModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.personLists('正常')
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.sat = '转移'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        fixedGh(){
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.fixedZyModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.personLists('正常')
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.sat = '归还'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        fixedDb(){
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.fixedZyModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.personLists('正常')
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.sat = '调拨'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        fixedBf(){
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.fixedZyModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.personLists('正常')
 | 
	
		
			
				|  |  | +            this.$refs.FixedZyModal.sat = '报废'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        carSq(){
 | 
	
		
			
				|  |  | +             this.$refs.CarSqModal.carSqModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.CarSqModal.personLists()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        materialSl(){
 | 
	
		
			
				|  |  | +             this.$refs.MaterialSlModal.materialSlModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.MaterialSlModal.personLists()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        //获取部门信息
 | 
	
		
			
				|  |  | +        getDepartment(){
 | 
	
		
			
				|  |  | +         this.$refs.DepartmentModal.departmentModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.DepartmentModal.personLists()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 技能博物馆获取人员信息
 | 
	
		
			
				|  |  | +        pesonListJn(){
 | 
	
		
			
				|  |  | +            this.$refs.personnelFilesModallJn.personnelFilesModallJn = true
 | 
	
		
			
				|  |  | +            this.$refs.personnelFilesModallJn. personLists()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        closeP(value){
 | 
	
		
			
				|  |  | +             var that = this
 | 
	
		
			
				|  |  | +            this.cvarr.map(item=>{
 | 
	
		
			
				|  |  | +                for(let key in value){
 | 
	
		
			
				|  |  | +                    if(item.model == key){
 | 
	
		
			
				|  |  | +                        setTimeout(function(){
 | 
	
		
			
				|  |  | +                        that.$refs.KFB.setData({[key]:value[key]})   
 | 
	
		
			
				|  |  | +                        },0)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +           
 | 
	
		
			
				|  |  | +           
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +         funName1(){
 | 
	
		
			
				|  |  | +            this.$refs.personnelFilesModal.declareElementsModVis = true
 | 
	
		
			
				|  |  | +            this.$refs.personnelFilesModal.personLists()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +    // 根据字典名字获取数据源
 | 
	
		
			
				|  |  | +        getDataListByName (name) {
 | 
	
		
			
				|  |  | +            this.getAction(this.url.leaveType + '/' + name).then(res => {
 | 
	
		
			
				|  |  | +                if (res.success) {
 | 
	
		
			
				|  |  | +                    this.dynamicData[name] = res.result
 | 
	
		
			
				|  |  | +                    console.log(111)
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 获取获取下拉数据等
 | 
	
		
			
				|  |  | +        getDataList () {
 | 
	
		
			
				|  |  | +            // 获取请假类型下拉数据
 | 
	
		
			
				|  |  | +            this.getAction(this.url.leaveType + '/leave_type').then(res => {
 | 
	
		
			
				|  |  | +                if (res.success) {
 | 
	
		
			
				|  |  | +                    this.dynamicData.typeData = res.result
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            // 获取报销类型下拉数据
 | 
	
		
			
				|  |  | +            this.getAction(this.url.leaveType + '/reimbursement_type').then(res => {
 | 
	
		
			
				|  |  | +                if (res.success) {
 | 
	
		
			
				|  |  | +                    this.dynamicData.reimbursementTypeList = res.result
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            // 获取发票类型下拉数据
 | 
	
		
			
				|  |  | +            this.getAction(this.url.leaveType + '/invoice_type').then(res => {
 | 
	
		
			
				|  |  | +                if (res.success) {
 | 
	
		
			
				|  |  | +                    this.dynamicData.invoiceTypeList = res.result
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        /* 回显数据 */
 | 
	
		
			
				|  |  | +        init () {
 | 
	
		
			
				|  |  | +            this.btndisabled = true
 | 
	
		
			
				|  |  | +            var r = this.processData
 | 
	
		
			
				|  |  | +            this.getAction(this.url.getForm, {
 | 
	
		
			
				|  |  | +                tableId: r.tableId,
 | 
	
		
			
				|  |  | +                tableName: r.tableName
 | 
	
		
			
				|  |  | +            }).then(res => {
 | 
	
		
			
				|  |  | +                // 第一次调接口根据子表数据渲染子表前台效果
 | 
	
		
			
				|  |  | +                // 只有手机端才执行
 | 
	
		
			
				|  |  | +                if (this.isSJ) {
 | 
	
		
			
				|  |  | +                    _.keys(res.result).forEach((e, i) => {
 | 
	
		
			
				|  |  | +                        if (e.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                            if (i > 0) {
 | 
	
		
			
				|  |  | +                                this.add()
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                this.getAction(this.url.getForm, {
 | 
	
		
			
				|  |  | +                    tableId: r.tableId,
 | 
	
		
			
				|  |  | +                    tableName: r.tableName
 | 
	
		
			
				|  |  | +                }).then(res => {
 | 
	
		
			
				|  |  | +                    if (res.success) {
 | 
	
		
			
				|  |  | +                        let formData = res.result
 | 
	
		
			
				|  |  | +                        formData.tableName = r.tableName
 | 
	
		
			
				|  |  | +                        // console.log("taboe",formData);
 | 
	
		
			
				|  |  | +                        this.data = formData
 | 
	
		
			
				|  |  | +                        // 如果表单是手机端的子表则
 | 
	
		
			
				|  |  | +                        if (this.isSJ) {
 | 
	
		
			
				|  |  | +                            var formModelList = _.keys(this.data)
 | 
	
		
			
				|  |  | +                                .join(',')
 | 
	
		
			
				|  |  | +                                .split(',')
 | 
	
		
			
				|  |  | +                            var itemList = []
 | 
	
		
			
				|  |  | +                            formModelList.forEach(element => {
 | 
	
		
			
				|  |  | +                                if (element.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                                    itemList = JSON.parse(JSON.stringify(this.data[element]))
 | 
	
		
			
				|  |  | +                                    delete this.data[element]
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            })
 | 
	
		
			
				|  |  | +                            // 子表字段名
 | 
	
		
			
				|  |  | +                            // 子表数据model和值组装
 | 
	
		
			
				|  |  | +                            itemList.forEach((item, index) => {
 | 
	
		
			
				|  |  | +                                this.itemModelNameList.forEach(itemModelName => {
 | 
	
		
			
				|  |  | +                                    this.data[itemModelName + '@' + (index + 1)] = item[itemModelName]
 | 
	
		
			
				|  |  | +                                })
 | 
	
		
			
				|  |  | +                            })
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        // 赋值
 | 
	
		
			
				|  |  | +                        this.$refs.KFB.setData(this.data)
 | 
	
		
			
				|  |  | +                        this.btndisabled = false
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        //遍历help
 | 
	
		
			
				|  |  | +        forHelp(obj){
 | 
	
		
			
				|  |  | +            for(var a in obj){
 | 
	
		
			
				|  |  | +                if (typeof(obj[a]) == "object"){
 | 
	
		
			
				|  |  | +                    if(obj[a].help !=='' && obj[a].help){
 | 
	
		
			
				|  |  | +                        //保存每一项的label和key
 | 
	
		
			
				|  |  | +                        this.cvarr.push({model:obj[a].model,key:obj[a].key,type:obj[a].type})
 | 
	
		
			
				|  |  | +                        obj[a].help = obj[a].help.split(',')
 | 
	
		
			
				|  |  | +                        //保存含有help的item中的label和help里的信息
 | 
	
		
			
				|  |  | +                        this.fArr=[
 | 
	
		
			
				|  |  | +                                  {
 | 
	
		
			
				|  |  | +                                   label:obj[a].model,
 | 
	
		
			
				|  |  | +                                   value:'',
 | 
	
		
			
				|  |  | +                                 },
 | 
	
		
			
				|  |  | +                                 {
 | 
	
		
			
				|  |  | +                                  label: obj[a].help[0],
 | 
	
		
			
				|  |  | +                                  value:'',
 | 
	
		
			
				|  |  | +                                 },
 | 
	
		
			
				|  |  | +                                {
 | 
	
		
			
				|  |  | +                                  label: obj[a].help[1],
 | 
	
		
			
				|  |  | +                                  value:'',
 | 
	
		
			
				|  |  | +                                 },
 | 
	
		
			
				|  |  | +                                {
 | 
	
		
			
				|  |  | +                                   label: obj[a].help[2],
 | 
	
		
			
				|  |  | +                                   value:'',
 | 
	
		
			
				|  |  | +                                },
 | 
	
		
			
				|  |  | +                            ]
 | 
	
		
			
				|  |  | +                        //保存多各含有help的数据
 | 
	
		
			
				|  |  | +                        this.bv.push({bn:this.fArr})
 | 
	
		
			
				|  |  | +                       //默认当天时间
 | 
	
		
			
				|  |  | +                        this.defualtData(this.fArr)
 | 
	
		
			
				|  |  | +                    }else if(obj[a].help ==''){
 | 
	
		
			
				|  |  | +                        this.cvarr.push({model:obj[a].model,key:obj[a].key,type:obj[a].type})
 | 
	
		
			
				|  |  | +                    }else if(obj[a].type == 'button'){
 | 
	
		
			
				|  |  | +                        this.buttonArr.push(obj[a])
 | 
	
		
			
				|  |  | +                         this.buttonShow(obj[a])         
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    this.forHelp(obj[a])
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                }     
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        buttonShow(obj){
 | 
	
		
			
				|  |  | +            if(obj.label == '打印'){
 | 
	
		
			
				|  |  | +                this.printDisable = true
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        defualtData(item){
 | 
	
		
			
				|  |  | +                           if(item[1].label =='today'){
 | 
	
		
			
				|  |  | +                               item[0].value =moment(new Date().toLocaleDateString()).format('YYYY-MM-DD HH:mm')
 | 
	
		
			
				|  |  | +                               var that = this
 | 
	
		
			
				|  |  | +                               setTimeout(function(){
 | 
	
		
			
				|  |  | +                               that.$refs.KFB.setData({[item[0].label]:item[0].value})   
 | 
	
		
			
				|  |  | +                                  },0)
 | 
	
		
			
				|  |  | +                           }else if(item[1].label =='user'){
 | 
	
		
			
				|  |  | +                              this.$store.getters.userInfo
 | 
	
		
			
				|  |  | +                               var that = this
 | 
	
		
			
				|  |  | +                               setTimeout(function(){
 | 
	
		
			
				|  |  | +                               that.$refs.KFB.setData({[item[0].label]:that.$store.getters.userInfo.username})   
 | 
	
		
			
				|  |  | +							   
 | 
	
		
			
				|  |  | +                               if(that.processData.businessTable == 'regular_employee_apply'){//员工转正申请
 | 
	
		
			
				|  |  | +                                 that.$refs.KFB.setData({apply_department:that.deptInfo[that.$store.getters.userInfo.username]})   
 | 
	
		
			
				|  |  | +                                 // that.$refs.KFB.setData({job_title:that.postInfo[that.$store.getters.userInfo.username]})   
 | 
	
		
			
				|  |  | +                               }
 | 
	
		
			
				|  |  | +                               if(that.processData.businessTable == 'seal_apply'){//用印申请单
 | 
	
		
			
				|  |  | +                                 that.$refs.KFB.setData({apply_department:that.deptInfo[that.$store.getters.userInfo.username]})   
 | 
	
		
			
				|  |  | +                               }
 | 
	
		
			
				|  |  | +                               if(that.processData.businessTable == 'separation_application'){//离职申请
 | 
	
		
			
				|  |  | +                                 that.$refs.KFB.setData({job_title:that.postInfo[that.$store.getters.userInfo.username]})   
 | 
	
		
			
				|  |  | +                               }
 | 
	
		
			
				|  |  | +                          
 | 
	
		
			
				|  |  | +							   
 | 
	
		
			
				|  |  | +                                  },0)
 | 
	
		
			
				|  |  | +                                  annualLeave({username:that.$store.getters.userInfo.username}).then(res => {
 | 
	
		
			
				|  |  | +                                   if (res.success) {
 | 
	
		
			
				|  |  | +                                   this.leave = res.result.nannualNowNum
 | 
	
		
			
				|  |  | +                                  }else{
 | 
	
		
			
				|  |  | +                                   this.$message.error(res.message);
 | 
	
		
			
				|  |  | +                                  }
 | 
	
		
			
				|  |  | +                                })
 | 
	
		
			
				|  |  | +                           }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 获取申请人信息
 | 
	
		
			
				|  |  | +        getApplicant () {
 | 
	
		
			
				|  |  | +            console.log('aa', this.$refs.KFB.form.getFieldValue('applicant'))
 | 
	
		
			
				|  |  | +            // if (this.$refs.KFB.form.getFieldValue('applicant')) {
 | 
	
		
			
				|  |  | +            //   alert(1)
 | 
	
		
			
				|  |  | +            //   this.$refs.KFB.setData({
 | 
	
		
			
				|  |  | +            //     applicant: this.$store.getters.userInfo.username
 | 
	
		
			
				|  |  | +            //   })
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        changedd(){
 | 
	
		
			
				|  |  | +         window.print()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        //主子表计算 
 | 
	
		
			
				|  |  | +         tableCalculation(value){
 | 
	
		
			
				|  |  | +             var number1 = 0,
 | 
	
		
			
				|  |  | +                number2 = 0
 | 
	
		
			
				|  |  | +                //寻找help信息中对应的modol值
 | 
	
		
			
				|  |  | +               this.bv.map(item=>{
 | 
	
		
			
				|  |  | +                       this.cvarr.map(vv=>{
 | 
	
		
			
				|  |  | +                           if(vv.key == item.bn[1].label){
 | 
	
		
			
				|  |  | +                               number1 = vv.model
 | 
	
		
			
				|  |  | +                           }else if(vv.key == item.bn[2].label){
 | 
	
		
			
				|  |  | +                               number2 = vv.model
 | 
	
		
			
				|  |  | +                           }
 | 
	
		
			
				|  |  | +                   })
 | 
	
		
			
				|  |  | +                   //表中每一行分别计算
 | 
	
		
			
				|  |  | +                   var sum = 0
 | 
	
		
			
				|  |  | +                    value.map(b=>{
 | 
	
		
			
				|  |  | +                      b[item.bn[0].label] = b[number1]*b[number2]  
 | 
	
		
			
				|  |  | +                      sum += b[item.bn[0].label]   //计算出表格内的总价总和
 | 
	
		
			
				|  |  | +                      if(this.$store.getters.nickname=='崔崇杰'){
 | 
	
		
			
				|  |  | +                           b['procurement_type']='1'
 | 
	
		
			
				|  |  | +                      }else{
 | 
	
		
			
				|  |  | +                          b['procurement_type']='2'
 | 
	
		
			
				|  |  | +                      } 
 | 
	
		
			
				|  |  | +                    })  
 | 
	
		
			
				|  |  | +                    this.$refs.KFB.setData({sum:sum})   
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +               })
 | 
	
		
			
				|  |  | +         },
 | 
	
		
			
				|  |  | +         specialTerms(value,key){
 | 
	
		
			
				|  |  | +            var that = this
 | 
	
		
			
				|  |  | +            //剩余年假
 | 
	
		
			
				|  |  | +            if(key == 'employe_name'){
 | 
	
		
			
				|  |  | +                setTimeout(function(){
 | 
	
		
			
				|  |  | +                    annualLeave({username:value}).then(res => {
 | 
	
		
			
				|  |  | +                    if (res.success) {
 | 
	
		
			
				|  |  | +                      //选择姓名获取页面的请假类型和时间间隔
 | 
	
		
			
				|  |  | +                      that.leave = res.result.nannualNowNum
 | 
	
		
			
				|  |  | +                      var category = that.$refs.KFB.form.getFieldValue('leave_category')
 | 
	
		
			
				|  |  | +                      var time1 = that.$refs.KFB.form.getFieldValue('start_date')
 | 
	
		
			
				|  |  | +                      var time2 = that.$refs.KFB.form.getFieldValue('end_date')
 | 
	
		
			
				|  |  | +                      var timeC=that.timeDifference(time1,time2,'min') //获取时间差
 | 
	
		
			
				|  |  | +                      //事假,超过180分钟,年假大于0.5
 | 
	
		
			
				|  |  | +                      if(category == 1 &&timeC>=180&&that.leave>=0.5){
 | 
	
		
			
				|  |  | +                          that.$refs.KFB.setData({unit:'2'})
 | 
	
		
			
				|  |  | +                          that.$refs.KFB.setData({leave_category:'2'})
 | 
	
		
			
				|  |  | +                        }else if(category == 2 && that.leave<0.5){   //类型为年假,剩余年假小于0.5
 | 
	
		
			
				|  |  | +                             that.$refs.KFB.setData({unit:'1'}) 
 | 
	
		
			
				|  |  | +                             that.$refs.KFB.setData({leave_category:''})
 | 
	
		
			
				|  |  | +                             that.$message.error('剩余年假不足!');
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }else{
 | 
	
		
			
				|  |  | +                       that.$message.error(res.message); 
 | 
	
		
			
				|  |  | +                       
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +             //请假类型与单位
 | 
	
		
			
				|  |  | +            //事假
 | 
	
		
			
				|  |  | +            if(key == 'leave_category' && value == '1'){
 | 
	
		
			
				|  |  | +                setTimeout(function(){
 | 
	
		
			
				|  |  | +                var time1 = that.$refs.KFB.form.getFieldValue('start_date')
 | 
	
		
			
				|  |  | +                var time2 = that.$refs.KFB.form.getFieldValue('end_date')
 | 
	
		
			
				|  |  | +                var timeC=that.timeDifference(time1,time2,'min') //获取时间差
 | 
	
		
			
				|  |  | +                if(timeC>=180 && that.leave>=0.5){ //事假,时间差大于180,剩余年假大于0.5
 | 
	
		
			
				|  |  | +                    that.$refs.KFB.setData({unit:'2'})
 | 
	
		
			
				|  |  | +                    that.$refs.KFB.setData({leave_category:'2'})
 | 
	
		
			
				|  |  | +                }else{
 | 
	
		
			
				|  |  | +                    that.$refs.KFB.setData({unit:'1'})   
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +            }else if(key == 'leave_category' && value == '3'){  //病假
 | 
	
		
			
				|  |  | +                setTimeout(function(){
 | 
	
		
			
				|  |  | +                 that.$refs.KFB.setData({unit:'1'})   
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +            }else if(key == 'leave_category' && value == '2'){//年假
 | 
	
		
			
				|  |  | +                 setTimeout(function(){
 | 
	
		
			
				|  |  | +                    if(that.leave >=0.5){  //剩余年假大于0.5
 | 
	
		
			
				|  |  | +                        that.$refs.KFB.setData({unit:'2'})  
 | 
	
		
			
				|  |  | +                    }else{ //剩余年假小于0.5
 | 
	
		
			
				|  |  | +                         that.$refs.KFB.setData({unit:'1'}) 
 | 
	
		
			
				|  |  | +                         that.$refs.KFB.setData({leave_category:''})
 | 
	
		
			
				|  |  | +                         that.$message.error('剩余年假不足!');
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            }else if(key == 'leave_category'){
 | 
	
		
			
				|  |  | +                setTimeout(function(){
 | 
	
		
			
				|  |  | +                    that.$refs.KFB.setData({unit:'2'})   
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //时间间隔和类型
 | 
	
		
			
				|  |  | +            if(key =='start_date' || key =='end_date'){
 | 
	
		
			
				|  |  | +                setTimeout(function(){
 | 
	
		
			
				|  |  | +                    var time2 = that.$refs.KFB.form.getFieldValue('end_date')
 | 
	
		
			
				|  |  | +                    var time1 = that.$refs.KFB.form.getFieldValue('start_date')
 | 
	
		
			
				|  |  | +                    var timeC=that.timeDifference(time1,time2,'min')
 | 
	
		
			
				|  |  | +                    var lx=that.$refs.KFB.form.getFieldValue('leave_category')
 | 
	
		
			
				|  |  | +                    if(timeC>=180&&lx=='1'&&that.leave>=0.5){ //事假,时间差大于180,剩余年假大于0.5
 | 
	
		
			
				|  |  | +                        that.$refs.KFB.setData({unit:'2'})
 | 
	
		
			
				|  |  | +                          that.$refs.KFB.setData({leave_category:'2'})
 | 
	
		
			
				|  |  | +                     }
 | 
	
		
			
				|  |  | +                },0)
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +         },
 | 
	
		
			
				|  |  | +        // 表单字段数值发生改变事件
 | 
	
		
			
				|  |  | +        handleChange (value, key) {  
 | 
	
		
			
				|  |  | +          if(key == 'proposer' && this.processData.businessTable == 'regular_employee_apply'){//员工转正申请:申请人部门
 | 
	
		
			
				|  |  | +            this.$refs.KFB.setData({apply_department:this.deptInfo[value]})   
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if(key == 'regular_employee' && this.processData.businessTable == 'regular_employee_apply'){//员工转正申请:转正人员岗位
 | 
	
		
			
				|  |  | +            this.$refs.KFB.setData({job_title:this.postInfo[value]})   
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if(key == 'proposer' && this.processData.businessTable == 'seal_apply'){//用印申请单
 | 
	
		
			
				|  |  | +            this.$refs.KFB.setData({apply_department:this.deptInfo[value]})   
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          if(key == 'employee_name' && this.processData.businessTable == 'separation_application'){//离职申请
 | 
	
		
			
				|  |  | +            this.$refs.KFB.setData({job_title:this.postInfo[value]})   
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +                 
 | 
	
		
			
				|  |  | +            //改变的表单是主子表类型时
 | 
	
		
			
				|  |  | +            if((value instanceof Array) && (key.indexOf('child&')!==-1)){
 | 
	
		
			
				|  |  | +                this.tableCalculation(value)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            //特别字段
 | 
	
		
			
				|  |  | +            this.specialTerms(value,key)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //代码赘余,日后维护
 | 
	
		
			
				|  |  | +            //保存发生改变字段名对应的key 
 | 
	
		
			
				|  |  | +            var cc ='',
 | 
	
		
			
				|  |  | +                type = ''
 | 
	
		
			
				|  |  | +                this.cvarr.map(k =>{
 | 
	
		
			
				|  |  | +                     if(k.model ==key){
 | 
	
		
			
				|  |  | +                        cc=k.key
 | 
	
		
			
				|  |  | +                        type = k.type
 | 
	
		
			
				|  |  | +                      }})
 | 
	
		
			
				|  |  | +            //根据数值改变计算
 | 
	
		
			
				|  |  | +            var that =this
 | 
	
		
			
				|  |  | +            setTimeout(function(){
 | 
	
		
			
				|  |  | +              that.bv.map(event =>{
 | 
	
		
			
				|  |  | +                 if(event.bn[1].label == cc || event.bn[2].label == cc){
 | 
	
		
			
				|  |  | +                    that.cvarr.map(k=>{
 | 
	
		
			
				|  |  | +                        if(k.key == event.bn[1].label){
 | 
	
		
			
				|  |  | +                                 event.bn[1].value = that.$refs.KFB.form.getFieldValue(k.model)
 | 
	
		
			
				|  |  | +                        }else if(k.key == event.bn[2].label){
 | 
	
		
			
				|  |  | +                                 event.bn[2].value = that.$refs.KFB.form.getFieldValue(k.model)
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    if(type == 'date'){
 | 
	
		
			
				|  |  | +                        if(event.bn[1].value!=='' && event.bn[2].value!==''){
 | 
	
		
			
				|  |  | +                            var state = ''
 | 
	
		
			
				|  |  | +                            state = event.bn[3].label
 | 
	
		
			
				|  |  | +                            event.bn[0].value = that.timeDifference(event.bn[1].value,event.bn[2].value,state)
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                       }else{
 | 
	
		
			
				|  |  | +                        if(event.bn[3].label =="+"){
 | 
	
		
			
				|  |  | +                           event.bn[0].value = Number(event.bn[1].value)+Number(event.bn[2].value)  
 | 
	
		
			
				|  |  | +                        }else if(event.bn[3].label =="-"){
 | 
	
		
			
				|  |  | +                           event.bn[0].value = Number(event.bn[1].value)-Number(event.bn[2].value)  
 | 
	
		
			
				|  |  | +                        }else if(event.bn[3].label =="*"){
 | 
	
		
			
				|  |  | +                            event.bn[0].value = Number(event.bn[1].value)*Number(event.bn[2].value)  
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }         
 | 
	
		
			
				|  |  | +                    that.$refs.KFB.setData({[event.bn[0].label]:event.bn[0].value})
 | 
	
		
			
				|  |  | +                 }
 | 
	
		
			
				|  |  | +              })     
 | 
	
		
			
				|  |  | + 
 | 
	
		
			
				|  |  | +            },0)
 | 
	
		
			
				|  |  | +                     // // 数据变化时触发
 | 
	
		
			
				|  |  | +            // // 如果开始时间发生变化
 | 
	
		
			
				|  |  | +            // if (key == 'start_time') {
 | 
	
		
			
				|  |  | +            //     // 判断结束时间是否存在
 | 
	
		
			
				|  |  | +            //     if (this.$refs.KFB.form.getFieldValue('end_time')) {
 | 
	
		
			
				|  |  | +            //         // 获取时间差
 | 
	
		
			
				|  |  | +            //         let duration = startEndFun(value, this.$refs.KFB.form.getFieldValue('end_time'))
 | 
	
		
			
				|  |  | +            //         if (duration) {
 | 
	
		
			
				|  |  | +            //             // 使用k-form-design组件的form属性修改表单数据
 | 
	
		
			
				|  |  | +            //             this.$refs.KFB.setData({
 | 
	
		
			
				|  |  | +            //                 duration: duration
 | 
	
		
			
				|  |  | +            //             })
 | 
	
		
			
				|  |  | +            //         }
 | 
	
		
			
				|  |  | +            //     }
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +            // // 如果结束时间发生变化
 | 
	
		
			
				|  |  | +            // if (key == 'end_time') {
 | 
	
		
			
				|  |  | +            //     // 判断结束时间是否存在
 | 
	
		
			
				|  |  | +            //     if (this.$refs.KFB.form.getFieldValue('start_time')) {
 | 
	
		
			
				|  |  | +            //         // 获取时间差
 | 
	
		
			
				|  |  | +            //         let duration = startEndFun(this.$refs.KFB.form.getFieldValue('start_time'), value)
 | 
	
		
			
				|  |  | +            //         if (duration) {
 | 
	
		
			
				|  |  | +            //             // 使用k-form-design组件的form属性修改表单数据
 | 
	
		
			
				|  |  | +            //             this.$refs.KFB.setData({
 | 
	
		
			
				|  |  | +            //                 duration: duration
 | 
	
		
			
				|  |  | +            //             })
 | 
	
		
			
				|  |  | +            //         }
 | 
	
		
			
				|  |  | +            //     }
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // handler
 | 
	
		
			
				|  |  | +        handleSubmit (e) {
 | 
	
		
			
				|  |  | +            // return new Promise((resolve)=>{
 | 
	
		
			
				|  |  | +            // 通过函数获取数据
 | 
	
		
			
				|  |  | +            this.$refs.KFB.getData()
 | 
	
		
			
				|  |  | +                .then(res => {
 | 
	
		
			
				|  |  | +                  let formData1 = JSON.parse(JSON.stringify(res))
 | 
	
		
			
				|  |  | +                  console.log("orl",formData1)
 | 
	
		
			
				|  |  | +                    // 处理手机端子表数据
 | 
	
		
			
				|  |  | +                    if (this.isSJ) {
 | 
	
		
			
				|  |  | +                        this.itemData(res)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    // 清除为空的表单数据
 | 
	
		
			
				|  |  | +                    _.keys(res).forEach(r => {
 | 
	
		
			
				|  |  | +                        if (!res[r]) {
 | 
	
		
			
				|  |  | +                            delete res[r]
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    // 获取数据成功
 | 
	
		
			
				|  |  | +                    let formData = JSON.parse(JSON.stringify(res))
 | 
	
		
			
				|  |  | +                    console.log(formData)
 | 
	
		
			
				|  |  | +                    formData.id = this.data.id
 | 
	
		
			
				|  |  | +                    formData.procDefId = this.processData.id
 | 
	
		
			
				|  |  | +                    formData.procDeTitle = this.processData.name
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    if (!formData.tableName) formData.tableName = this.processData.businessTable
 | 
	
		
			
				|  |  | +                    formData.filedNames = _.keys(res).join(',')
 | 
	
		
			
				|  |  | +                    formData.filedNames = getFiledNames(formData) // 获取主表字段,排除子表标识
 | 
	
		
			
				|  |  | +                    var url = this.url.addApply
 | 
	
		
			
				|  |  | +                    if (!this.isNew) {
 | 
	
		
			
				|  |  | +                        url = this.url.editForm
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    // 是否存在子表
 | 
	
		
			
				|  |  | +                    let ischild = false
 | 
	
		
			
				|  |  | +                    // 循环表单字段属性判断是否属性中包含数组对象
 | 
	
		
			
				|  |  | +                    let i = 0 // 子表数量
 | 
	
		
			
				|  |  | +                    _.keys(res)
 | 
	
		
			
				|  |  | +                        .join(',')
 | 
	
		
			
				|  |  | +                        .split(',')
 | 
	
		
			
				|  |  | +                        .forEach(element => {
 | 
	
		
			
				|  |  | +                            if (formData[element] instanceof Array) {
 | 
	
		
			
				|  |  | +                                // 判断是否符合子表命名规则
 | 
	
		
			
				|  |  | +                                if (element.indexOf('&') != -1) {
 | 
	
		
			
				|  |  | +                                    let tableChildNameList = element.split('&')
 | 
	
		
			
				|  |  | +                                    // 判断是否能拆分两个字符,子表标识和子表数据库名称
 | 
	
		
			
				|  |  | +                                    if (tableChildNameList.length == 2) {
 | 
	
		
			
				|  |  | +                                        i++
 | 
	
		
			
				|  |  | +                                        let childName = tableChildNameList[1] // 子表数据库名称
 | 
	
		
			
				|  |  | +                                        if (!formData.table_name_children) {
 | 
	
		
			
				|  |  | +                                            // 第一次拼接
 | 
	
		
			
				|  |  | +                                            formData.table_name_children = childName // 表名
 | 
	
		
			
				|  |  | +                                        } else {
 | 
	
		
			
				|  |  | +                                            // 后面的表明拼接用“,”隔开
 | 
	
		
			
				|  |  | +                                            formData.table_name_children = formData.table_name_children + ',' + childName // 表名
 | 
	
		
			
				|  |  | +                                        }
 | 
	
		
			
				|  |  | +                                        // 定义属性名和值
 | 
	
		
			
				|  |  | +                                        formData['childFiledNames' + i] = _.keys(formData[element][0]).join(',') // 子表字段名
 | 
	
		
			
				|  |  | +                                        formData['childList' + i] = JSON.stringify(formData[element]) // 子表数据
 | 
	
		
			
				|  |  | +                                        ischild = true
 | 
	
		
			
				|  |  | +                                    }
 | 
	
		
			
				|  |  | +                                } else {
 | 
	
		
			
				|  |  | +                                    // 如果不是子表则是上传文件,则转字符串
 | 
	
		
			
				|  |  | +                                    formData[element] = JSON.stringify(formData[element])
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            // formData[element];
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    // 判断需不需要存子表
 | 
	
		
			
				|  |  | +                    if (ischild) {
 | 
	
		
			
				|  |  | +                        formData.filedNames = formData.filedNames + ',table_name_children'
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    console.log(formData)
 | 
	
		
			
				|  |  | +                    // 子表数据
 | 
	
		
			
				|  |  | +                    // 调用保存接口
 | 
	
		
			
				|  |  | +                    this.btndisabled = true
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.formData = formData
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.url = url
 | 
	
		
			
				|  |  | +                    // formData.jsonContent=JSON.stringify(this.jsonData).toString()
 | 
	
		
			
				|  |  | +                    // 获取是否部门负责人
 | 
	
		
			
				|  |  | +                    formData.filedNames = formData.filedNames + ',is_leaders'
 | 
	
		
			
				|  |  | +                    // formData.is_leaders = this.$store.getters.userInfo.identity
 | 
	
		
			
				|  |  | +                    formData.is_leaders = this.$store.getters.userInfo.isPossess
 | 
	
		
			
				|  |  | +                    // 清除子表规则的属性
 | 
	
		
			
				|  |  | +                    _.keys(formData).forEach(r => {
 | 
	
		
			
				|  |  | +                        if (r.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                            delete formData[r]
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    // 如果手机端子表得则需要修改json
 | 
	
		
			
				|  |  | +                    // var jsonPamats = JSON.parse(JSON.stringify(this.jsonData))
 | 
	
		
			
				|  |  | +                    var jsonPamats = JSON.parse(JSON.stringify(this.jsonDataSave))
 | 
	
		
			
				|  |  | +                    if (!this.isSJ && this.isNew) {
 | 
	
		
			
				|  |  | +                        jsonPamats = null
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.jsonData = jsonPamats
 | 
	
		
			
				|  |  | +                    // 非我的待办节点打卡表单界面
 | 
	
		
			
				|  |  | +                    postFormDataAction(url, formData, { jsonContent: jsonPamats })
 | 
	
		
			
				|  |  | +                        .then(res => {
 | 
	
		
			
				|  |  | +                            if (res.success) {
 | 
	
		
			
				|  |  | +                                this.todoManageOperationObject.isSave = true
 | 
	
		
			
				|  |  | +                                this.$message.success('保存成功!')
 | 
	
		
			
				|  |  | +                                console.log('123')
 | 
	
		
			
				|  |  | +                                this.$emit('afterSubmit', formData)
 | 
	
		
			
				|  |  | +                                this.$emit('close')
 | 
	
		
			
				|  |  | +                                // resolve(true);
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                this.$message.error(res.message)
 | 
	
		
			
				|  |  | +                                // resolve(false);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                        .finally(() => {
 | 
	
		
			
				|  |  | +                            this.btndisabled = false
 | 
	
		
			
				|  |  | +                            // resolve(false);
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                .catch(err => {
 | 
	
		
			
				|  |  | +                    console.log(err, '校验失败')
 | 
	
		
			
				|  |  | +                    // resolve(false);
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            // })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 我的待办点击通过保存专用
 | 
	
		
			
				|  |  | +        handleSubmit2 (e) {
 | 
	
		
			
				|  |  | +            // return new Promise((resolve)=>{
 | 
	
		
			
				|  |  | +            // 通过函数获取数据
 | 
	
		
			
				|  |  | +            this.$refs.KFB.getData()
 | 
	
		
			
				|  |  | +                .then(res => {
 | 
	
		
			
				|  |  | +                    // 处理手机端子表数据
 | 
	
		
			
				|  |  | +                    if (this.isSJ) {
 | 
	
		
			
				|  |  | +                        this.itemData(res)
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    // 清除为空的表单数据
 | 
	
		
			
				|  |  | +                    _.keys(res).forEach(r => {
 | 
	
		
			
				|  |  | +                        if (!res[r]) {
 | 
	
		
			
				|  |  | +                            delete res[r]
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    // 获取数据成功
 | 
	
		
			
				|  |  | +                    let formData = JSON.parse(JSON.stringify(res))
 | 
	
		
			
				|  |  | +                    console.log(formData)
 | 
	
		
			
				|  |  | +                    formData.id = this.data.id
 | 
	
		
			
				|  |  | +                    formData.procDefId = this.processData.id
 | 
	
		
			
				|  |  | +                    formData.procDeTitle = this.processData.name
 | 
	
		
			
				|  |  | +                    // formData.jsonContent=JSON.stringify(this.jsonData)
 | 
	
		
			
				|  |  | +                    if (!formData.tableName) formData.tableName = this.processData.businessTable
 | 
	
		
			
				|  |  | +                    formData.filedNames = _.keys(res).join(',')
 | 
	
		
			
				|  |  | +                    formData.filedNames = getFiledNames(formData) // 获取主表字段,排除子表标识
 | 
	
		
			
				|  |  | +                    var url = this.url.addApply
 | 
	
		
			
				|  |  | +                    if (!this.isNew) {
 | 
	
		
			
				|  |  | +                        url = this.url.editForm
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    // 是否存在子表
 | 
	
		
			
				|  |  | +                    let ischild = false
 | 
	
		
			
				|  |  | +                    // 循环表单字段属性判断是否属性中包含数组对象
 | 
	
		
			
				|  |  | +                    let i = 0 // 子表数量
 | 
	
		
			
				|  |  | +                    _.keys(res)
 | 
	
		
			
				|  |  | +                        .join(',')
 | 
	
		
			
				|  |  | +                        .split(',')
 | 
	
		
			
				|  |  | +                        .forEach(element => {
 | 
	
		
			
				|  |  | +                            if (formData[element] instanceof Array) {
 | 
	
		
			
				|  |  | +                                // 判断是否符合子表命名规则
 | 
	
		
			
				|  |  | +                                if (element.indexOf('&') != -1) {
 | 
	
		
			
				|  |  | +                                    let tableChildNameList = element.split('&')
 | 
	
		
			
				|  |  | +                                    // 判断是否能拆分两个字符,子表标识和子表数据库名称
 | 
	
		
			
				|  |  | +                                    if (tableChildNameList.length == 2) {
 | 
	
		
			
				|  |  | +                                        i++
 | 
	
		
			
				|  |  | +                                        let childName = tableChildNameList[1] // 子表数据库名称
 | 
	
		
			
				|  |  | +                                        if (!formData.table_name_children) {
 | 
	
		
			
				|  |  | +                                            // 第一次拼接
 | 
	
		
			
				|  |  | +                                            formData.table_name_children = childName // 表名
 | 
	
		
			
				|  |  | +                                        } else {
 | 
	
		
			
				|  |  | +                                            // 后面的表明拼接用“,”隔开
 | 
	
		
			
				|  |  | +                                            formData.table_name_children = formData.table_name_children + ',' + childName // 表名
 | 
	
		
			
				|  |  | +                                        }
 | 
	
		
			
				|  |  | +                                        // 定义属性名和值
 | 
	
		
			
				|  |  | +                                        formData['childFiledNames' + i] = _.keys(formData[element][0]).join(',') // 子表字段名
 | 
	
		
			
				|  |  | +                                        formData['childList' + i] = JSON.stringify(formData[element]) // 子表数据
 | 
	
		
			
				|  |  | +                                        ischild = true
 | 
	
		
			
				|  |  | +                                    }
 | 
	
		
			
				|  |  | +                                } else {
 | 
	
		
			
				|  |  | +                                    // 如果不是子表则是上传文件,则转字符串
 | 
	
		
			
				|  |  | +                                    formData[element] = JSON.stringify(formData[element])
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            // formData[element];
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    // 判断需不需要存子表
 | 
	
		
			
				|  |  | +                    if (ischild) {
 | 
	
		
			
				|  |  | +                        formData.filedNames = formData.filedNames + ',table_name_children'
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    console.log(formData)
 | 
	
		
			
				|  |  | +                    // 子表数据
 | 
	
		
			
				|  |  | +                    // 调用保存接口
 | 
	
		
			
				|  |  | +                    this.btndisabled = true
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.formData = formData
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.url = url
 | 
	
		
			
				|  |  | +                    // 获取是否部门负责人
 | 
	
		
			
				|  |  | +                    formData.filedNames = formData.filedNames + ',is_leaders'
 | 
	
		
			
				|  |  | +                    // formData.is_leaders = this.$store.getters.userInfo.identity
 | 
	
		
			
				|  |  | +                    formData.is_leaders = this.$store.getters.userInfo.isPossess
 | 
	
		
			
				|  |  | +                    // 清除子表规则的属性
 | 
	
		
			
				|  |  | +                    _.keys(formData).forEach(r => {
 | 
	
		
			
				|  |  | +                        if (r.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                            delete formData[r]
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                    // 如果手机端子表得则需要修改json
 | 
	
		
			
				|  |  | +                    // var jsonPamats = JSON.parse(JSON.stringify(this.jsonData))
 | 
	
		
			
				|  |  | +                    var jsonPamats = JSON.parse(JSON.stringify(this.jsonDataSave))
 | 
	
		
			
				|  |  | +                    if (!this.isSJ && this.isNew) {
 | 
	
		
			
				|  |  | +                        jsonPamats = null
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    this.todoManageOperationObject.jsonData = jsonPamats
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                .catch(err => {
 | 
	
		
			
				|  |  | +                    console.log(err, '校验失败')
 | 
	
		
			
				|  |  | +                    // resolve(false);
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            // })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        close () {
 | 
	
		
			
				|  |  | +            this.$emit('close')
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        getData () {
 | 
	
		
			
				|  |  | +            // 通过函数获取数据
 | 
	
		
			
				|  |  | +            this.$refs.KFB.getData()
 | 
	
		
			
				|  |  | +                .then(res => {
 | 
	
		
			
				|  |  | +                    // 获取数据成功
 | 
	
		
			
				|  |  | +                    alert(JSON.stringify(res))
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                .catch(err => {
 | 
	
		
			
				|  |  | +                    console.log(err, '校验失败')
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 刷新待办列表
 | 
	
		
			
				|  |  | +        refreshToDo () {
 | 
	
		
			
				|  |  | +            this.close()
 | 
	
		
			
				|  |  | +            this.$emit('getDataList')
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        itemData (res) {
 | 
	
		
			
				|  |  | +            var childName = '' // 子表规则名称
 | 
	
		
			
				|  |  | +            var itemIndex = 0
 | 
	
		
			
				|  |  | +            this.jsonData.list.forEach((element, index) => {
 | 
	
		
			
				|  |  | +                if (element.label.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                    childName = element.label // 获取规则名
 | 
	
		
			
				|  |  | +                    itemIndex = itemIndex + 1
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            var itemList = [] // 封装子表数据
 | 
	
		
			
				|  |  | +            for (var i = 1; i <= itemIndex; i++) {
 | 
	
		
			
				|  |  | +                var itemObject = {} // 子表对象
 | 
	
		
			
				|  |  | +                this.itemModelNameList.forEach(name => {
 | 
	
		
			
				|  |  | +                    // 获取子表得值和封装对象
 | 
	
		
			
				|  |  | +                    itemObject[name] = res[name + '@' + i]
 | 
	
		
			
				|  |  | +                    delete res[name + '@' + i]
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                itemList.push(itemObject)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            res[childName] = itemList // 完成子表数据封装
 | 
	
		
			
				|  |  | +            console.log(res)
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        deleteRow (idIndex) {
 | 
	
		
			
				|  |  | +            // 删除
 | 
	
		
			
				|  |  | +            this.jsonData.list.splice(idIndex, 1)
 | 
	
		
			
				|  |  | +            // 删除掉得json之后 重新处理model 和value
 | 
	
		
			
				|  |  | +            let childIndex = 0
 | 
	
		
			
				|  |  | +            this.jsonData.list.forEach((element, index) => {
 | 
	
		
			
				|  |  | +                if (element.label.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                    childIndex = childIndex + 1
 | 
	
		
			
				|  |  | +                    // 只有当前删除的对象json的后面对象json才进行修改
 | 
	
		
			
				|  |  | +                    if (index >= idIndex) {
 | 
	
		
			
				|  |  | +                        // 修改删除按钮的index
 | 
	
		
			
				|  |  | +                        element.columns[0].list[1].options.defaultValue =
 | 
	
		
			
				|  |  | +              '<a href="javascript:void(0);" \n onclick="deleteRow(' + childIndex + ')">删除</a>'
 | 
	
		
			
				|  |  | +                        // 修改model
 | 
	
		
			
				|  |  | +                        updateModel(element, childIndex)
 | 
	
		
			
				|  |  | +                        // 需要调整的子表值
 | 
	
		
			
				|  |  | +                        var updateModelObject = {}
 | 
	
		
			
				|  |  | +                        // 修改value
 | 
	
		
			
				|  |  | +                        this.$refs.KFB.getData().then(res => {
 | 
	
		
			
				|  |  | +                            // 根据原始字段名拼接带规则的
 | 
	
		
			
				|  |  | +                            this.itemModelNameList.forEach(modelName => {
 | 
	
		
			
				|  |  | +                                updateModelObject[modelName + '@' + childIndex] = res[modelName + '@' + (childIndex + 1)]
 | 
	
		
			
				|  |  | +                            })
 | 
	
		
			
				|  |  | +                            this.$refs.KFB.setData(updateModelObject)
 | 
	
		
			
				|  |  | +                        })
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            console.log(JSON.stringify(this.jsonData.list))
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        add () {
 | 
	
		
			
				|  |  | +            let childLable = '' // 子表json标题
 | 
	
		
			
				|  |  | +            let childValue = {} // 新增子表json
 | 
	
		
			
				|  |  | +            let isReturn = false
 | 
	
		
			
				|  |  | +            let childIndex = 0
 | 
	
		
			
				|  |  | +            var itemList = []
 | 
	
		
			
				|  |  | +            this.jsonData.list.forEach((element, index) => {
 | 
	
		
			
				|  |  | +                if (element.label.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                    childValue = JSON.parse(JSON.stringify(element))
 | 
	
		
			
				|  |  | +                    childLable = element.label
 | 
	
		
			
				|  |  | +                    // 处理删除按钮
 | 
	
		
			
				|  |  | +                    childIndex = childIndex + 1
 | 
	
		
			
				|  |  | +                    // element.columns[0].list[1].options.dynamicFun = 'delete' + childIndex
 | 
	
		
			
				|  |  | +                    console.log(element.columns[0].list[1].options)
 | 
	
		
			
				|  |  | +                    element.columns[0].list[1].options.defaultValue =
 | 
	
		
			
				|  |  | +            '<a href="javascript:void(0);" \n onclick="deleteRow(' + childIndex + ')">删除</a>'
 | 
	
		
			
				|  |  | +                    updateModel(childValue, childIndex)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if (!isReturn && childLable != '' && element.label != childLable) {
 | 
	
		
			
				|  |  | +                    isReturn = true
 | 
	
		
			
				|  |  | +                    // 处理删除按钮
 | 
	
		
			
				|  |  | +                    childIndex = childIndex + 1
 | 
	
		
			
				|  |  | +                    // childValue.columns[0].list[1].options.dynamicFun = 'delete' + childIndex
 | 
	
		
			
				|  |  | +                    childValue.columns[0].list[1].options.defaultValue =
 | 
	
		
			
				|  |  | +            '<a href="javascript:void(0);" \n onclick="deleteRow(' + childIndex + ')">删除</a>'
 | 
	
		
			
				|  |  | +                    updateModel(childValue, childIndex)
 | 
	
		
			
				|  |  | +                    // this.jsonData.list.splice(index, 0, childValue)
 | 
	
		
			
				|  |  | +                    itemList.push(childValue)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                itemList.push(element)
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.jsonData.list = itemList
 | 
	
		
			
				|  |  | +            console.log(JSON.stringify(this.jsonData.list))
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        // 把整个子表json的model进行规则修改
 | 
	
		
			
				|  |  | +        async listUpdateModel () {
 | 
	
		
			
				|  |  | +            let modelIndex = 0 // 子表model自增
 | 
	
		
			
				|  |  | +            // 循环整个json的表单
 | 
	
		
			
				|  |  | +            this.jsonData.list.forEach((element, index) => {
 | 
	
		
			
				|  |  | +                // 找到为子表的json
 | 
	
		
			
				|  |  | +                if (element.label.indexOf('child&') != -1) {
 | 
	
		
			
				|  |  | +                    this.isSJ = true
 | 
	
		
			
				|  |  | +                    // 获取子表原始得model字段名
 | 
	
		
			
				|  |  | +                    if (modelIndex == 0) {
 | 
	
		
			
				|  |  | +                        var i = 1
 | 
	
		
			
				|  |  | +                        var itemString = JSON.stringify(element)
 | 
	
		
			
				|  |  | +                        var itemModelNameList = [] // 储存子表字段名
 | 
	
		
			
				|  |  | +                        for (var i = 1; i !== -1;) {
 | 
	
		
			
				|  |  | +                            // 动态字符位置
 | 
	
		
			
				|  |  | +                            i = itemString.indexOf('"model"', i)
 | 
	
		
			
				|  |  | +                            if (i !== -1) {
 | 
	
		
			
				|  |  | +                                // 从指定字符的周后一个字符后开始找(")
 | 
	
		
			
				|  |  | +                                var ihStart = itemString.indexOf('"', i + 7)
 | 
	
		
			
				|  |  | +                                // 再从 (") 后面位置还是找下一个 (")
 | 
	
		
			
				|  |  | +                                var ihEnd = itemString.indexOf('"', ihStart + 1)
 | 
	
		
			
				|  |  | +                                // 获取引号之间的字符
 | 
	
		
			
				|  |  | +                                var model = itemString.substring(ihStart + 1, ihEnd)
 | 
	
		
			
				|  |  | +                                // 如果动态表示不为空则获取
 | 
	
		
			
				|  |  | +                                if (model != '') {
 | 
	
		
			
				|  |  | +                                    if (model.indexOf('@') != -1) {
 | 
	
		
			
				|  |  | +                                        model = model.substring(0, model.length - 2)
 | 
	
		
			
				|  |  | +                                    }
 | 
	
		
			
				|  |  | +                                    itemModelNameList.push(model)
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                                i = ihEnd + 1
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        this.itemModelNameList = itemModelNameList
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    modelIndex = modelIndex + 1
 | 
	
		
			
				|  |  | +                    // 修改model
 | 
	
		
			
				|  |  | +                    updateModel(element, modelIndex)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        //计算时间差
 | 
	
		
			
				|  |  | +        timeDifference(start, end,state){
 | 
	
		
			
				|  |  | +            // if(start>end){
 | 
	
		
			
				|  |  | +            //    this.$message.error('起始时间不可大于结束时间');
 | 
	
		
			
				|  |  | +            // }else{
 | 
	
		
			
				|  |  | +              let beginTime = (new Date(start).getTime()) / 1000;
 | 
	
		
			
				|  |  | +              let endTime = (new Date(end).getTime()) / 1000;
 | 
	
		
			
				|  |  | +               //计算天数
 | 
	
		
			
				|  |  | +              var timediff = endTime - beginTime;
 | 
	
		
			
				|  |  | +              var days = parseInt(timediff / 86400);  //60*60*24
 | 
	
		
			
				|  |  | +             //计算小时数
 | 
	
		
			
				|  |  | +             var remain = timediff % 86400 ;
 | 
	
		
			
				|  |  | +             var hours = parseInt(remain / 3600);
 | 
	
		
			
				|  |  | +             //计算分钟数
 | 
	
		
			
				|  |  | +             var remain = remain % 3600;
 | 
	
		
			
				|  |  | +             var mins = parseInt(remain / 60);
 | 
	
		
			
				|  |  | +             var res = days + '天' + hours + '小时' + mins + '分';
 | 
	
		
			
				|  |  | +             if(state == 'min'){
 | 
	
		
			
				|  |  | +                return days*24*60+hours*60+mins
 | 
	
		
			
				|  |  | +             }else if(state == 'hour'){
 | 
	
		
			
				|  |  | +                 return days*24+hours+mins/60
 | 
	
		
			
				|  |  | +             }else if(state == 'day'){
 | 
	
		
			
				|  |  | +                 if(start.split(' ').length==1 && end.split(' ').length == 1){
 | 
	
		
			
				|  |  | +                      return days+1+hours/24+mins/60/24
 | 
	
		
			
				|  |  | +                 }else{
 | 
	
		
			
				|  |  | +                     return days+hours/24+mins/60/24
 | 
	
		
			
				|  |  | +                 }
 | 
	
		
			
				|  |  | +                  
 | 
	
		
			
				|  |  | +             }else if(state == 'day/hour/min'){
 | 
	
		
			
				|  |  | +                 return days+'天'+hours+'小时'+mins+'分'
 | 
	
		
			
				|  |  | +             }else if(state == 'hour/min'){
 | 
	
		
			
				|  |  | +                 return (days*24+hours)+'小时'+mins+'分'
 | 
	
		
			
				|  |  | +             }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +             
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    // }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 获取主表字段,排除子表标识
 | 
	
		
			
				|  |  | +function getFiledNames (formData) {
 | 
	
		
			
				|  |  | +    let filedNames = ''
 | 
	
		
			
				|  |  | +    let list = formData.filedNames.split(',') // 获取表单属性名集合
 | 
	
		
			
				|  |  | +    list.forEach(element => {
 | 
	
		
			
				|  |  | +        if (element.indexOf('&') == -1) {
 | 
	
		
			
				|  |  | +            // 查询是否有这个字段
 | 
	
		
			
				|  |  | +            if (filedNames == '') {
 | 
	
		
			
				|  |  | +                // 第一次则直接等于
 | 
	
		
			
				|  |  | +                filedNames = element
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                // 后面用逗号隔开
 | 
	
		
			
				|  |  | +                filedNames = filedNames + ',' + element
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    return filedNames
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +// 根据开始时间 结束时间计算天数
 | 
	
		
			
				|  |  | +function startEndFun (start, end) {
 | 
	
		
			
				|  |  | +    let startTime = new Date(start)
 | 
	
		
			
				|  |  | +    let endTime = new Date(end)
 | 
	
		
			
				|  |  | +    if (startTime >= endTime) {
 | 
	
		
			
				|  |  | +        return 0
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    // 1,分钟取整
 | 
	
		
			
				|  |  | +    startTime = carryTime(startTime)
 | 
	
		
			
				|  |  | +    endTime = carryTime(endTime)
 | 
	
		
			
				|  |  | +    // 2,计算总天数
 | 
	
		
			
				|  |  | +    var totalTime = 0 // 工时,天数
 | 
	
		
			
				|  |  | +    if (startTime.getDay() == 6 || startTime.getDay() == 0) {
 | 
	
		
			
				|  |  | +        totalTime = endTime.getDate() - startTime.getDate()
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        totalTime = Math.floor((endTime - startTime) / (3600 * 1000) / 24)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 3,拿初始值赋值给一个临时变量
 | 
	
		
			
				|  |  | +    var tempStartTime = new Date()
 | 
	
		
			
				|  |  | +    tempStartTime.setTime(startTime.getTime())
 | 
	
		
			
				|  |  | +    // 4,计算出总天数
 | 
	
		
			
				|  |  | +    while (tempStartTime.getDate() < endTime.getDate()) {
 | 
	
		
			
				|  |  | +        if (tempStartTime.getDay() == 6 || tempStartTime.getDay() == 0) {
 | 
	
		
			
				|  |  | +            // 周六或者周日减去
 | 
	
		
			
				|  |  | +            totalTime--
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        tempStartTime.setDate(tempStartTime.getDate() + 1)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 5,计算出总小时数
 | 
	
		
			
				|  |  | +    var temp = 0 // 工时,小时
 | 
	
		
			
				|  |  | +    do {
 | 
	
		
			
				|  |  | +        if (startTime.getDay() == 6 || startTime.getDay() == 0) {
 | 
	
		
			
				|  |  | +            // 周六周日
 | 
	
		
			
				|  |  | +            startTime.setDate(startTime.getDate() + 1)
 | 
	
		
			
				|  |  | +            //* ********周六周日直接跳过,初始化为早晨9点
 | 
	
		
			
				|  |  | +            startTime.setHours(9)
 | 
	
		
			
				|  |  | +            startTime.setMinutes(0)
 | 
	
		
			
				|  |  | +            continue
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (endTime.getDay() == 6 || endTime.getDay() == 0) {
 | 
	
		
			
				|  |  | +            // 周六周日
 | 
	
		
			
				|  |  | +            endTime.setDate(endTime.getDate() + 1)
 | 
	
		
			
				|  |  | +            //* ********周六周日直接跳过,初始化为早晨9点
 | 
	
		
			
				|  |  | +            endTime.setHours(9)
 | 
	
		
			
				|  |  | +            endTime.setMinutes(0)
 | 
	
		
			
				|  |  | +            continue
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let tempMinutes = startTime.getHours() * 60 + startTime.getMinutes()
 | 
	
		
			
				|  |  | +        // 上午9点到12点半,算工时
 | 
	
		
			
				|  |  | +        if (tempMinutes >= 9 * 60 && tempMinutes < 12 * 60) {
 | 
	
		
			
				|  |  | +            temp += 0.05
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 上午14点到18点半,算工时
 | 
	
		
			
				|  |  | +        if (tempMinutes >= 13 * 60 && tempMinutes < 18 * 60) {
 | 
	
		
			
				|  |  | +            temp += 0.05
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        startTime.setTime(startTime.getTime() + 0.5 * 3600 * 1000) // 每次增加半个小时
 | 
	
		
			
				|  |  | +    } while (startTime.getHours() * 60 + startTime.getMinutes() != endTime.getHours() * 60 + endTime.getMinutes())
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        totalTime += Math.floor(temp / 0.8)
 | 
	
		
			
				|  |  | +        totalTime += temp % 0.8
 | 
	
		
			
				|  |  | +        totalTime = Math.round(totalTime * 100) / 100
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    var days = Math.floor(totalTime)
 | 
	
		
			
				|  |  | +    var hours = Math.round((totalTime - days) * 100) / 10
 | 
	
		
			
				|  |  | +    console.log(days + '天', hours + '小时')
 | 
	
		
			
				|  |  | +    return days * 8 + hours
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // if (start && end) {
 | 
	
		
			
				|  |  | +    //   let startTime = new Date(start) // 开始时间
 | 
	
		
			
				|  |  | +    //   let endTime = new Date(end) // 结束时间
 | 
	
		
			
				|  |  | +    //   let usedTime = endTime - startTime // 相差的毫秒数
 | 
	
		
			
				|  |  | +    //   let days = (usedTime / 1000 / 60 / 60).toFixed(2) // 计算出天数
 | 
	
		
			
				|  |  | +    //   return days
 | 
	
		
			
				|  |  | +    // } else {
 | 
	
		
			
				|  |  | +    //   return null
 | 
	
		
			
				|  |  | +    // }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 格式化时间
 | 
	
		
			
				|  |  | +function formatDate (date, fmt) {
 | 
	
		
			
				|  |  | +    if (/(y+)/.test(fmt)) {
 | 
	
		
			
				|  |  | +        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    let o = {
 | 
	
		
			
				|  |  | +        'M+': date.getMonth() + 1,
 | 
	
		
			
				|  |  | +        'd+': date.getDate(),
 | 
	
		
			
				|  |  | +        'h+': date.getHours(),
 | 
	
		
			
				|  |  | +        'm+': date.getMinutes(),
 | 
	
		
			
				|  |  | +        's+': date.getSeconds()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    for (let k in o) {
 | 
	
		
			
				|  |  | +        if (new RegExp(`(${k})`).test(fmt)) {
 | 
	
		
			
				|  |  | +            let str = o[k] + ''
 | 
	
		
			
				|  |  | +            fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : padLeftZero(str))
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return fmt
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +function padLeftZero (str) {
 | 
	
		
			
				|  |  | +    return ('00' + str).substr(str.length)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/*
 | 
	
		
			
				|  |  | + * 0-15分不算工时
 | 
	
		
			
				|  |  | + * 15-45算半个小时
 | 
	
		
			
				|  |  | + * 45-60算一个小时
 | 
	
		
			
				|  |  | + * */
 | 
	
		
			
				|  |  | +function carryTime (date) {
 | 
	
		
			
				|  |  | +    if (date.getMinutes() > 0 && date.getMinutes() < 15) {
 | 
	
		
			
				|  |  | +        date.setMinutes(0)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (date.getMinutes() >= 15 && date.getMinutes() < 30) {
 | 
	
		
			
				|  |  | +        date.setMinutes(30)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (date.getMinutes() > 30 && date.getMinutes() < 45) {
 | 
	
		
			
				|  |  | +        date.setMinutes(30)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    if (date.getMinutes() >= 45) {
 | 
	
		
			
				|  |  | +        date.setHours(date.getHours() + 1)
 | 
	
		
			
				|  |  | +        date.setMinutes(0)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return date
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// function
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 修改model绑定值
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +function updateModel (object, childIndex) {
 | 
	
		
			
				|  |  | +    let keyString = _.keys(object).join(',')
 | 
	
		
			
				|  |  | +    if (keyString.indexOf('model') != -1) {
 | 
	
		
			
				|  |  | +    // 如果没有修改过则直接修改
 | 
	
		
			
				|  |  | +        if (object['model'].indexOf('@') == -1) {
 | 
	
		
			
				|  |  | +            object['model'] = object['model'] + '@' + childIndex
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            // 修改过则截取修改前的再进行修改
 | 
	
		
			
				|  |  | +            var m = object['model'].substring(0, object['model'].length - 2)
 | 
	
		
			
				|  |  | +            object['model'] = m + '@' + childIndex
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 递归
 | 
	
		
			
				|  |  | +    _.keys(object)
 | 
	
		
			
				|  |  | +        .join(',')
 | 
	
		
			
				|  |  | +        .split(',')
 | 
	
		
			
				|  |  | +        .forEach(l => {
 | 
	
		
			
				|  |  | +            if (object[l] instanceof Array) {
 | 
	
		
			
				|  |  | +                object[l].forEach(element => {
 | 
	
		
			
				|  |  | +                    updateModel(element, childIndex)
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +<style lang="less" scoped>
 | 
	
		
			
				|  |  | +@media print {
 | 
	
		
			
				|  |  | +    @page {
 | 
	
		
			
				|  |  | +    /* 横向 */
 | 
	
		
			
				|  |  | +    size: landscape;
 | 
	
		
			
				|  |  | +    /* 去除浏览器默认页眉页脚 */
 | 
	
		
			
				|  |  | +    margin: 0;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +   .noprint {
 | 
	
		
			
				|  |  | +    display: none;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  /deep/.ant-input{
 | 
	
		
			
				|  |  | +      border: none !important;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  /deep/ .ant-modal-header{
 | 
	
		
			
				|  |  | +       display: none !important;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +   /deep/ .ant-modal-content{
 | 
	
		
			
				|  |  | +      box-shadow:none !important
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | + /deep/ .anticon-question-circle-o {
 | 
	
		
			
				|  |  | +    display: none !important;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |