Blame view

src/views/system/sqywgz/sqywDetail.vue 11 KB
田浩浩 committed
1
<template>
2
  <div>
田浩浩 committed
3
    <ul class="edit-title-list" v-if="djlxList.length > 0">
4 5
      <li v-for="(item, index) in djlxList" @click="handleTitleSelct(item, index)" :key="index"
        :class="{ active: index == tn }">
田浩浩 committed
6 7 8
        {{ item.nodename }}
      </li>
    </ul>
9 10 11 12
    <div class="contentBox">
      <el-form :model="form" v-show="n == 0" label-width="135px" ref="ruleForm">
        <el-row>
          <el-col :span="8">
13
            <el-form-item label="申请分类" v-if="form.ywDetail && form.ywDetail.sqfl">
14 15
              <el-select v-model="form.ywDetail.sqfl" disabled placeholder="请选择" class="width100">
                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
16 17 18 19 20
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
21
            <el-form-item label="登记业务编码" v-if="form.ywDetail && form.ywDetail.djywbm">
22 23 24 25
              <el-input v-model="form.ywDetail.djywbm" disabled></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="8">
26
            <el-form-item label="登记业务名称" v-if="form.ywDetail && form.ywDetail.djywmc">
27 28 29 30 31 32
              <el-input v-model="form.ywDetail.djywmc" disabled></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
33
            <el-form-item label="发起业务单元类型" v-if="form.ywDetail && form.ywDetail.fqywdylx">
34 35
              <el-select v-model="form.ywDetail.fqywdylx" disabled placeholder="请选择" class="width100">
                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="是否启用" prop="enabled">
              <el-radio-group v-model="form.ywDetail.enabled">
                <el-radio label="1">启用</el-radio>
                <el-radio label="0">禁用</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="业务流程ID" prop="flowid">
              <el-input v-model="form.ywDetail.flowid"></el-input>
            </el-form-item>
          </el-col>
        </el-row>

        <el-row>
          <el-col :span="8">
            <el-form-item label="登记原因设置" prop="sfqydjyymb">
              <el-radio-group v-model="form.ywDetail.sfqydjyymb">
                <el-radio label="1">启用</el-radio>
                <el-radio label="0">禁用</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="登记情形及材料">
66
              <el-input v-model="form.ywDetail.djqxcl" placeholder="仅支持execl文件导入"></el-input>
67 68 69
            </el-form-item>
          </el-col>
          <el-col :span="1">
70
            <el-upload ref="upload" :action="imgUploadUrl" :limit="1" accept=".xls, .xlsx" :show-file-list="false"
71 72
              :before-upload="uploadRecord" :on-success="handleSuccess">
              <el-button type="primary" icon="el-icon-upload">上传材料</el-button>
73 74 75 76 77 78
            </el-upload>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="24">
            <el-form-item label="登记原因模板" prop="djyy">
79
              <el-input type="textarea" :rows="4" placeholder="请输入内容" v-model="form.ywDetail.djyy">
80 81 82 83 84
              </el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
85
      <el-collapse class="modifycollapse" accordion>
86
        <el-collapse-item title="登记情形设置" name="1">
87
          <lb-table :column="djqxCol" :pagination="false" heightNumSetting :minHeight="160" :data="form.djqx">
88 89
          </lb-table>
        </el-collapse-item>
90
        <el-collapse-item title="材料信息设置" name="2">
91 92
          <lb-table :column="clxxCol" :heightNumSetting="true" :minHeight="160"
            :pagination="false" :data="form.clxx">
93 94
          </lb-table>
        </el-collapse-item>
95
        <el-collapse-item title="刷选权利设置" name="3" v-if="form.ywDetail.sfsxql == '1'">
96 97 98
          <div class="dyztsd-title">
            <b>请勾选需要查询的权利信息</b>
            <div>
99
              <el-button type="text" @click="handleSelectall">选择全部
田浩浩 committed
100
              </el-button>
