材料信息
Showing
7 changed files
with
753 additions
and
3 deletions
| ... | @@ -19,9 +19,9 @@ | ... | @@ -19,9 +19,9 @@ |
| 19 | <el-button type="primary" @click="clickImage">(放大) 显示(缩小)</el-button> | 19 | <el-button type="primary" @click="clickImage">(放大) 显示(缩小)</el-button> |
| 20 | <el-upload class="fileUpdate" action="" :show-file-list="false" multiple :auto-upload="false" | 20 | <el-upload class="fileUpdate" action="" :show-file-list="false" multiple :auto-upload="false" |
| 21 | :on-change="handleChange" accept=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :before-upload="beforeUpload"> | 21 | :on-change="handleChange" accept=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg" :before-upload="beforeUpload"> |
| 22 | <el-button icon="el-icon-upload" type="primary">上传</el-button> | 22 | <el-button icon="el-icon-upload" type="primary" v-if="!this.$route.query.viewtype">上传</el-button> |
| 23 | </el-upload> | 23 | </el-upload> |
| 24 | <el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete">删除</el-button> | 24 | <el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete" v-if="!this.$route.query.viewtype">删除</el-button> |
| 25 | </div> | 25 | </div> |
| 26 | <ul> | 26 | <ul> |
| 27 | <li v-for="(img, index) in thumbnailImages" :key="index" :class="{ active: previewImg.index === index }" | 27 | <li v-for="(img, index) in thumbnailImages" :key="index" :class="{ active: previewImg.index === index }" | ... | ... |
| ... | @@ -49,6 +49,10 @@ export default { | ... | @@ -49,6 +49,10 @@ export default { |
| 49 | methods: { | 49 | methods: { |
| 50 | closeDialog () { | 50 | closeDialog () { |
| 51 | this.$emit("input", false); | 51 | this.$emit("input", false); |
| 52 | this.ruleForm = { | ||
| 53 | cllx: "", | ||
| 54 | clmc: "", | ||
| 55 | } | ||
| 52 | }, | 56 | }, |
| 53 | handleSubmit () { | 57 | handleSubmit () { |
| 54 | this.$parent.addSave(this.ruleForm); | 58 | this.$parent.addSave(this.ruleForm); | ... | ... |
| 1 | <template> | ||
| 2 | <dialogBox title="材料明细" width="60%" v-model="value" @closeDialog="closeDialog" :isButton="false"> | ||
| 3 | <div class="clxx"> | ||
| 4 | <div class="right"> | ||
| 5 | <!-- 材料目录明细 --> | ||
| 6 | <div class="clmlmx-box"> | ||
| 7 | <div class="title">申请材料目录</div> | ||
| 8 | <lb-table :column="column" :key="key" :heightNum="150" :pagination="false" :data="data"> | ||
| 9 | </lb-table> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | </div> | ||
| 13 | </dialogBox> | ||
| 14 | </template> | ||
| 15 | <script> | ||
| 16 | import { mapGetters } from "vuex"; | ||
| 17 | import { clmlInit, move, save, clmlDelete } from "@/api/fqsq.js"; | ||
| 18 | export default { | ||
| 19 | components: { }, | ||
| 20 | props: { | ||
| 21 | value: { type: Boolean, default: false }, | ||
| 22 | data: { type: Array, default: () => {} }, | ||
| 23 | }, | ||
| 24 | data () { | ||
| 25 | return { | ||
| 26 | isDialog: false, | ||
| 27 | iclass: "", | ||
| 28 | column: [ | ||
| 29 | { | ||
| 30 | width: "50", | ||
| 31 | renderHeader: (h, scope) => { | ||
| 32 | return ( | ||
| 33 | <div> | ||
| 34 | { | ||
| 35 | '' | ||
| 36 | } | ||
| 37 | </div> | ||
| 38 | ) | ||
| 39 | }, | ||
| 40 | render: (h, scope) => { | ||
| 41 | return ( | ||
| 42 | <div> | ||
| 43 | { | ||
| 44 | this.$route.query.viewtype || scope.row.sfxjcl == '0' ? <span>{}</span> : | ||
| 45 | <i class="el-icon-minus pointer" | ||
| 46 | onClick={() => { | ||
| 47 | this.handleDelete(scope.$index, scope.row); | ||
| 48 | }} | ||
| 49 | ></i> | ||
| 50 | } | ||
| 51 | </div> | ||
| 52 | ) | ||
| 53 | } | ||
| 54 | }, | ||
| 55 | { | ||
| 56 | width: "50", | ||
| 57 | label: '序号', | ||
| 58 | render: (h, scope) => { | ||
| 59 | return <span>{scope.$index + 1}</span> | ||
| 60 | } | ||
| 61 | }, | ||
| 62 | { | ||
| 63 | prop: "isrequired", | ||
| 64 | label: "是否必选", | ||
| 65 | width: "50", | ||
| 66 | render: (h, scope) => { | ||
| 67 | if (scope.row.sfxjcl === "1") { | ||
| 68 | return ( | ||
| 69 | <div> | ||
| 70 | <span>可选</span> | ||
| 71 | </div> | ||
| 72 | ); | ||
| 73 | } | ||
| 74 | else { | ||
| 75 | return ( | ||
| 76 | <div> | ||
| 77 | <span>必选</span> | ||
| 78 | </div> | ||
| 79 | ); | ||
| 80 | } | ||
| 81 | }, | ||
| 82 | }, | ||
| 83 | { | ||
| 84 | prop: "sjmc", | ||
| 85 | label: "材料名称", | ||
| 86 | }, | ||
| 87 | { | ||
| 88 | prop: "sjlx", | ||
| 89 | label: "材料类型", | ||
| 90 | width: "80", | ||
| 91 | render: (h, scope) => { | ||
| 92 | return ( | ||
| 93 | <div> | ||
| 94 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> | ||
| 95 | </div> | ||
| 96 | ); | ||
| 97 | }, | ||
| 98 | }, | ||
| 99 | { | ||
| 100 | prop: "sjsl", | ||
| 101 | label: "份数", | ||
| 102 | width: "50" | ||
| 103 | }, | ||
| 104 | { | ||
| 105 | prop: "smzt", | ||
| 106 | label: "扫描状态", | ||
| 107 | width: "80", | ||
| 108 | render: (h, scope) => { | ||
| 109 | if (scope.row.children.length > 0) { | ||
| 110 | return ( | ||
| 111 | <div> | ||
| 112 | <span>已扫描</span> | ||
| 113 | </div> | ||
| 114 | ); | ||
| 115 | } else { | ||
| 116 | return ( | ||
| 117 | <div> | ||
| 118 | <span>未扫描</span> | ||
| 119 | </div> | ||
| 120 | ); | ||
| 121 | } | ||
| 122 | }, | ||
| 123 | }, | ||
| 124 | { | ||
| 125 | prop: "ys", | ||
| 126 | label: "扫描页数", | ||
| 127 | width: "50" | ||
| 128 | }, | ||
| 129 | { | ||
| 130 | label: "操作", | ||
| 131 | width: "80", | ||
| 132 | render: (h, scope) => { | ||
| 133 | return ( | ||
| 134 | <div> | ||
| 135 | <el-button | ||
| 136 | type="text" | ||
| 137 | disabled={scope.$index == 0} | ||
| 138 | onClick={() => { | ||
| 139 | this.moveUpward(scope.$index, scope.row); | ||
| 140 | }} | ||
| 141 | > | ||
| 142 | 上移 | ||
| 143 | </el-button> | ||
| 144 | <el-button | ||
| 145 | type="text" | ||
| 146 | disabled={scope.$index + 1 == this.tableData.length} | ||
| 147 | onClick={() => { | ||
| 148 | this.moveDown(scope.$index, scope.row); | ||
| 149 | }} | ||
| 150 | > | ||
| 151 | 下移 | ||
| 152 | </el-button> | ||
| 153 | </div> | ||
| 154 | ); | ||
| 155 | }, | ||
| 156 | }, | ||
| 157 | ], | ||
| 158 | key: 0, | ||
| 159 | tableData: [], | ||
| 160 | } | ||
| 161 | }, | ||
| 162 | computed: { | ||
| 163 | ...mapGetters(["dictData"]) | ||
| 164 | }, | ||
| 165 | created () { | ||
| 166 | |||
| 167 | }, | ||
| 168 | methods: { | ||
| 169 | // 材料目录明细初始化 | ||
| 170 | clmlInitList () { | ||
| 171 | return new Promise(resolve => { | ||
| 172 | this.unitData = this.$parent.unitData; | ||
| 173 | var formdata = new FormData(); | ||
| 174 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 175 | formdata.append("bsmSlsq", this.$route.query.bsmSlsq); | ||
| 176 | clmlInit(formdata).then((res) => { | ||
| 177 | if(res.code == 200){ | ||
| 178 | resolve(res.code) | ||
| 179 | if(res.result && res.result.length > 0){ | ||
| 180 | this.data = res.result; | ||
| 181 | }else{ | ||
| 182 | this.data = [] | ||
| 183 | } | ||
| 184 | }else{ | ||
| 185 | this.$message.error(res.message) | ||
| 186 | } | ||
| 187 | }) | ||
| 188 | }) | ||
| 189 | }, | ||
| 190 | // 上移 | ||
| 191 | moveUpward (index, row) { | ||
| 192 | let obj = { | ||
| 193 | xh: row.xh, | ||
| 194 | bsmSlsq: row.bsmSlsq, | ||
| 195 | moveDirection: "UP", | ||
| 196 | }; | ||
| 197 | // 接口待调 | ||
| 198 | move(obj).then(async (res) => { | ||
| 199 | if (res.code == 200) { | ||
| 200 | let res = await this.clmlInitList() | ||
| 201 | if (res == 200) { | ||
| 202 | this.$message({ | ||
| 203 | message: '上移成功', | ||
| 204 | type: 'success' | ||
| 205 | }) | ||
| 206 | this.$parent.setTableData(this.data) | ||
| 207 | } | ||
| 208 | } else { | ||
| 209 | this.$message.error(res.message); | ||
| 210 | } | ||
| 211 | }) | ||
| 212 | }, | ||
| 213 | // 下移 | ||
| 214 | moveDown (index, row) { | ||
| 215 | let obj = { | ||
| 216 | xh: row.xh, | ||
| 217 | bsmSlsq: row.bsmSlsq, | ||
| 218 | moveDirection: "DOWN", | ||
| 219 | } | ||
| 220 | // 接口待调 | ||
| 221 | move(obj).then(async (res) => { | ||
| 222 | if (res.code == 200) { | ||
| 223 | let res = await this.clmlInitList() | ||
| 224 | if (res == 200) { | ||
| 225 | this.$message({ | ||
| 226 | message: '下移成功', | ||
| 227 | type: 'success' | ||
| 228 | }) | ||
| 229 | this.$parent.setTableData(this.data) | ||
| 230 | } | ||
| 231 | } else { | ||
| 232 | this.$message.error(res.message); | ||
| 233 | } | ||
| 234 | }) | ||
| 235 | }, | ||
| 236 | // 材料目录删除 | ||
| 237 | handleDelete (index, row) { | ||
| 238 | let that = this | ||
| 239 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | ||
| 240 | confirmButtonText: '确定', | ||
| 241 | cancelButtonText: '取消', | ||
| 242 | type: 'warning' | ||
| 243 | }).then(() => { | ||
| 244 | clmlDelete({ sjBsm: row.bsmSj }).then(async (res) => { | ||
| 245 | if (res.code == 200) { | ||
| 246 | let res = await that.clmlInitList() | ||
| 247 | if (res == 200) { | ||
| 248 | that.$message({ | ||
| 249 | message: "删除成功", | ||
| 250 | type: "success", | ||
| 251 | }) | ||
| 252 | this.$parent.setTableData(this.data) | ||
| 253 | } | ||
| 254 | } | ||
| 255 | }) | ||
| 256 | }).catch(() => { | ||
| 257 | this.$message({ | ||
| 258 | type: 'info', | ||
| 259 | message: '已取消删除' | ||
| 260 | }) | ||
| 261 | }) | ||
| 262 | }, | ||
| 263 | // 字典 | ||
| 264 | dicStatus (val, code) { | ||
| 265 | let data = this.$store.getters.dictData[code], | ||
| 266 | name = "暂无"; | ||
| 267 | if (data) { | ||
| 268 | data.map((item) => { | ||
| 269 | if (item.dcode == val) { | ||
| 270 | name = item.dname; | ||
| 271 | } | ||
| 272 | }); | ||
| 273 | return name; | ||
| 274 | } | ||
| 275 | }, | ||
| 276 | closeDialog(){ | ||
| 277 | this.$emit("input", false); | ||
| 278 | }, | ||
| 279 | }, | ||
| 280 | }; | ||
| 281 | </script> | ||
| 282 | <style scoped lang='scss'> | ||
| 283 | @import "~@/styles/mixin.scss"; | ||
| 284 | |||
| 285 | .active { | ||
| 286 | background: $light-blue !important; | ||
| 287 | color: #fff; | ||
| 288 | } | ||
| 289 | |||
| 290 | .required { | ||
| 291 | font-size: 12px; | ||
| 292 | color: $pink; | ||
| 293 | float: left; | ||
| 294 | } | ||
| 295 | |||
| 296 | .cl_number { | ||
| 297 | float: right; | ||
| 298 | } | ||
| 299 | |||
| 300 | .clxx { | ||
| 301 | width: 100%; | ||
| 302 | display: flex; | ||
| 303 | padding-left: 5px; | ||
| 304 | height: calc(100vh - 125px); | ||
| 305 | |||
| 306 | .left { | ||
| 307 | display: flex; | ||
| 308 | flex-direction: column; | ||
| 309 | justify-content: space-between; | ||
| 310 | |||
| 311 | .item { | ||
| 312 | width: 28px; | ||
| 313 | height: 49%; | ||
| 314 | @include flex-center; | ||
| 315 | background-color: #E4E7ED; | ||
| 316 | border-bottom-right-radius: 10px; | ||
| 317 | padding: 5px; | ||
| 318 | cursor: pointer; | ||
| 319 | transition: all 0.3s; | ||
| 320 | |||
| 321 | &:hover { | ||
| 322 | @extend .active; | ||
| 323 | } | ||
| 324 | } | ||
| 325 | } | ||
| 326 | |||
| 327 | .right { | ||
| 328 | width: 100%; | ||
| 329 | height: 100%; | ||
| 330 | |||
| 331 | .clmlmx-box { | ||
| 332 | margin: 0 auto; | ||
| 333 | |||
| 334 | .title { | ||
| 335 | text-align: center; | ||
| 336 | height: 60px; | ||
| 337 | line-height: 60px; | ||
| 338 | border: 1px solid #dfe6ec; | ||
| 339 | font-size: 20px; | ||
| 340 | background: #81d3f81a; | ||
| 341 | margin-bottom: -1px; | ||
| 342 | } | ||
| 343 | } | ||
| 344 | |||
| 345 | .clyl-box { | ||
| 346 | width: 100%; | ||
| 347 | height: 100%; | ||
| 348 | display: flex; | ||
| 349 | |||
| 350 | .menu-tree { | ||
| 351 | width: 20%; | ||
| 352 | min-width: 160px; | ||
| 353 | height: 100%; | ||
| 354 | margin-right: 10px; | ||
| 355 | border-right: 1px dotted #d9d9d9; | ||
| 356 | padding: 0 15px; | ||
| 357 | |||
| 358 | |||
| 359 | .item { | ||
| 360 | line-height: 30px; | ||
| 361 | padding-top: 5px; | ||
| 362 | border-bottom: 1px solid #e8e8e8; | ||
| 363 | font-size: 16px; | ||
| 364 | text-align: center; | ||
| 365 | color: $light-blue; | ||
| 366 | |||
| 367 | .itemIcon { | ||
| 368 | float: right; | ||
| 369 | line-height: 60px; | ||
| 370 | cursor: pointer; | ||
| 371 | } | ||
| 372 | |||
| 373 | .child { | ||
| 374 | line-height: 32px; | ||
| 375 | border-bottom: 1px solid #e8e8e8; | ||
| 376 | padding-left: 10px; | ||
| 377 | color: #6b6b6b; | ||
| 378 | cursor: pointer; | ||
| 379 | box-sizing: border-box; | ||
| 380 | border-radius: 6px; | ||
| 381 | line-height: 20px; | ||
| 382 | transition: all 0.3s; | ||
| 383 | padding: 8px 0; | ||
| 384 | } | ||
| 385 | |||
| 386 | .child:hover { | ||
| 387 | color: $light-blue; | ||
| 388 | transform: scale(1.1); | ||
| 389 | } | ||
| 390 | |||
| 391 | .checked { | ||
| 392 | border: 1px solid $light-blue; | ||
| 393 | color: $light-blue; | ||
| 394 | } | ||
| 395 | } | ||
| 396 | } | ||
| 397 | |||
| 398 | .clyl-img { | ||
| 399 | width: 75%; | ||
| 400 | height: 100%; | ||
| 401 | background: #f3f4f7; | ||
| 402 | margin: 0 auto; | ||
| 403 | position: relative; | ||
| 404 | } | ||
| 405 | } | ||
| 406 | } | ||
| 407 | } | ||
| 408 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/workflow/components/clxxUnify.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="clxx"> | ||
| 3 | <div class="right"> | ||
| 4 | <!-- 材料预览 --> | ||
| 5 | <div class="clyl-box"> | ||
| 6 | <div class="menu-tree"> | ||
| 7 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> | ||
| 8 | <div class="item"> | ||
| 9 | 材料目录({{tableData.length}}) | ||
| 10 | <div style="margin-top:10px"> | ||
| 11 | <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div> | ||
| 12 | <div v-for="(item,index) in tableData" :key="item.bsmSj" | ||
| 13 | :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)"> | ||
| 14 | <span v-if="item.isrequired==1" class="required">必选</span> | ||
| 15 | {{ item.sjmc }} | ||
| 16 | <span class="cl_number">({{item.children ? item.children.length : 0}})</span> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | </div> | ||
| 20 | <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()" v-if="!this.$route.query.viewtype">新增</el-button> | ||
| 21 | </div> | ||
| 22 | <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview" | ||
| 23 | @prevPriview="prevPriview" /> | ||
| 24 | </div> | ||
| 25 | </div> | ||
| 26 | <clxxAddDialog v-model="isDialog" /> | ||
| 27 | <clxxDetailDialog v-model="detailDialog" :data="tableData"/> | ||
| 28 | </div> | ||
| 29 | </template> | ||
| 30 | <script> | ||
| 31 | import { mapGetters } from "vuex"; | ||
| 32 | import clxxAddDialog from "./clxxAddDialog.vue"; | ||
| 33 | import clxxDetailDialog from "./clxxDetailDialog.vue"; | ||
| 34 | import imagePreview from '@/views/components/imagePreview.vue' | ||
| 35 | import { clmlInit, move, save, clmlDelete } from "@/api/fqsq.js"; | ||
| 36 | import { popupDialog } from "@/utils/popup.js"; | ||
| 37 | export default { | ||
| 38 | components: { clxxAddDialog, imagePreview,clxxDetailDialog }, | ||
| 39 | data () { | ||
| 40 | return { | ||
| 41 | isDialog: false, | ||
| 42 | detailDialog: false, | ||
| 43 | iclass: "", | ||
| 44 | // 材料目录选中 | ||
| 45 | treeCheckIndex: 0, | ||
| 46 | treeCheckId: "", | ||
| 47 | key: 0, | ||
| 48 | tableData: [], | ||
| 49 | previewImg: { | ||
| 50 | // 收件标识码 | ||
| 51 | bsmSj: '', | ||
| 52 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 53 | index: 0, | ||
| 54 | selectedIndex: 0, | ||
| 55 | imgList: [] | ||
| 56 | } | ||
| 57 | } | ||
| 58 | }, | ||
| 59 | computed: { | ||
| 60 | ...mapGetters(["dictData"]) | ||
| 61 | }, | ||
| 62 | created () { | ||
| 63 | this.clmlInitList(1) | ||
| 64 | }, | ||
| 65 | methods: { | ||
| 66 | // 自动预览 | ||
| 67 | nextPriview () { | ||
| 68 | if (this.treeCheckIndex < this.tableData.length) { | ||
| 69 | this.treeCheckIndex++ | ||
| 70 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 71 | this.previewImg.index = 0 | ||
| 72 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 73 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 74 | } | ||
| 75 | }, | ||
| 76 | prevPriview () { | ||
| 77 | if (this.treeCheckIndex >= 1) { | ||
| 78 | this.treeCheckIndex-- | ||
| 79 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 80 | this.previewImg.index = this.previewImg.imgList.length | ||
| 81 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 82 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 83 | } | ||
| 84 | }, | ||
| 85 | // 材料目录明细初始化 | ||
| 86 | clmlInitList (type) { | ||
| 87 | //type 1:列表初始化 2:新增材料 | ||
| 88 | return new Promise(resolve => { | ||
| 89 | this.unitData = this.$parent.unitData; | ||
| 90 | var formdata = new FormData(); | ||
| 91 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 92 | formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
| 93 | clmlInit(formdata).then((res) => { | ||
| 94 | if(res.code == 200){ | ||
| 95 | resolve(res.code) | ||
| 96 | if (res.result && res.result.length > 0) { | ||
| 97 | this.tableData = res.result; | ||
| 98 | if(type == 1){ | ||
| 99 | this.treeClick(this.tableData[0],0); | ||
| 100 | }else{ | ||
| 101 | //新增材料后刷新列表焦点置于新增的对象上 | ||
| 102 | this.treeClick(this.tableData[this.tableData.length - 1],this.tableData.length - 1); | ||
| 103 | } | ||
| 104 | } | ||
| 105 | }else{ | ||
| 106 | this.$message.error(res.message) | ||
| 107 | } | ||
| 108 | }) | ||
| 109 | }) | ||
| 110 | }, | ||
| 111 | setChecked(item){ | ||
| 112 | this.treeCheckId = item.bsmSj; | ||
| 113 | this.title = item.sjmc; | ||
| 114 | this.titleYs = 1; | ||
| 115 | this.titleNum = item.children.length; | ||
| 116 | this.previewImg.imgList = item.children; | ||
| 117 | this.previewImg.bsmSj = item.bsmSj; | ||
| 118 | }, | ||
| 119 | updateList (val) { | ||
| 120 | let that = this | ||
| 121 | if (val != null) { //删除最后一张图片时 val=null | ||
| 122 | this.tableData.forEach(item => { | ||
| 123 | if (item.bsmSj === val.bsmSj) { | ||
| 124 | item.children = val.children | ||
| 125 | } | ||
| 126 | }) | ||
| 127 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
| 128 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
| 129 | this.previewImg.index = this.previewImg.index - 1 | ||
| 130 | } | ||
| 131 | } else { | ||
| 132 | this.previewImg.imgList = [] | ||
| 133 | this.tableData.forEach((item, index) => { | ||
| 134 | if (this.treeCheckId == item.bsmSj) { | ||
| 135 | item.children = [] | ||
| 136 | that.treeCheckIndex = index | ||
| 137 | } | ||
| 138 | }) | ||
| 139 | } | ||
| 140 | |||
| 141 | }, | ||
| 142 | // 添加材料目录 | ||
| 143 | handleAdd () { | ||
| 144 | this.isDialog = true; | ||
| 145 | }, | ||
| 146 | // 新增弹窗保存 | ||
| 147 | addSave (data) { | ||
| 148 | let obj = { | ||
| 149 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 150 | isrequired: "1", | ||
| 151 | sjmc: data.clmc, | ||
| 152 | sjsl: 0, | ||
| 153 | smzt: '', | ||
| 154 | ys: 0, | ||
| 155 | sjlx: data.cllx, | ||
| 156 | sfxjcl: "1", // 是否必选 | ||
| 157 | }; | ||
| 158 | save(obj).then(async (res) => { | ||
| 159 | if (res.code == 200) { | ||
| 160 | let res = await this.clmlInitList(2) | ||
| 161 | if (res == 200) this.$message({ | ||
| 162 | message: "新增成功", | ||
| 163 | type: "success", | ||
| 164 | }) | ||
| 165 | } | ||
| 166 | }); | ||
| 167 | }, | ||
| 168 | // 材料目录点击选中 | ||
| 169 | treeClick (item, index) { | ||
| 170 | this.previewImg.index = 0 | ||
| 171 | this.treeCheckId = item?.bsmSj | ||
| 172 | this.treeCheckIndex = index | ||
| 173 | this.previewImg.imgList = item?.children | ||
| 174 | this.previewImg.bsmSj = item?.bsmSj | ||
| 175 | }, | ||
| 176 | // 小图片点击 | ||
| 177 | imgClick (item, index) { | ||
| 178 | this.showImg = item; | ||
| 179 | this.titleYs = index + 1; | ||
| 180 | }, | ||
| 181 | // 字典 | ||
| 182 | dicStatus (val, code) { | ||
| 183 | let data = this.$store.getters.dictData[code], | ||
| 184 | name = "暂无"; | ||
| 185 | if (data) { | ||
| 186 | data.map((item) => { | ||
| 187 | if (item.dcode == val) { | ||
| 188 | name = item.dname; | ||
| 189 | } | ||
| 190 | }); | ||
| 191 | return name; | ||
| 192 | } | ||
| 193 | }, | ||
| 194 | //查看明细 | ||
| 195 | viewDetail(){ | ||
| 196 | this.detailDialog = true; | ||
| 197 | }, | ||
| 198 | //设置tableData | ||
| 199 | setTableData(tableData){ | ||
| 200 | this.$nextTick(res => { | ||
| 201 | this.tableData = tableData; | ||
| 202 | }) | ||
| 203 | }, | ||
| 204 | }, | ||
| 205 | }; | ||
| 206 | </script> | ||
| 207 | <style scoped lang='scss'> | ||
| 208 | @import "~@/styles/mixin.scss"; | ||
| 209 | |||
| 210 | .active { | ||
| 211 | background: $light-blue !important; | ||
| 212 | color: #fff; | ||
| 213 | } | ||
| 214 | |||
| 215 | .required { | ||
| 216 | font-size: 12px; | ||
| 217 | color: $pink; | ||
| 218 | float: left; | ||
| 219 | } | ||
| 220 | |||
| 221 | .cl_number { | ||
| 222 | float: right; | ||
| 223 | } | ||
| 224 | |||
| 225 | .clxx { | ||
| 226 | width: 100%; | ||
| 227 | display: flex; | ||
| 228 | padding-left: 5px; | ||
| 229 | height: calc(100vh - 125px); | ||
| 230 | |||
| 231 | .left { | ||
| 232 | display: flex; | ||
| 233 | flex-direction: column; | ||
| 234 | justify-content: space-between; | ||
| 235 | |||
| 236 | .item { | ||
| 237 | width: 28px; | ||
| 238 | height: 49%; | ||
| 239 | @include flex-center; | ||
| 240 | background-color: #E4E7ED; | ||
| 241 | border-bottom-right-radius: 10px; | ||
| 242 | padding: 5px; | ||
| 243 | cursor: pointer; | ||
| 244 | transition: all 0.3s; | ||
| 245 | |||
| 246 | &:hover { | ||
| 247 | @extend .active; | ||
| 248 | } | ||
| 249 | } | ||
| 250 | } | ||
| 251 | |||
| 252 | .right { | ||
| 253 | width: 100%; | ||
| 254 | height: 100%; | ||
| 255 | |||
| 256 | .clmlmx-box { | ||
| 257 | margin: 0 auto; | ||
| 258 | |||
| 259 | .title { | ||
| 260 | text-align: center; | ||
| 261 | height: 60px; | ||
| 262 | line-height: 60px; | ||
| 263 | border: 1px solid #dfe6ec; | ||
| 264 | font-size: 20px; | ||
| 265 | background: #81d3f81a; | ||
| 266 | margin-bottom: -1px; | ||
| 267 | } | ||
| 268 | } | ||
| 269 | |||
| 270 | .clyl-box { | ||
| 271 | width: 100%; | ||
| 272 | height: 100%; | ||
| 273 | display: flex; | ||
| 274 | |||
| 275 | .menu-tree { | ||
| 276 | width: 20%; | ||
| 277 | min-width: 160px; | ||
| 278 | height: 100%; | ||
| 279 | margin-right: 10px; | ||
| 280 | border-right: 1px dotted #d9d9d9; | ||
| 281 | padding: 0 15px; | ||
| 282 | |||
| 283 | |||
| 284 | .item { | ||
| 285 | line-height: 30px; | ||
| 286 | padding-top: 5px; | ||
| 287 | border-bottom: 1px solid #e8e8e8; | ||
| 288 | font-size: 16px; | ||
| 289 | text-align: center; | ||
| 290 | color: $light-blue; | ||
| 291 | |||
| 292 | .itemIcon { | ||
| 293 | float: right; | ||
| 294 | line-height: 60px; | ||
| 295 | cursor: pointer; | ||
| 296 | } | ||
| 297 | |||
| 298 | .child { | ||
| 299 | line-height: 32px; | ||
| 300 | border-bottom: 1px solid #e8e8e8; | ||
| 301 | padding-left: 10px; | ||
| 302 | color: #6b6b6b; | ||
| 303 | cursor: pointer; | ||
| 304 | box-sizing: border-box; | ||
| 305 | border-radius: 6px; | ||
| 306 | line-height: 20px; | ||
| 307 | transition: all 0.3s; | ||
| 308 | padding: 8px 0; | ||
| 309 | } | ||
| 310 | |||
| 311 | .child:hover { | ||
| 312 | color: $light-blue; | ||
| 313 | transform: scale(1.1); | ||
| 314 | } | ||
| 315 | |||
| 316 | .checked { | ||
| 317 | border: 1px solid $light-blue; | ||
| 318 | color: $light-blue; | ||
| 319 | } | ||
| 320 | } | ||
| 321 | } | ||
| 322 | |||
| 323 | .clyl-img { | ||
| 324 | width: 75%; | ||
| 325 | height: 100%; | ||
| 326 | background: #f3f4f7; | ||
| 327 | margin: 0 auto; | ||
| 328 | position: relative; | ||
| 329 | } | ||
| 330 | } | ||
| 331 | } | ||
| 332 | } | ||
| 333 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -13,6 +13,7 @@ | ... | @@ -13,6 +13,7 @@ |
| 13 | import { datas } from "../javascript/zsyl.js"; | 13 | import { datas } from "../javascript/zsyl.js"; |
| 14 | import { getSlsqBdcqzList,bdcqzPreview} from "@/api/bdcqz.js" | 14 | import { getSlsqBdcqzList,bdcqzPreview} from "@/api/bdcqz.js" |
| 15 | export default { | 15 | export default { |
| 16 | name: "zsyl", | ||
| 16 | components: { | 17 | components: { |
| 17 | }, | 18 | }, |
| 18 | props: { | 19 | props: { |
| ... | @@ -85,7 +86,9 @@ export default { | ... | @@ -85,7 +86,9 @@ export default { |
| 85 | this.getBdcqzPreview(); | 86 | this.getBdcqzPreview(); |
| 86 | }, | 87 | }, |
| 87 | getBdcqzPreview(){ | 88 | getBdcqzPreview(){ |
| 89 | this.$startLoading() | ||
| 88 | bdcqzPreview(this.bdcqz).then(res => { | 90 | bdcqzPreview(this.bdcqz).then(res => { |
| 91 | this.$endLoading() | ||
| 89 | let blob = new Blob([res]); | 92 | let blob = new Blob([res]); |
| 90 | let url = window.URL.createObjectURL(blob); | 93 | let url = window.URL.createObjectURL(blob); |
| 91 | this.previewImage = url; | 94 | this.previewImage = url; | ... | ... |
| ... | @@ -37,7 +37,7 @@ export function getForm (tabName, djywbm) { | ... | @@ -37,7 +37,7 @@ export function getForm (tabName, djywbm) { |
| 37 | break; | 37 | break; |
| 38 | 38 | ||
| 39 | case "clxx": | 39 | case "clxx": |
| 40 | form = require("@/views/workflow/components/clxx.vue"); | 40 | form = require("@/views/workflow/components/clxxUnify.vue"); |
| 41 | break; | 41 | break; |
| 42 | case "spyj": | 42 | case "spyj": |
| 43 | form = require("@/views/workflow/components/spyj.vue"); | 43 | form = require("@/views/workflow/components/spyj.vue"); | ... | ... |
| ... | @@ -37,6 +37,8 @@ export default { | ... | @@ -37,6 +37,8 @@ export default { |
| 37 | }, | 37 | }, |
| 38 | methods: { | 38 | methods: { |
| 39 | loadView (view) { | 39 | loadView (view) { |
| 40 | console.log(this.djqxObj); | ||
| 41 | |||
| 40 | this.title = "申请业务:" + this.djqxObj.djywmc; | 42 | this.title = "申请业务:" + this.djqxObj.djywmc; |
| 41 | return r => require.ensure([], () => r(require(`./components/${view}.vue`))) | 43 | return r => require.ensure([], () => r(require(`./components/${view}.vue`))) |
| 42 | }, | 44 | }, | ... | ... |
-
Please register or sign in to post a comment