当时实现的功能是在 Table 中,每个单元格是一个 input
重点内容:
<Row> <Col span="24"> <div style="border:1px solid #cccccc;"> <Table height="200" stripe border size="small" :columns="zxjlColumns" :data="zxjlGrid" @on-selection-change="handleZxjlRowChange" no-data-text="无执行记录信息"> </Table> </div> </Col> </Row>
let vm = this this.zxjlColumns = [ { type: 'selection', width: 60, align: 'center' }, { title: '执行记录', key: 'zxjlzxr', align: 'center', render: (h, params) => { return h('Input', { props: { type: 'text', value: vm.zxjlGrid[params.index].zxjlzxr }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].zxjlzxr = event.target.value } } }) } }, { title: '执行人', key: 'zxr', align: 'center', width: 180, render: (h, params) => { return h('Input', { props: { type: 'text', value: vm.zxjlGrid[params.index].zxr }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].zxr = event.target.value } } }) } }, { title: '完成日期', key: 'wcsj', align: 'center', width: 180, render: (h, params) => { return h('Input', { props: { type: 'date', value: this.$oui.helpers.time.format(vm.zxjlGrid[params.index].wcsj, 'YYYY-MM-DD') }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].wcsj = event.target.value } } }) } } ]
完整如下:
<template> <div> <!--申请单填报信息--> <div> <h3 style="border-bottom: 1px solid #cccccc;margin-bottom: 10px; ">申请单填报信息</h3> <Form ref="jrscJbxx" :model="jrscJbxx" :label-width="110" style="width: 100%"> <Row> <Col span="8"> <FormItem label="编号:" prop="bh"> <Input v-model="jrscJbxx.bh" readonly placeholder="自动生成"></Input> </FormItem> </Col> <Col span="8"> <FormItem label="申请单位:" prop="yxdwmc"> <Input v-model="jrscJbxx.yxdwmc" readonly placeholder="请输入"></Input> </FormItem> </Col> <Col span="8"> <FormItem label="申请人:" prop="tbrmc"> <Input v-model="jrscJbxx.tbrmc" readonly placeholder="请输入"></Input> </FormItem> </Col> </Row> <Row> <Col span="8"> <FormItem label="运行维护部门:" prop="yxwhbm"> <Input v-model="jrscJbxx.yxwhbm" readonly placeholder="请输入"></Input> </FormItem> </Col> <Col span="8"> <FormItem label="工作负责人:" prop="gzfzrmc"> <Input v-model="jrscJbxx.gzfzrmc" readonly placeholder="请输入"></Input> </FormItem> </Col> <Col span="8"> <FormItem label="联系电话:" prop="lxdh"> <Input v-model="jrscJbxx.lxdh" readonly placeholder="请输入"></Input> </FormItem> </Col> </Row> <Row> <Col span="8"> <FormItem label="申请日期:" prop="sqrq"> <DatePicker type="date" readonly placeholder="选择日期" v-model="jrscJbxx.sqrq" style="width: 100%"></DatePicker> </FormItem> </Col> <Col span="8"> <FormItem label="计划实施时间:" prop="jhsssj"> <DatePicker type="date" readonly placeholder="选择日期" v-model="jrscJbxx.jhsssj" style="width: 100%"></DatePicker> </FormItem> </Col> <Col span="8"> <FormItem label="变更对象:" prop="bgdx"> <Input v-model="jrscJbxx.bgdx" readonly placeholder="请输入"></Input> </FormItem> </Col> </Row> <Row> <Col span="8"> <FormItem label="所属安全区:" prop="ssaqq"> <Select v-model="jrscJbxx.ssaqq" disabled placeholder="请选择"> <Option v-for="item in ssaqq" :value="item.value" :key="item.value">{{ item.label }}</Option> </Select> </FormItem> </Col> <Col span="8"> <FormItem label="变更性质:" prop="bgxz"> <Select v-model="jrscJbxx.bgxz" disabled placeholder="请选择"> <Option v-for="item in bgxz" :value="item.value" :key="item.value">{{ item.label }}</Option> </Select> </FormItem> </Col> <Col span="8"> <FormItem label="运行单位:" prop="yxdw2"> <Input v-model="jrscJbxx.yxdw2" readonly placeholder="请输入"></Input> </FormItem> </Col> </Row> <Row> <Col span="16"> <FormItem label="执行单位:" prop="zxdwmc"> <Input v-model="jrscJbxx.zxdwmc" readonly placeholder="请选择"></Input> </FormItem> </Col> <Col span="2"> <Button type="primary" disabled>选择</Button> </Col> </Row> <Row> <Col span="24"> <FormItem label="申请理由:" prop="sqly"> <Input v-model="jrscJbxx.sqly" readonly type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></Input> </FormItem> </Col> </Row> <Row> <Col span="24"> <FormItem label="申请变更内容及方案:" prop="bglxjfa"> <Input v-model="jrscJbxx.bglxjfa" readonly type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></Input> </FormItem> </Col> </Row> <Row> <Col span="2" style="margin-left:50px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="tbgid"></OFileList> </Col> </Row> </Form> </div> <!--审核信息--> <div> <!--申请部门审核--> <div> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">申请部门审核</h3> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核部门:</Col> <Col span="21"> <Input readonly v-model="jrscJbxx.shbmmc"></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核意见:</Col> <Col span="21"> <Input readonly v-model="jrscJbxx.shyj" type="textarea" :autosize="{minRows: 2,maxRows: 5}"></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核人签名:</Col> <Col span="9"> <Input readonly v-model="jrscJbxx.shrmc"></Input> </Col> <Col span="3" class="cxtj">审核时间:</Col> <Col span="9"> <DatePicker type="datetime" placement="bottom-start" readonly v-model="jrscJbxx.shsj" style="width: 100%"></DatePicker> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">发送主管单位:</Col> <Col span="9"> <Input readonly v-model="jrscJbxx.fszgdwmc" placeholder="请选择"></Input> </Col> <Col span="2"> <Button disabled type="primary">选择</Button> </Col> </Row> <Row> <Col span="2" style="margin-left:50px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="shgid"></OFileList> </Col> </Row> </div> <!--安防主管部门技术审核--> <div> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">安防主管部门技术审核</h3> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核单位:</Col> <Col span="9"> <Input v-model="jrscJbxx.jsshdwmc" readonly></Input> </Col> <Col span="3" class="cxtj">审核部门:</Col> <Col span="9"> <Input v-model="jrscJbxx.jsshbmmc" readonly></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核意见:</Col> <Col span="21"> <Input readonly v-model="jrscJbxx.jsshyj" type="textarea" :autosize="{minRows: 2,maxRows: 5}"></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核人签名:</Col> <Col span="9"> <Input v-model="jrscJbxx.jsshrmc" readonly></Input> </Col> <Col span="3" class="cxtj">审核时间:</Col> <Col span="9"> <DatePicker type="datetime" readonly v-model="jrscJbxx.jsshsj" style="width: 100%"></DatePicker> </Col> </Row> <Row> <Col span="2" style="margin-left:50px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="jsgid"></OFileList> </Col> </Row> </div> <!--安全防护主管部门审核--> <div> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">安全防护主管部门审核</h3> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核单位:</Col> <Col span="9"> <Input v-model="jrscJbxx.zgshdwmc" readonly></Input> </Col> <Col span="3" class="cxtj">审核部门:</Col> <Col span="9"> <Input v-model="jrscJbxx.zgshbmmc" readonly></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核意见:</Col> <Col span="21"> <Input readonly v-model="jrscJbxx.zgshyj" type="textarea" :autosize="{minRows: 2,maxRows: 5}"></Input> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">审核人签名:</Col> <Col span="9"> <Input v-model="jrscJbxx.zgbmshrmc" readonly></Input> </Col> <Col span="3" class="cxtj">审核时间:</Col> <Col span="9"> <DatePicker readonly type="datetime" v-model="jrscJbxx.zgbmshsj" style="width: 100%"></DatePicker> </Col> </Row> <Row> <Col span="2" style="margin-left:53px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="zggid"></OFileList> </Col> </Row> <Row class="row-cxtj"> <Col span="3" class="cxtj">是否会签:</Col> <Col span="21"> <Checkbox disabled v-model="sfhqbz" size="large" style="margin-top: 5px"></Checkbox> </Col> </Row> </div> <!--相关业务部门批复意见(会签)--> <div v-show="ywbmHqShow"> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">相关业务部门批复意见(会签)</h3> </Col> </Row> <Row> <Col span="24"> <div style="border:1px solid #cccccc;"> <Table height="200" stripe border size="small" :columns="hqxxColumns" :data="hqxxGrid" no-data-text="无会签信息"></Table> </div> </Col> </Row> <!--<Row> <Col span="24" style="margin-left:73px;margin-top:10px;margin-bottom:20px"> 附件管理:<OFileList :yid="hqyid" :gid="hqgid"></OFileList> </Col> </Row>--> </div> <!--执行信息 --> <div v-show="zxShow"> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">执行</h3> </Col> </Row> <Row> <Col span="2"> <Button type="primary" :disabled="addDisabled" @click="addZxjl">添加</Button> </Col> <Col span="2"> <Button type="primary" :disabled="delDisabled" @click="delZxjl">删除</Button> </Col> </Row> <Row> <Col span="24"> <div style="border:1px solid #cccccc;"> <Table height="200" stripe border size="small" :columns="zxjlColumns" :data="zxjlGrid" @on-selection-change="handleZxjlRowChange" no-data-text="无执行记录信息"> </Table> </div> </Col> </Row> <Form ref="zxjgRef" :model="jrscJbxx" :rules="zxjgRule" :label-width="110" style="width: 100%"> <Row class="row-cxtj"> <Col span="24"> <FormItem label="执行结果:" prop="zxjg"> <Input v-model="jrscJbxx.zxjg" :readonly="zxjgReadonly" type="textarea" :autosize="{minRows: 2,maxRows: 5}"></Input> </FormItem> </Col> </Row> <Row> <Col span="12"> <FormItem label="执行人签名:" prop="zxrqm"> <Input v-model="jrscJbxx.zxrqm" readonly></Input> </FormItem> </Col> <Col span="12"> <FormItem label="执行时间:" prop="zxqmsj"> <DatePicker type="datetime" v-model="jrscJbxx.zxqmsj" readonly style="width: 100%"></DatePicker> </FormItem> </Col> </Row> </Form> <Row> <Col span="2" style="margin-left:50px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="zxgid"></OFileList> </Col> </Row> </div> <!--验收--> <div v-show="ysShow"> <Form ref="ysref" :model="jrscJbxx" :rules="ysRule" :label-width="110" style="width: 100%"> <Row> <Col span="24"> <h3 style="border-bottom: 1px solid #cccccc;margin: 10px 0; ">验收信息</h3> </Col> </Row> <Row> <Col span="24"> <FormItem label="验收结果:" prop="ysjg"> <Input v-model="jrscJbxx.ysjg" :readonly="ysjgReadonly" type="textarea" :autosize="{minRows: 2,maxRows: 5}"></Input> </FormItem> </Col> </Row> <Row> <Col span="12"> <FormItem label="验收人签名:" prop="ysrmc"> <Input v-model="jrscJbxx.ysrmc" readonly></Input> </FormItem> </Col> <Col span="12"> <FormItem label="验收时间:" prop="yssj"> <DatePicker type="datetime" v-model="jrscJbxx.yssj" readonly style="width: 100%"></DatePicker> </FormItem> </Col> </Row> <Row> <Col span="22" style="margin-left:50px;margin-top:10px;margin-bottom:20px"> 附件管理: </Col> <Col span="19" style="margin-top:10px;margin-bottom:20px"> <OFileList :yid="yid" :gid="ysgid"></OFileList> </Col> </Row> </Form> </div> </div> <div style="margin-left:15px;margin-top:10px;margin-bottom:20px"> <OUpLoad ref="oDemo"></OUpLoad> </div> <div> <Row> <Col span="24" style="text-align: center;margin-top: 20px"> <Button type="primary" v-show="saveShow" icon="folder" @click="saveZxjl" style="margin-left: 8px">保存</Button> <Button type="primary" v-show="submitShow" icon="checkmark-round" @click="tJview" style="margin-left: 8px">提交</Button> <Button type="primary" v-show="zxxxFspmsShow" icon="share" style="margin-left: 8px">发送PMS</Button> <Button type="primary" v-show="gdShow" icon="folder" @click="gDview()" style="margin-left: 8px">归档</Button> <Button type="primary" v-show="ysxxFspmsShow" icon="share" style="margin-left: 8px">发送PMS</Button> </Col> </Row> </div> </div> </template> <script> import {zhztList} from '@/utils/ecfhHjztEnum.js' export default { props: { modalTrue: { type: Boolean, default: false }, jbxxBmzx: { type: Object, default: {} }, isDbYb: { type: String, default: '' }, buttonName: { type: String, default: '' } }, data () { return { yid: '-1', tbgid: '-1', shgid: '-1', jsgid: '-1', zggid: '-1', zxgid: '-1', ysgid: '-1', // 会签附件显示 hqyid: '-1', hqgid: '-1', // 业务部门会签默认不显示 ywbmHqShow: false, // 页面div默认不显示 zxShow: false, ysShow: false, // 按钮默认不显示 saveShow: false, submitShow: false, zxxxFspmsShow: false, gdShow: false, ysxxFspmsShow: false, // 默认按钮不可用 addDisabled: true, delDisabled: true, // 默认只读 zxjgReadonly: true, zxqmsjReadonly: true, ysjgReadonly: true, yssjReadonly: true, // 所属安全区 ssaqq: [ { value: 'Ⅰ区', label: 'Ⅰ区' }, { value: 'Ⅱ区', label: 'Ⅱ区' }, { value: 'Ⅲ区', label: 'Ⅲ区' }, { value: 'Ⅰ/Ⅱ区', label: 'Ⅰ/Ⅱ区' }, { value: 'Ⅰ/Ⅲ区', label: 'Ⅰ/Ⅲ区' }, { value: 'Ⅱ/Ⅲ区', label: 'Ⅱ/Ⅲ区' }, { value: 'Ⅰ/Ⅱ/Ⅲ区', label: 'Ⅰ/Ⅱ/Ⅲ区' } ], // 变更性质 bgxz: [ { value: '新增策略', label: '新增策略' }, { value: '策略变更', label: '策略变更' }, { value: '业务接入变更', label: '业务接入变更' }, { value: '网络结构变更', label: '网络结构变更' } ], // 申请单信息 jrscJbxx: {}, // 是否会签标志,默认是没有会签 sfhqbz: false, // 会签信息列表表头 hqxxColumns: [ { title: '会签部门', key: 'pfbmmc' }, { title: '签名', key: 'pfrmc' }, { title: '会签结论', key: 'pfjl' }, { title: '会签意见', key: 'pfyj' }, { title: '会签时间', key: 'pfsj', render: (h, params) => { const date = params.row.pfsj const pfsj = this.$oui.helpers.time.getDate(date) return h('div', pfsj) } }, { title: '附件列表', key: 'hqfjid' // render: (h, params) => { // return h('<OFileList :yid="yid" :gid="zggid"></OFileList>') // } } ], // 会签信息列表 hqxxGrid: [], // 执行记录表格中选中的记录 checkedZxjl: [], // 执行记录表头 zxjlColumns: [], // 执行记录列表 zxjlGrid: [], // 执行结果验证字段 zxjgRule: { zxjg: [ {required: true, message: '执行结果结果不能为空', trigger: 'blur'} ], zxrqm: [ {required: true, message: '执行人签名不能为空', trigger: 'blur'} ] }, // 验收验证字段 ysRule: { ysjg: [ {required: true, message: '验收结果不能为空', trigger: 'blur'} ], ysrmc: [ {required: true, message: '验收人名称不能为空', trigger: 'blur'} ] } } }, watch: { // 监听弹出的处理窗口,打开则执行以下操作 modalTrue (val, oldval) { var zt = this.jbxxBmzx.zt if (val === true && this.buttonName === '处理' && (zt === zhztList[5].value || zt === zhztList[6].value)) { this.getBmzxXx() } } }, methods: { // 初始化界面,隐藏所有界面 init () { // 默认没有附件 this.yid = -1 this.tbgid = -1 this.shgid = -1 this.jsgid = -1 this.zggid = -1 this.zxgid = -1 this.ysgid = -1 // 会签附件 this.hqgid = -1 this.hqyid = -1 // 默认隐藏所有审核界面 this.ywbmHqShow = false this.zxShow = false this.ysShow = false // 是否会签标志默认不勾选 this.sfhqbz = false // 按钮默认不显示 this.saveShow = false this.submitShow = false this.zxxxFspmsShow = false this.gdShow = false this.ysxxFspmsShow = false // 默认按钮不可用 this.addDisabled = true this.delDisabled = true // 默认只读 this.zxjgReadonly = true this.zxqmsjReadonly = true this.ysjgReadonly = true this.yssjReadonly = true // 清空会签信息列表 this.hqxxGrid = [] // 清空执行记录列表 this.zxjlGrid = [] // 清空执行记录表格数据 this.checkedZxjl = [] let vm = this this.zxjlColumns = [ { type: 'selection', width: 60, align: 'center' }, { title: '执行记录', key: 'zxjlzxr', align: 'center', render: (h, params) => { return h('Input', { props: { type: 'text', value: vm.zxjlGrid[params.index].zxjlzxr }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].zxjlzxr = event.target.value } } }) } }, { title: '执行人', key: 'zxr', align: 'center', width: 180, render: (h, params) => { return h('Input', { props: { type: 'text', value: vm.zxjlGrid[params.index].zxr }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].zxr = event.target.value } } }) } }, { title: '完成日期', key: 'wcsj', align: 'center', width: 180, render: (h, params) => { return h('Input', { props: { type: 'date', value: this.$oui.helpers.time.format(vm.zxjlGrid[params.index].wcsj, 'YYYY-MM-DD') }, on: { 'on-blur': (event) => { vm.zxjlGrid[params.index].wcsj = event.target.value } } }) } } ] }, // 查询申请单信息,初始化页面 getBmzxXx () { let proxy = { url: 'ecfh/bmzx/query', params: { id: this.jbxxBmzx.id } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.jrscJbxx = d.data.list[0] this.dateFormat() this.jbxxLccl() } else if (d.code === 1001) { this.$Message.success(d.msg) } else if (d.code === 1002) { this.$Message.error('请求异常!') } else { this.$Message.error('未知错误!') } }) }, // 判断要处理的单子的状态,根据不同状态显示对应的审核部门 jbxxLccl () { this.init() this.yid = this.jrscJbxx.id this.tbgid = this.jrscJbxx.tbfjzid this.shgid = this.jrscJbxx.shfjzid this.jsgid = this.jrscJbxx.jsfjzid this.zggid = this.jrscJbxx.zgfjzid this.zxgid = this.jrscJbxx.zxfjzid this.ysgid = this.jrscJbxx.ysfjzid // 判断是否有会签,如果有,则勾选会签框和显示会签信息 if (this.jrscJbxx.sfhqbz === '是') { // 勾选会签多选框 this.sfhqbz = true // 显示相关业务部门批复意见(会签)div this.ywbmHqShow = true // 查询会签信息并初始化列表 this.queryHqxx() } // 如果申请单状态为执行,就显示保存、提交和发送pms按钮 if (this.jrscJbxx.zt === zhztList[5].value) { this.saveShow = true this.submitShow = true this.zxxxFspmsShow = true this.addDisabled = false this.delDisabled = false this.zxjgReadonly = false this.zxqmsjReadonly = false } // 如果申请单状态为验收,就显示归档和发送pms按钮 if (this.jrscJbxx.zt === zhztList[6].value) { this.gdShow = true this.ysxxFspmsShow = true this.ysjgReadonly = false this.yssjReadonly = false } // 执行页面div是否显示 if ((this.isDbYb !== 'Yb' && this.jrscJbxx.zt === zhztList[5].value) || this.jrscJbxx.zt === zhztList[6].value || this.jrscJbxx.zt === zhztList[7].value) { this.zxShow = true if (this.jrscJbxx.zxfjzid === null || this.jrscJbxx.zxfjzid === '' || this.jrscJbxx.zxfjzid === undefined) { this.zxgid = '-1' } else { this.zxgid = this.jrscJbxx.zxfjzid } // 查询执行记录信息 this.queryZxjl() } // 验收页面div是否显示 if ((this.isDbYb !== 'Yb' && this.jrscJbxx.zt === zhztList[6].value) || this.jrscJbxx.zt === zhztList[7].value) { this.ysShow = true if (this.jrscJbxx.ysfjzid === null || this.jrscJbxx.ysfjzid === '' || this.jrscJbxx.ysfjzid === undefined) { this.ysgid = '-1' } else { this.ysgid = this.jrscJbxx.ysfjzid } } }, // 查询会签信息 queryHqxx () { let proxy = { url: 'ecfh/bmzx/hqxx', params: { bh: this.jrscJbxx.bh } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.hqxxGrid = d.data.list // 用于测试能不能显示,删除3行 // this.hqxx = this.hqxxGrid[0] // this.hqyid = this.hqxx.id // this.hqgid = this.hqxx.hqfjid } else if (d.code === 1001) { this.$Message.success(d.msg) this.hqxxGrid = [] this.hqxx = {} } else if (d.code === 1002) { this.$Message.error('请求异常!') } else { this.$Message.error('未知错误!') } }) }, // 查询执行记录信息 queryZxjl () { let proxy = { url: 'ecfh/bmzx/queryZxjl', params: { bh: this.jrscJbxx.bh } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.zxjlGrid = d.data.list } else if (d.code === 1001) { this.$Message.success(d.msg) this.zxjlGrid = [] } else if (d.code === 1002) { this.$Message.error('请求异常!') } else { this.$Message.error('未知错误!') } }) }, // 增加按钮 addZxjl () { this.zxjlGrid.push({ zxjlzxr: '', zxr: '', wcsj: '' }) }, // 删除按钮——比较三个值,从原始数组中删除选中的记录 delZxjl () { for (var i = 0; i < this.checkedZxjl.length; i++) { for (var j = 0; j < this.zxjlGrid.length; j++) { if (this.checkedZxjl[i].zxjlzxr === this.zxjlGrid[j].zxjlzxr && this.checkedZxjl[i].zxr === this.zxjlGrid[j].zxr && this.checkedZxjl[i].wcsj === this.zxjlGrid[j].wcsj) { this.zxjlGrid.splice(j, 1) continue } } } }, // 表格返回选中数据(执行记录表格) handleZxjlRowChange (selection) { this.checkedZxjl = selection }, // 保存执行记录 saveZxjl () { if (this.zxjlGrid.length === 0) { this.$Message.error('请添加执行记录!') return } for (var i = 0; i < this.zxjlGrid.length; i++) { if (this.zxjlGrid[i].zxjlzxr === null || this.zxjlGrid[i].zxjlzxr === '' || this.zxjlGrid[i].zxjlzxr === undefined) { this.$Message.error('请输入执行记录信息!') return } if (this.zxjlGrid[i].zxr === null || this.zxjlGrid[i].zxr === '' || this.zxjlGrid[i].zxr === undefined) { this.$Message.error('请输入执行人!') return } if (this.zxjlGrid[i].wcsj === null || this.zxjlGrid[i].wcsj === '' || this.zxjlGrid[i].wcsj === undefined) { this.$Message.error('请输入yyyy-MM-dd格式的完成日期!') return } } let proxy = { url: 'ecfh/bmzx/saveZxjl', params: { bh: this.jrscJbxx.bh, zxjlList: JSON.stringify(this.zxjlGrid) } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.$Message.success('保存成功!') this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1001) { this.$Message.success(d.msg) this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1002) { this.$Modal.warning({ title: '提示', content: d.msg }) } else { this.$Message.error('未知错误!') } }) }, // 提交 tJview () { // 上传附件信息 let fDataArray = this.$refs.oDemo.getFList() // 表单验证 this.$refs['zxjgRef'].validate((valid) => { if (valid) { if (this.zxjlGrid.length === 0) { this.$Message.error('请添加执行记录!') return } for (var i = 0; i < this.zxjlGrid.length; i++) { if (this.zxjlGrid[i].zxjlzxr === null || this.zxjlGrid[i].zxjlzxr === '' || this.zxjlGrid[i].zxjlzxr === undefined) { this.$Message.error('请输入执行记录信息!') return } if (this.zxjlGrid[i].zxr === null || this.zxjlGrid[i].zxr === '' || this.zxjlGrid[i].zxr === undefined) { this.$Message.error('请输入执行人!') return } if (this.zxjlGrid[i].wcsj === null || this.zxjlGrid[i].wcsj === '' || this.zxjlGrid[i].wcsj === undefined) { this.$Message.error('请选择完成日期!') return } } // 审核提交二次提示 this.$Modal.confirm({ title: '提示!', content: '<p>是否确认提交?</p>', onOk: () => { let proxy = { url: 'ecfh/bmzx/submitZxInfo', params: { ecfhJrscjbxxStr: JSON.stringify(this.jrscJbxx), zxjlList: JSON.stringify(this.zxjlGrid), fjxx: JSON.stringify(fDataArray) } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.$Message.success('提交成功,进入【验收】环节!') this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1001) { this.$Message.success(d.msg) this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1002) { this.$Modal.warning({ title: '提示', content: d.msg }) } else { this.$Message.error('未知错误!') } }) }, onCancel: () => { this.$Message.info('已取消') } }) } }) }, // 归档 gDview () { // 表单验证 this.$refs['ysref'].validate((valid) => { if (valid) { // 上传附件信息 let fDataArray = this.$refs.oDemo.getFList() // 审核提交二次提示 this.$Modal.confirm({ title: '提示!', content: '<p>是否确认归档?</p>', onOk: () => { let proxy = { url: 'ecfh/bmzx/submitYsInfo', params: { id: this.jrscJbxx.id, bh: this.jrscJbxx.bh, zt: this.jrscJbxx.zt, ysjg: this.jrscJbxx.ysjg, ysrmc: this.jrscJbxx.ysrmc, yssj: new Date(this.jrscJbxx.yssj), fjxx: JSON.stringify(fDataArray) } } this.$oPost({proxy}, (d) => { if (d.code === 1000) { this.$Message.success('归档成功!') this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1001) { this.$Message.success(d.msg) this.$refs.oDemo.cleanData() this.refresh() } else if (d.code === 1002) { this.$Modal.warning({ title: '提示', content: d.msg }) } else { this.$Message.error('未知错误!') } }) }, onCancel: () => { this.$Message.info('已取消') } }) } }) }, // 在保存或修改后用于刷新index.vue中的列表,并关闭对话框 refresh () { this.$emit('refreshList') }, // 格式化日期 dateFormat () { this.jrscJbxx.sqrq = this.$oui.helpers.time.format(this.jrscJbxx.sqrq, 'YYYY-MM-DD') this.jrscJbxx.jhsssj = this.$oui.helpers.time.format(this.jrscJbxx.jhsssj, 'YYYY-MM-DD') this.jrscJbxx.shsj = this.$oui.helpers.time.format(this.jrscJbxx.shsj, 'YYYY-MM-DD hh:mm:ss') this.jrscJbxx.jsshsj = this.$oui.helpers.time.format(this.jrscJbxx.jsshsj, 'YYYY-MM-DD hh:mm:ss') this.jrscJbxx.zgbmshsj = this.$oui.helpers.time.format(this.jrscJbxx.zgbmshsj, 'YYYY-MM-DD hh:mm:ss') this.jrscJbxx.zxqmsj = this.$oui.helpers.time.format(this.jrscJbxx.zxqmsj, 'YYYY-MM-DD hh:mm:ss') if (this.jrscJbxx.yssj !== undefined && this.jrscJbxx.yssj !== '' && this.jrscJbxx.yssj !== null) { this.jrscJbxx.yssj = this.$oui.helpers.time.format(this.jrscJbxx.yssj, 'YYYY-MM-DD hh:mm:ss') } } } } </script>