101 102 103 104 105 106
              <el-button type="text" @click="handleInvert">清除全部</el-button>
            </div>
          </div>
          <el-divider></el-divider>
          <ul class="qlxx-list">
            <li v-for="(item, index) in form.sxql" :key="index">
田浩浩 committed
107
              <el-checkbox v-model="item.checked">{{
108
                item.sxzdmc
田浩浩 committed
109
              }}</el-checkbox>
110 111 112
            </li>
          </ul>
        </el-collapse-item>
113
        <el-collapse-item title="办理状态设置" name="4">
114 115 116 117
          <ul class="screen-list">
            <li v-for="(item, index) in form.sxzt" :key="index">
              <div class="screen-list-left">
                {{ item.sxzdmc }}
田浩浩 committed
118
                <el-checkbox v-model="item.checked">禁止办理</el-checkbox>
119 120 121 122 123 124
              </div>
            </li>
          </ul>
        </el-collapse-item>
      </el-collapse>
    </div>
125
    <div slot="footer" class="dialog_footer text-center">
126
      <el-button @click="$popupCacel()">取 消</el-button>
127
      <el-button type="primary" @click="submit" plain>提 交</el-button>
田浩浩 committed
128
    </div>
129
  </div>
田浩浩 committed
130 131
</template>
<script>
132 133 134 135 136 137 138 139 140 141 142 143 144 145
  import { uploadUrl } from '@/api/file'
  import { upward, down } from "@/utils/operation";
  import { getDjlxInfo, getSqdjywDetail, saveSqdjyw } from "@/api/system.js";
  import { datas, sendThis } from "./sqywDetail";
  export default {
    name: "componentDialog",
    props: {
      formData: {
        type: Object,
        default: () => { }
      }
    },
    data () {
      return {
146
        key: 0,
147 148 149 150 151 152 153 154
        tn: 0,
        n: 0,
        djlxList: [],
        options: [],
        imgUploadUrl: uploadUrl(),
        title: "",
        activeName: "1",
        form: {
155
          bsmSqyw: '',
156 157 158
          ywDetail: {},
          djqx: [],
          clxx: []
159 160 161 162
        },
        djqxCol: datas.djqxCol(),
        clxxCol: datas.clxxCol(),
      };
田浩浩 committed
163
    },
164 165 166
    mounted () {
      sendThis(this)
      this.init()
田浩浩 committed
167
    },
168 169 170 171 172 173 174 175 176 177 178 179 180 181
    methods: {
      //页面初始化
      init () {
        this.tn = 0;
        getDjlxInfo(this.formData.bsmSqyw).then((res) => {
          let { result } = res;
          this.djlxList = result ? result : [];
          if (this.djlxList.length > 0) {
            this.getDetail(this.djlxList[0].bsmSqyw);
          } else {
            this.getDetail(this.formData.bsmSqyw);
          }
        })
      },
182 183 184
      orderNoChange () {
        this.$forceUpdate();
      },
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
      uploadRecord (file) {
        this.requested = true
        this.files = file;
        const extension = file.name.split('.')[1] === 'xls'
        const extension2 = file.name.split('.')[1] === 'xlsx'
        const isLt5M = file.size / 1024 / 1024 < 5
        if (!extension && !extension2) {
          this.$message.warning('上传模板只能是 xls、xlsx格式!')
          this.requested = false
        }
        if (!isLt5M) {
          this.$message.warning('上传模板大小不能超过 5MB!')
          this.requested = false
        }
        return (extension || extension2) && isLt5M
      },
      handleSuccess () { },
      //tab选项卡事件
      handleTitleSelct (obj, index) {
        this.n = 0;
        this.tn = index;
        this.getDetail(this.djlxList[index].bsmSqyw);
      },
      //获取业务具体明细内容
      getDetail (bsmSqyw) {
210
        let _this = this
211 212
        getSqdjywDetail(bsmSqyw).then((res) => {
          if (res.code === 200) {
213 214 215 216 217 218 219
            _this.form.bsmSqyw = res.result.bsmSqyw
            _this.form.ywDetail = res.result.ywDetail
            _this.$set(_this.form, 'djqx', res.result.djqx)
            _this.$set(_this.form, 'sxql', res.result.sxql)
            _this.$set(_this.form, 'clxx', res.result.clxx)
            _this.$set(_this.form, 'sxzt', res.result.sxzt)
            _this.$set(_this.form, 'ywDetail', res.result.ywDetail)
220
          } else {
221
            this.$alert(res.message)
222
          }
223
        })
224 225 226 227 228 229 230 231
      },
      //提交保存数据
      submit () {
        let that = this;
        saveSqdjyw(this.form).then((res) => {
          if (res.code == 200) {
            that.$message({
              message: "修改成功",
232
              type: "success"
233 234 235
            });
            this.$popupCacel()
          }
236
        })
237 238 239 240 241
      },
      // 上移下移
      moveUpward (index, row, type) {
        if (type == "clxx") {
          upward(index, this.form.clxx);
田浩浩 committed
242
        } else {
243
          upward(index, this.form.djqx);
田浩浩 committed
244
        }
245 246 247 248 249 250
      },
      moveDown (index, row, type) {
        if (type == "clxx") {
          down(index, this.form.clxx);
        } else {
          down(index, this.form.djqx);
251
        }
252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
      },
      addDjqx () {
        this.form.djqx.push({
          nodecode: "",
          nodename: "",
          enabled: "1",
          djyy: "",
          sfqydjyymb: "0",
        });
      },
      removeDjqx (index, row) {
        this.form.djqx.splice(index, 1);
      },
      addClxx () {
        this.form.clxx.push({
          isrequired: "1",
          djqxbm: "",
          clbm: "",
          clmc: "",
          cllx: "",
          sfggcl: "1",
        });
      },
      removeClxx (index, row) {
        this.form.clxx.splice(index, 1);
277 278 279
      }
    }
  }
