Table 中,每個單元格是一個 input(vue.js iview)

當時實現的功能是在 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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章