田浩浩 committed
280 281
</script>
<style lang='scss' scoped>
282 283 284 285
  @import "~@/styles/mixin.scss";
  @import "~@/styles/dialogBox.scss";
  @import "~@/styles/collapse.scss";
  @import "~@/styles/dialogBoxheader.scss";
286

287 288 289 290
  .contentBox {
    height: 75vh;
    overflow-y: scroll;
  }
291

292 293 294 295 296 297 298
  .el-radio-group {
    white-space: nowrap;
  }
  .form {
    background: #eee;
    padding: 0 10px;
  }
299

300 301
  .edit-title-list {
    @include flex;
田浩浩 committed
302

303 304 305 306 307 308 309 310
    li {
      flex: 1;
      @include flex-center;
      border: 1px solid $borderColor;
      line-height: 36px;
      margin-bottom: 10px;
      cursor: pointer;
      transition: all 0.3s;
田浩浩 committed
311

312 313 314
      &:hover {
        @extend .active;
      }
田浩浩 committed
315 316
    }
  }
田浩浩 committed
317

318 319 320
  .active {
    background: $light-blue !important;
    color: #fff;
田浩浩 committed
321 322
  }

323
  .dyztsd-title {
田浩浩 committed
324 325
    @include flex;
    align-items: center;
326
    justify-content: space-between;
田浩浩 committed
327 328 329
    padding-left: 20px;
  }

330 331 332 333 334 335 336 337 338
  .qlxx-list {
    @include flex;
    flex-wrap: wrap;
    padding-left: 20px;

    li {
      width: 25%;
      margin-bottom: 15px;
    }
田浩浩 committed
339 340
  }

341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
  .screen-list {
    @include flex;
    align-items: center;
    flex-wrap: wrap;
    border: 1px solid $borderColor;
    border-bottom: none;

    li {
      @include flex;
      align-items: center;
      width: 25%;
      line-height: 50px;
      border-bottom: 1px solid $borderColor;
      padding-left: 20px;
    }

    &-left {
      margin-right: 20px;
      width: 160px;
      white-space: nowrap;
    }

    li:nth-child(odd) {
      border-right: 1px solid $borderColor;
    }
田浩浩 committed
366
  }
367
</style>