登记簿补录功能开发
Showing
9 changed files
with
1659 additions
and
346 deletions
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-17 10:39:57 | ||
| 5 | --> | ||
| 6 | <template> | ||
| 7 | <div class="clmlmx-box"> | ||
| 8 | <div class="title">申请材料目录</div> | ||
| 9 | <lb-table :column="column" :key="key" :heightNumSetting="true" :pagination="false" :data="formData.data"> | ||
| 10 | </lb-table> | ||
| 11 | <div class="text-center"> | ||
| 12 | <el-button @click="$popupCacel">取消</el-button> | ||
| 13 | </div> | ||
| 14 | </div> | ||
| 15 | </template> | ||
| 16 | <script> | ||
| 17 | import store from '@/store/index.js' | ||
| 18 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
| 19 | export default { | ||
| 20 | props: { | ||
| 21 | formData: { | ||
| 22 | type: Object, | ||
| 23 | default: () => { | ||
| 24 | return {} | ||
| 25 | } | ||
| 26 | } | ||
| 27 | }, | ||
| 28 | data () { | ||
| 29 | return { | ||
| 30 | column: [ | ||
| 31 | { | ||
| 32 | width: "50", | ||
| 33 | label: '序号', | ||
| 34 | type: 'index' | ||
| 35 | }, | ||
| 36 | { | ||
| 37 | prop: "isrequired", | ||
| 38 | label: "是否必选", | ||
| 39 | width: "80", | ||
| 40 | render: (h, scope) => { | ||
| 41 | if (scope.row.sfxjcl === "1") { | ||
| 42 | return ( | ||
| 43 | <div> | ||
| 44 | <span>可选</span> | ||
| 45 | </div> | ||
| 46 | ); | ||
| 47 | } | ||
| 48 | else { | ||
| 49 | return ( | ||
| 50 | <div> | ||
| 51 | <span>必选</span> | ||
| 52 | </div> | ||
| 53 | ); | ||
| 54 | } | ||
| 55 | }, | ||
| 56 | }, | ||
| 57 | { | ||
| 58 | prop: "sjmc", | ||
| 59 | label: "材料名称", | ||
| 60 | }, | ||
| 61 | { | ||
| 62 | prop: "sjlx", | ||
| 63 | label: "材料类型", | ||
| 64 | width: "80", | ||
| 65 | render: (h, scope) => { | ||
| 66 | return ( | ||
| 67 | <div> | ||
| 68 | <span>{this.dicStatus(scope.row.sjlx, "A40")}</span> | ||
| 69 | </div> | ||
| 70 | ); | ||
| 71 | }, | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | prop: "sjsl", | ||
| 75 | label: "份数", | ||
| 76 | width: "50" | ||
| 77 | }, | ||
| 78 | { | ||
| 79 | prop: "smzt", | ||
| 80 | label: "扫描状态", | ||
| 81 | width: "80", | ||
| 82 | render: (h, scope) => { | ||
| 83 | if (scope.row.children && scope.row.children.length > 0) { | ||
| 84 | return ( | ||
| 85 | <div> | ||
| 86 | <span>已扫描</span> | ||
| 87 | </div> | ||
| 88 | ); | ||
| 89 | } else { | ||
| 90 | return ( | ||
| 91 | <div> | ||
| 92 | <span>未扫描</span> | ||
| 93 | </div> | ||
| 94 | ); | ||
| 95 | } | ||
| 96 | }, | ||
| 97 | }, | ||
| 98 | { | ||
| 99 | label: "扫描页数", | ||
| 100 | width: "80", | ||
| 101 | render: (h, scope) => { | ||
| 102 | if (scope.row.children && scope.row.children.length > 0) { | ||
| 103 | return ( | ||
| 104 | <div> | ||
| 105 | <span>{scope.row.children.length}</span> | ||
| 106 | </div> | ||
| 107 | ); | ||
| 108 | } else { | ||
| 109 | return ( | ||
| 110 | <div> | ||
| 111 | <span>0</span> | ||
| 112 | </div> | ||
| 113 | ); | ||
| 114 | } | ||
| 115 | }, | ||
| 116 | }, | ||
| 117 | { | ||
| 118 | label: "操作", | ||
| 119 | width: "80", | ||
| 120 | render: (h, scope) => { | ||
| 121 | return ( | ||
| 122 | <div> | ||
| 123 | <el-button | ||
| 124 | type="text" | ||
| 125 | disabled={scope.$index == 0} | ||
| 126 | onClick={() => { | ||
| 127 | this.moveUpward(scope.$index, scope.row); | ||
| 128 | }} | ||
| 129 | > | ||
| 130 | 上移 | ||
| 131 | </el-button> | ||
| 132 | <el-button | ||
| 133 | type="text" | ||
| 134 | disabled={scope.$index + 1 == this.tableData.length} | ||
| 135 | onClick={() => { | ||
| 136 | this.moveDown(scope.$index, scope.row); | ||
| 137 | }} | ||
| 138 | > | ||
| 139 | 下移 | ||
| 140 | </el-button> | ||
| 141 | </div> | ||
| 142 | ); | ||
| 143 | }, | ||
| 144 | }, | ||
| 145 | ], | ||
| 146 | key: 0, | ||
| 147 | tableData: [] | ||
| 148 | } | ||
| 149 | }, | ||
| 150 | created () { | ||
| 151 | console.log(this.formData.data, 'formData'); | ||
| 152 | }, | ||
| 153 | methods: { | ||
| 154 | // 材料目录明细初始化 | ||
| 155 | clmlInitList () { | ||
| 156 | return new Promise(resolve => { | ||
| 157 | this.unitData = this.$parent.unitData; | ||
| 158 | var formdata = new FormData(); | ||
| 159 | formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 160 | formdata.append("bsmSlsq", this.$route.query.bsmSlsq); | ||
| 161 | InitClml(formdata).then((res) => { | ||
| 162 | if (res.code == 200) { | ||
| 163 | resolve(res.code) | ||
| 164 | if (res.result && res.result.length > 0) { | ||
| 165 | this.data = res.result; | ||
| 166 | } else { | ||
| 167 | this.data = [] | ||
| 168 | } | ||
| 169 | } else { | ||
| 170 | this.$message.error(res.message) | ||
| 171 | } | ||
| 172 | }) | ||
| 173 | }) | ||
| 174 | }, | ||
| 175 | // 上移 | ||
| 176 | moveUpward (index, row) { | ||
| 177 | let obj = { | ||
| 178 | xh: row.xh, | ||
| 179 | bsmSlsq: row.bsmSlsq, | ||
| 180 | moveDirection: "UP", | ||
| 181 | }; | ||
| 182 | // 接口待调 | ||
| 183 | moveClml(obj).then(async (res) => { | ||
| 184 | if (res.code == 200) { | ||
| 185 | let res = await this.clmlInitList() | ||
| 186 | if (res == 200) { | ||
| 187 | this.$message({ | ||
| 188 | message: '上移成功', | ||
| 189 | type: 'success' | ||
| 190 | }) | ||
| 191 | this.$parent.setTableData(this.data) | ||
| 192 | } | ||
| 193 | } else { | ||
| 194 | this.$message.error(res.message); | ||
| 195 | } | ||
| 196 | }) | ||
| 197 | }, | ||
| 198 | // 下移 | ||
| 199 | moveDown (index, row) { | ||
| 200 | let obj = { | ||
| 201 | xh: row.xh, | ||
| 202 | bsmSlsq: row.bsmSlsq, | ||
| 203 | moveDirection: "DOWN", | ||
| 204 | } | ||
| 205 | // 接口待调 | ||
| 206 | moveClml(obj).then(async (res) => { | ||
| 207 | if (res.code == 200) { | ||
| 208 | let res = await this.clmlInitList() | ||
| 209 | if (res == 200) { | ||
| 210 | this.$message({ | ||
| 211 | message: '下移成功', | ||
| 212 | type: 'success' | ||
| 213 | }) | ||
| 214 | } | ||
| 215 | } else { | ||
| 216 | this.$message.error(res.message); | ||
| 217 | } | ||
| 218 | }) | ||
| 219 | }, | ||
| 220 | // 材料目录删除 | ||
| 221 | handleDelete (index, row) { | ||
| 222 | let that = this | ||
| 223 | this.$confirm('此操作将永久删除该 是否继续?', '提示', { | ||
| 224 | confirmButtonText: '确定', | ||
| 225 | cancelButtonText: '取消', | ||
| 226 | type: 'warning' | ||
| 227 | }).then(() => { | ||
| 228 | deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => { | ||
| 229 | if (res.code == 200) { | ||
| 230 | let res = await that.clmlInitList() | ||
| 231 | if (res == 200) { | ||
| 232 | that.$message({ | ||
| 233 | message: "删除成功", | ||
| 234 | type: "success", | ||
| 235 | }) | ||
| 236 | // this.$parent.setTableData(this.data) | ||
| 237 | } | ||
| 238 | } | ||
| 239 | }) | ||
| 240 | }).catch(() => { | ||
| 241 | this.$message({ | ||
| 242 | type: 'info', | ||
| 243 | message: '已取消删除' | ||
| 244 | }) | ||
| 245 | }) | ||
| 246 | }, | ||
| 247 | // 字典 | ||
| 248 | dicStatus (val, code) { | ||
| 249 | let data = store.getters.dictData[code], | ||
| 250 | name = "暂无"; | ||
| 251 | if (data) { | ||
| 252 | data.map((item) => { | ||
| 253 | if (item.dcode == val) { | ||
| 254 | name = item.dname; | ||
| 255 | } | ||
| 256 | }); | ||
| 257 | return name; | ||
| 258 | } | ||
| 259 | } | ||
| 260 | } | ||
| 261 | } | ||
| 262 | </script> | ||
| 263 | <style scoped lang='scss'> | ||
| 264 | @import "~@/styles/mixin.scss"; | ||
| 265 | .clmlmx-box { | ||
| 266 | margin: 0 auto; | ||
| 267 | |||
| 268 | .title { | ||
| 269 | text-align: center; | ||
| 270 | height: 60px; | ||
| 271 | line-height: 60px; | ||
| 272 | border: 1px solid #dfe6ec; | ||
| 273 | font-size: 20px; | ||
| 274 | background: #81d3f81a; | ||
| 275 | margin-bottom: -1px; | ||
| 276 | } | ||
| 277 | } | ||
| 278 | </style> |
| 1 | <template> | ||
| 2 | <div class="jtfccx-edit"> | ||
| 3 | <div class="jtfccx-edit-con"> | ||
| 4 | <el-form ref="form" :model="form" label-width="160px"> | ||
| 5 | <el-row> | ||
| 6 | <el-col :span="8"> | ||
| 7 | <el-form-item label="权属状态" label-width="140px"> | ||
| 8 | <el-select v-model="form.qszt"> | ||
| 9 | <el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value"> | ||
| 10 | </el-option> | ||
| 11 | </el-select> | ||
| 12 | </el-form-item> | ||
| 13 | </el-col> | ||
| 14 | <el-col :span="8"> | ||
| 15 | <el-form-item label="权利类型" label-width="140px"> | ||
| 16 | <el-input v-model="form.qllxmc" ></el-input> | ||
| 17 | </el-form-item> | ||
| 18 | </el-col> | ||
| 19 | <el-col :span="8"> | ||
| 20 | <el-form-item label="登记类型" label-width="140px"> | ||
| 21 | <el-input v-model="form.djlxmc" ></el-input> | ||
| 22 | </el-form-item> | ||
| 23 | </el-col> | ||
| 24 | <el-col :span="8"> | ||
| 25 | <el-form-item label="上手业务号" label-width="140px"> | ||
| 26 | <el-input v-model="form.ssywh" ></el-input> | ||
| 27 | </el-form-item> | ||
| 28 | </el-col> | ||
| 29 | <el-col :span="8"> | ||
| 30 | <el-form-item label="档案号" label-width="140px"> | ||
| 31 | <el-input v-model="form.dah" ></el-input> | ||
| 32 | </el-form-item> | ||
| 33 | </el-col> | ||
| 34 | <el-col :span="8"> | ||
| 35 | <el-form-item label="业务号" label-width="140px"> | ||
| 36 | <el-input v-model="form.ywh" ></el-input> | ||
| 37 | </el-form-item> | ||
| 38 | </el-col> | ||
| 39 | <el-col :span="8"> | ||
| 40 | <el-form-item label="不动产单元号" label-width="140px"> | ||
| 41 | <el-input v-model="form.bdcdyh" ></el-input> | ||
| 42 | </el-form-item> | ||
| 43 | </el-col> | ||
| 44 | <el-col :span="8"> | ||
| 45 | <el-form-item label="坐落" label-width="140px"> | ||
| 46 | <el-input v-model="form.zl" ></el-input> | ||
| 47 | </el-form-item> | ||
| 48 | </el-col> | ||
| 49 | <el-col :span="8"> | ||
| 50 | <el-form-item label="共有情况" label-width="140px"> | ||
| 51 | <el-input v-model="form.gyqk" ></el-input> | ||
| 52 | </el-form-item> | ||
| 53 | </el-col> | ||
| 54 | <el-col :span="8"> | ||
| 55 | <el-form-item label="权利人类型" label-width="140px"> | ||
| 56 | <el-input v-model="form.qlrlx" ></el-input> | ||
| 57 | </el-form-item> | ||
| 58 | </el-col> | ||
| 59 | <el-col :span="8"> | ||
| 60 | <el-form-item label="权利人" label-width="140px"> | ||
| 61 | <el-input v-model="form.qlrmc" ></el-input> | ||
| 62 | </el-form-item> | ||
| 63 | </el-col> | ||
| 64 | <el-col :span="8"> | ||
| 65 | <el-form-item label="证件种类" label-width="140px"> | ||
| 66 | <el-input v-model="form.qlrzjzl" ></el-input> | ||
| 67 | </el-form-item> | ||
| 68 | </el-col> | ||
| 69 | <el-col :span="8"> | ||
| 70 | <el-form-item label="证件号" label-width="140px"> | ||
| 71 | <el-input v-model="form.qlrzjhm" ></el-input> | ||
| 72 | </el-form-item> | ||
| 73 | </el-col> | ||
| 74 | <el-col :span="8"> | ||
| 75 | <el-form-item label="土地使用权人" label-width="140px"> | ||
| 76 | <el-input v-model="form.tdsyqr" ></el-input> | ||
| 77 | </el-form-item> | ||
| 78 | </el-col> | ||
| 79 | <el-col :span="8"> | ||
| 80 | <el-form-item label="独用土地面积(m²)" label-width="140px"> | ||
| 81 | <el-input v-model="form.dytdmj" ></el-input> | ||
| 82 | </el-form-item> | ||
| 83 | </el-col> | ||
| 84 | <el-col :span="8"> | ||
| 85 | <el-form-item label="分摊土地面积(m²)" label-width="140px"> | ||
| 86 | <el-input v-model="form.fttdmj" ></el-input> | ||
| 87 | </el-form-item> | ||
| 88 | </el-col> | ||
| 89 | <el-col :span="8"> | ||
| 90 | <el-form-item label="使用权起止时间" label-width="140px"> | ||
| 91 | <el-input v-model="form.syqqzsj" ></el-input> | ||
| 92 | </el-form-item> | ||
| 93 | </el-col> | ||
| 94 | <el-col :span="8"> | ||
| 95 | <el-form-item label="土地使用期限" label-width="140px"> | ||
| 96 | <el-input v-model="form.tdsyqx" ></el-input> | ||
| 97 | </el-form-item> | ||
| 98 | </el-col> | ||
| 99 | <el-col :span="8"> | ||
| 100 | <el-form-item label="房地产交易价格(万元)" label-width="140px"> | ||
| 101 | <el-input v-model="form.fdcjyjg" ></el-input> | ||
| 102 | </el-form-item> | ||
| 103 | </el-col> | ||
| 104 | <el-col :span="8"> | ||
| 105 | <el-form-item label="规划用途" label-width="140px"> | ||
| 106 | <el-input v-model="form.ytmc" ></el-input> | ||
| 107 | </el-form-item> | ||
| 108 | </el-col> | ||
| 109 | <el-col :span="8"> | ||
| 110 | <el-form-item label="房屋性质" label-width="140px"> | ||
| 111 | <el-input v-model="form.fwxzmc" ></el-input> | ||
| 112 | </el-form-item> | ||
| 113 | </el-col> | ||
| 114 | <el-col :span="8"> | ||
| 115 | <el-form-item label="房屋结构" label-width="140px"> | ||
| 116 | <el-input v-model="form.fwjgmc" ></el-input> | ||
| 117 | </el-form-item> | ||
| 118 | </el-col> | ||
| 119 | <el-col :span="8"> | ||
| 120 | <el-form-item label="所在层" label-width="140px"> | ||
| 121 | <el-input v-model="form.szc" ></el-input> | ||
| 122 | </el-form-item> | ||
| 123 | </el-col> | ||
| 124 | <el-col :span="8"> | ||
| 125 | <el-form-item label="总层数" label-width="140px"> | ||
| 126 | <el-input v-model="form.fj" ></el-input> | ||
| 127 | </el-form-item> | ||
| 128 | </el-col> | ||
| 129 | <el-col :span="8"> | ||
| 130 | <el-form-item label="建筑面积(m2)" label-width="140px"> | ||
| 131 | <el-input v-model="form.mj" ></el-input> | ||
| 132 | </el-form-item> | ||
| 133 | </el-col> | ||
| 134 | <el-col :span="8"> | ||
| 135 | <el-form-item label="专有建筑面积(m2)" label-width="140px"> | ||
| 136 | <el-input v-model="form.zyjzmj" ></el-input> | ||
| 137 | </el-form-item> | ||
| 138 | </el-col> | ||
| 139 | <el-col :span="8"> | ||
| 140 | <el-form-item label="分摊建筑面积(m2)" label-width="140px"> | ||
| 141 | <el-input v-model="form.jgsj" ></el-input> | ||
| 142 | </el-form-item> | ||
| 143 | </el-col> | ||
| 144 | <el-col :span="8"> | ||
| 145 | <el-form-item label="登记原因" label-width="140px"> | ||
| 146 | <el-input v-model="form.djyy" ></el-input> | ||
| 147 | </el-form-item> | ||
| 148 | </el-col> | ||
| 149 | <el-col :span="8"> | ||
| 150 | <el-form-item label="不动产权证号" label-width="140px"> | ||
| 151 | <el-input v-model="form.bdcqzh" ></el-input> | ||
| 152 | </el-form-item> | ||
| 153 | </el-col> | ||
| 154 | <el-col :span="8"> | ||
| 155 | <el-form-item label="登记时间" label-width="140px"> | ||
| 156 | <el-input v-model="form.djsj" ></el-input> | ||
| 157 | </el-form-item> | ||
| 158 | </el-col> | ||
| 159 | <el-col :span="8"> | ||
| 160 | <el-form-item label="登簿人" label-width="140px"> | ||
| 161 | <el-input v-model="form.dbr" ></el-input> | ||
| 162 | </el-form-item> | ||
| 163 | </el-col> | ||
| 164 | <el-col :span="8"> | ||
| 165 | <el-form-item label="附记" label-width="140px"> | ||
| 166 | <el-input v-model="form.fj" ></el-input> | ||
| 167 | </el-form-item> | ||
| 168 | </el-col> | ||
| 169 | <el-col :span="8"> | ||
| 170 | <el-form-item label="总层数" label-width="140px"> | ||
| 171 | <el-input v-model="form.fj" ></el-input> | ||
| 172 | </el-form-item> | ||
| 173 | </el-col> | ||
| 174 | </el-row> | ||
| 175 | <el-form-item class="btn"> | ||
| 176 | <el-button type="primary" @click="submitForm">保存</el-button> | ||
| 177 | <el-button @click="closeDialog">取消</el-button> | ||
| 178 | </el-form-item> | ||
| 179 | </el-form> | ||
| 180 | |||
| 181 | </div> | ||
| 182 | |||
| 183 | </div> | ||
| 184 | </template> | ||
| 185 | <script> | ||
| 186 | export default { | ||
| 187 | props: { | ||
| 188 | formData: { | ||
| 189 | type: Object, | ||
| 190 | default: () => { }, | ||
| 191 | }, | ||
| 192 | }, | ||
| 193 | data () { | ||
| 194 | return { | ||
| 195 | form:{}, | ||
| 196 | qsztList: [ | ||
| 197 | { | ||
| 198 | value: "0", | ||
| 199 | label: "临时", | ||
| 200 | }, | ||
| 201 | { | ||
| 202 | value: "1", | ||
| 203 | label: "现势", | ||
| 204 | }, | ||
| 205 | { | ||
| 206 | value: "2", | ||
| 207 | label: "历史", | ||
| 208 | }, | ||
| 209 | |||
| 210 | ], | ||
| 211 | label:"", | ||
| 212 | }; | ||
| 213 | }, | ||
| 214 | mounted () { | ||
| 215 | if (this.formData.data) { | ||
| 216 | this.$nextTick(() => { | ||
| 217 | this.form = Object.assign({}, this.formData.data) | ||
| 218 | this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史" | ||
| 219 | }) | ||
| 220 | } | ||
| 221 | }, | ||
| 222 | |||
| 223 | methods: { | ||
| 224 | //新增常用意见 | ||
| 225 | submitForm () { | ||
| 226 | |||
| 227 | this.$refs.form.validate(valid => { | ||
| 228 | if (valid) { | ||
| 229 | // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => { | ||
| 230 | // if (res.code == 200) { | ||
| 231 | // this.$message.success("新增成功") | ||
| 232 | // this.closeaddDiglog(); | ||
| 233 | // this.getList() | ||
| 234 | // } else { | ||
| 235 | // this.$message.error(res.message) | ||
| 236 | // } | ||
| 237 | // }) | ||
| 238 | } else { | ||
| 239 | return false; | ||
| 240 | } | ||
| 241 | }); | ||
| 242 | }, | ||
| 243 | closeDialog () { | ||
| 244 | this.$popupCacel() | ||
| 245 | this.$refs['form'].resetFields(); | ||
| 246 | // this.resetTableFields(); | ||
| 247 | } | ||
| 248 | }, | ||
| 249 | }; | ||
| 250 | </script> | ||
| 251 | <style scoped lang="scss"> | ||
| 252 | @import "~@/styles/mixin.scss"; | ||
| 253 | @import "~@/styles/public.scss"; | ||
| 254 | |||
| 255 | |||
| 256 | .jtfccx-edit { | ||
| 257 | @include flex; | ||
| 258 | flex-direction: column; | ||
| 259 | overflow-y: hidden; | ||
| 260 | max-height: 85vh; | ||
| 261 | padding: 0 2px; | ||
| 262 | |||
| 263 | |||
| 264 | .btn{ | ||
| 265 | text-align: center; | ||
| 266 | |||
| 267 | } | ||
| 268 | } | ||
| 269 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <div class="jtfccx-edit"> | 2 | <div class="from-clues"> |
| 3 | <div class="jtfccx-edit-con"> | 3 | <el-tabs type="card" v-model="activeName" @tab-click="handleTabClick"> |
| 4 | <el-form ref="form" :model="form" label-width="160px"> | 4 | <el-tab-pane label="受理信息" name="slxx"></el-tab-pane> |
| 5 | <el-row> | 5 | <el-tab-pane |
| 6 | <el-col :span="8"> | 6 | :disabled="isshow" |
| 7 | <el-form-item label="权属状态" label-width="140px"> | 7 | label="审批意见" |
| 8 | <el-select v-model="form.qszt"> | 8 | name="spyj" |
| 9 | <el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value"> | 9 | ></el-tab-pane> |
| 10 | </el-option> | 10 | <el-tab-pane |
| 11 | </el-select> | 11 | :disabled="isshow" |
| 12 | </el-form-item> | 12 | label="材料信息" |
| 13 | </el-col> | 13 | name="clxx" |
| 14 | <el-col :span="8" v-for="item in datalist" :key="item.bdcdyh"> | 14 | ></el-tab-pane> |
| 15 | <el-form-item :prop="item.prop" :label="item.label" label-width="140px"> | 15 | </el-tabs> |
| 16 | <el-input v-model="form[item.prop]" ></el-input> | 16 | <div v-if="activeName == 'slxx'"> |
| 17 | </el-form-item> | 17 | <div class="from-clues-header"> |
| 18 | </el-col> | 18 | <el-form ref="form" :model="form" label-width="160px"> |
| 19 | </el-row> | 19 | <el-row> |
| 20 | <el-form-item class="btn"> | 20 | <el-col :span="12"> |
| 21 | <el-button type="primary" @click="submitForm">保存</el-button> | 21 | <el-form-item label="权属状态" label-width="140px"> |
| 22 | <el-button @click="closeDialog">取消</el-button> | 22 | <el-select v-model="form.qszt"> |
| 23 | </el-form-item> | 23 | <el-option |
| 24 | </el-form> | 24 | v-for="item in qsztList" |
| 25 | :key="item.value" | ||
| 26 | :label="item.label" | ||
| 27 | :value="item.value" | ||
| 28 | > | ||
| 29 | </el-option> | ||
| 30 | </el-select> | ||
| 31 | </el-form-item> | ||
| 32 | </el-col> | ||
| 33 | <el-col :span="12" v-for="item in datalist" :key="item.bdcdyh"> | ||
| 34 | <el-form-item | ||
| 35 | :prop="item.prop" | ||
| 36 | :label="item.label" | ||
| 37 | label-width="140px" | ||
| 38 | > | ||
| 39 | <el-input v-model="form[item.prop]"></el-input> | ||
| 40 | </el-form-item> | ||
| 41 | </el-col> | ||
| 42 | </el-row> | ||
| 43 | </el-form> | ||
| 44 | <div class="btn"> | ||
| 45 | <el-button type="primary" @click="slxxsubmitForm">保存</el-button> | ||
| 46 | <el-button @click="closeDialog">取消</el-button> | ||
| 47 | </div> | ||
| 48 | </div> | ||
| 49 | </div> | ||
| 50 | <div v-if="activeName == 'spyj'"> | ||
| 51 | <div class="from-clues-header spyj"> | ||
| 52 | <div class="box"> | ||
| 53 | <b class="spyj_title">审批表</b> | ||
| 54 | <el-form | ||
| 55 | :model="ruleForm" | ||
| 56 | :rules="rules" | ||
| 57 | ref="ruleForm" | ||
| 58 | label-width="120px" | ||
| 59 | > | ||
| 60 | <div class="spyj_form"> | ||
| 61 | <div class="item_left">初审意见</div> | ||
| 62 | <div class="item_right"> | ||
| 63 | <el-row> | ||
| 64 | <el-col :span="24"> | ||
| 65 | <el-form-item | ||
| 66 | label-width="0" | ||
| 67 | class="opinion_item" | ||
| 68 | prop="shyj" | ||
| 69 | > | ||
| 70 | <el-input | ||
| 71 | type="textarea" | ||
| 72 | :rows="4" | ||
| 73 | class="opinion" | ||
| 74 | placeholder="请输入审批意见" | ||
| 75 | v-model="ruleForm.shyj" | ||
| 76 | ></el-input> | ||
| 77 | </el-form-item> | ||
| 78 | </el-col> | ||
| 79 | </el-row> | ||
| 80 | <el-row> | ||
| 81 | <el-col :span="16"> | ||
| 82 | <el-form-item | ||
| 83 | prop="shryxm" | ||
| 84 | label="审查人" | ||
| 85 | label-width="90px" | ||
| 86 | > | ||
| 87 | <el-input v-model="ruleForm.shr"></el-input> | ||
| 88 | </el-form-item> | ||
| 89 | </el-col> | ||
| 90 | <el-col :span="8"> | ||
| 91 | <el-form-item | ||
| 92 | label="审核时间" | ||
| 93 | prop="shjssj" | ||
| 94 | label-width="90px" | ||
| 95 | > | ||
| 96 | <el-input v-model="ruleForm.shsj"></el-input> | ||
| 97 | </el-form-item> | ||
| 98 | </el-col> | ||
| 99 | </el-row> | ||
| 100 | </div> | ||
| 101 | </div> | ||
| 102 | </el-form> | ||
| 103 | <el-form | ||
| 104 | :model="ruleForm" | ||
| 105 | :rules="rules" | ||
| 106 | ref="ruleForm" | ||
| 107 | label-width="120px" | ||
| 108 | > | ||
| 109 | <div class="spyj_form"> | ||
| 110 | <div class="item_left">复审意见</div> | ||
| 111 | <div class="item_right"> | ||
| 112 | <el-row> | ||
| 113 | <el-col :span="24"> | ||
| 114 | <el-form-item | ||
| 115 | label-width="0" | ||
| 116 | class="opinion_item" | ||
| 117 | prop="shyj" | ||
| 118 | > | ||
| 119 | <el-input | ||
| 120 | type="textarea" | ||
| 121 | :rows="4" | ||
| 122 | class="opinion" | ||
| 123 | placeholder="请输入审批意见" | ||
| 124 | v-model="ruleForm.shyj" | ||
| 125 | ></el-input> | ||
| 126 | </el-form-item> | ||
| 127 | </el-col> | ||
| 128 | </el-row> | ||
| 129 | <el-row> | ||
| 130 | <el-col :span="16"> | ||
| 131 | <el-form-item | ||
| 132 | prop="shryxm" | ||
| 133 | label="审查人" | ||
| 134 | label-width="90px" | ||
| 135 | > | ||
| 136 | <el-input v-model="ruleForm.shr"></el-input> | ||
| 137 | </el-form-item> | ||
| 138 | </el-col> | ||
| 139 | <el-col :span="8"> | ||
| 140 | <el-form-item | ||
| 141 | label="审核时间" | ||
| 142 | prop="shjssj" | ||
| 143 | label-width="90px" | ||
| 144 | > | ||
| 145 | <el-input v-model="ruleForm.shsj"></el-input> | ||
| 146 | </el-form-item> | ||
| 147 | </el-col> | ||
| 148 | </el-row> | ||
| 149 | </div> | ||
| 150 | </div> | ||
| 151 | </el-form> | ||
| 152 | <el-form | ||
| 153 | :model="ruleForm" | ||
| 154 | :rules="rules" | ||
| 155 | ref="ruleForm" | ||
| 156 | label-width="120px" | ||
| 157 | > | ||
| 158 | <div class="spyj_form"> | ||
| 159 | <div class="item_left">核定意见</div> | ||
| 160 | <div class="item_right"> | ||
| 161 | <el-row> | ||
| 162 | <el-col :span="24"> | ||
| 163 | <el-form-item | ||
| 164 | label-width="0" | ||
| 165 | class="opinion_item" | ||
| 166 | prop="shyj" | ||
| 167 | > | ||
| 168 | <el-input | ||
| 169 | type="textarea" | ||
| 170 | :rows="4" | ||
| 171 | class="opinion" | ||
| 172 | placeholder="请输入审批意见" | ||
| 173 | v-model="ruleForm.shyj" | ||
| 174 | ></el-input> | ||
| 175 | </el-form-item> | ||
| 176 | </el-col> | ||
| 177 | </el-row> | ||
| 178 | <el-row> | ||
| 179 | <el-col :span="16"> | ||
| 180 | <el-form-item | ||
| 181 | prop="shryxm" | ||
| 182 | label="审查人" | ||
| 183 | label-width="90px" | ||
| 184 | > | ||
| 185 | <el-input v-model="ruleForm.shr"></el-input> | ||
| 186 | </el-form-item> | ||
| 187 | </el-col> | ||
| 188 | <el-col :span="8"> | ||
| 189 | <el-form-item | ||
| 190 | label="审核时间" | ||
| 191 | prop="shjssj" | ||
| 192 | label-width="90px" | ||
| 193 | > | ||
| 194 | <el-input v-model="ruleForm.shsj"></el-input> | ||
| 195 | </el-form-item> | ||
| 196 | </el-col> | ||
| 197 | </el-row> | ||
| 198 | </div> | ||
| 199 | </div> | ||
| 200 | </el-form> | ||
| 25 | 201 | ||
| 202 | </div> | ||
| 203 | <div class="btn"> | ||
| 204 | <el-button type="primary" @click="spyjsubmitForm">保存</el-button> | ||
| 205 | <el-button @click="closeDialog">取消</el-button> | ||
| 206 | </div> | ||
| 207 | </div> | ||
| 26 | </div> | 208 | </div> |
| 209 | <div v-if="activeName == 'clxx'"> | ||
| 210 | <div class="from-clues-header"> | ||
| 211 | <div class="clxx"> | ||
| 212 | <div class="right"> | ||
| 213 | <!-- 材料预览 --> | ||
| 214 | <div class="clyl-box"> | ||
| 215 | <div class="menu-tree"> | ||
| 216 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> | ||
| 217 | <div class="item"> | ||
| 218 | 材料目录({{tableData.length}}) | ||
| 219 | <div style="margin-top:10px"> | ||
| 220 | <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div> | ||
| 221 | <div v-for="(item,index) in tableData" :key="item.bsmSj" | ||
| 222 | :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)"> | ||
| 223 | <span v-if="item.isrequired==1" class="required">必选</span> | ||
| 224 | {{ item.sjmc }} | ||
| 225 | <span class="cl_number">({{item.children ? item.children.length : 0}})</span> | ||
| 226 | </div> | ||
| 227 | </div> | ||
| 228 | </div> | ||
| 229 | <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()">新增</el-button> | ||
| 230 | </div> | ||
| 231 | <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview" | ||
| 232 | @prevPriview="prevPriview" /> | ||
| 233 | </div> | ||
| 234 | </div> | ||
| 235 | <clxxAddDialog v-model="isDialog" /> | ||
| 236 | </div> | ||
| 237 | <div class="btn"> | ||
| 238 | <el-button type="primary" @click="clxxsubmitForm">保存</el-button> | ||
| 239 | <el-button @click="closeDialog">取消</el-button> | ||
| 240 | </div> | ||
| 27 | 241 | ||
| 242 | </div> | ||
| 243 | </div> | ||
| 28 | </div> | 244 | </div> |
| 29 | </template> | 245 | </template> |
| 30 | <script> | 246 | <script> |
| 247 | import { mapGetters } from "vuex"; | ||
| 248 | import clxxAddDialog from "./tabsconcent/clxxAddDialog.vue"; | ||
| 249 | import imagePreview from '@/views/components/imagePreview.vue' | ||
| 250 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
| 31 | export default { | 251 | export default { |
| 252 | components: { clxxAddDialog}, | ||
| 32 | props: { | 253 | props: { |
| 33 | formData: { | 254 | formData: { |
| 34 | type: Object, | 255 | type: Object, |
| 35 | default: () => { }, | 256 | default: () => {}, |
| 36 | }, | 257 | }, |
| 37 | }, | 258 | }, |
| 38 | data () { | 259 | data() { |
| 39 | return { | 260 | return { |
| 40 | form:{}, | 261 | activeName: "slxx", |
| 41 | datalist:[], | 262 | form: {}, |
| 42 | qsztList: [ | 263 | datalist: [], |
| 43 | { | 264 | qsztList: [ |
| 44 | value: "0", | ||
| 45 | label: "临时", | ||
| 46 | }, | ||
| 47 | { | 265 | { |
| 48 | value: "1", | 266 | value: "1", |
| 49 | label: "现势", | 267 | label: "现势", |
| ... | @@ -52,51 +270,269 @@ export default { | ... | @@ -52,51 +270,269 @@ export default { |
| 52 | value: "2", | 270 | value: "2", |
| 53 | label: "历史", | 271 | label: "历史", |
| 54 | }, | 272 | }, |
| 273 | ], | ||
| 274 | label: "", | ||
| 275 | isshow: true, | ||
| 276 | |||
| 277 | // 审批 | ||
| 278 | bsmSlsq: "", | ||
| 279 | //刷新值 | ||
| 280 | bestepid: "", | ||
| 281 | ruleForm: {}, | ||
| 282 | rules: { | ||
| 283 | shyj: [{ required: true, message: "请输入审批意见", trigger: "blur" }], | ||
| 284 | }, | ||
| 55 | 285 | ||
| 56 | ], | 286 | // 材料 |
| 57 | label:"", | 287 | isDialog: false, |
| 288 | iclass: "", | ||
| 289 | tableData: [], | ||
| 290 | // 材料目录选中 | ||
| 291 | treeCheckIndex: 0, | ||
| 292 | treeCheckId: "", | ||
| 293 | key: 0, | ||
| 294 | tableDatas: [], | ||
| 295 | previewImg: { | ||
| 296 | // 收件标识码 | ||
| 297 | bsmSj: "", | ||
| 298 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 299 | index: 0, | ||
| 300 | selectedIndex: 0, | ||
| 301 | imgList: [], | ||
| 302 | }, | ||
| 58 | }; | 303 | }; |
| 59 | }, | 304 | }, |
| 60 | mounted () { | 305 | computed: { |
| 61 | if (this.formData.data) { | 306 | ...mapGetters(["dictData"]) |
| 62 | this.$nextTick(() => { | 307 | }, |
| 63 | this.form = Object.assign({}, this.formData.data) | 308 | created () { |
| 64 | // this.datalist = Object.assign([], this.formData.datalist) | 309 | this.clmlInitList(1) |
| 65 | this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史" | 310 | }, |
| 66 | }) | 311 | mounted() { |
| 67 | } | 312 | if (this.formData.data) { |
| 68 | // this.datalist = this.formData.datalist | 313 | this.$nextTick(() => { |
| 69 | this.datalist = JSON.parse(JSON.stringify(this.formData.datalist)); | 314 | this.form = Object.assign({}, this.formData.data); |
| 70 | this.datalist.shift() | 315 | // this.datalist = Object.assign([], this.formData.datalist) |
| 71 | this.datalist.shift() | 316 | this.form.qszt = |
| 317 | this.form.qszt == "0" | ||
| 318 | ? "临时" | ||
| 319 | : this.form.qszt == "1" | ||
| 320 | ? "现势" | ||
| 321 | : "历史"; | ||
| 322 | }); | ||
| 323 | } | ||
| 72 | 324 | ||
| 325 | // this.datalist = this.formData.datalist | ||
| 326 | this.datalist = JSON.parse(JSON.stringify(this.formData.datalist)); | ||
| 327 | this.datalist.shift(); | ||
| 328 | this.datalist.shift(); | ||
| 329 | console.log("this.datalist", this.datalist); | ||
| 73 | }, | 330 | }, |
| 74 | 331 | ||
| 75 | methods: { | 332 | methods: { |
| 76 | //新增常用意见 | 333 | // 受理信息保存 |
| 77 | submitForm () { | 334 | slxxsubmitForm() { |
| 78 | this.$refs.form.validate(valid => { | 335 | this.$refs.form.validate((valid) => { |
| 79 | if (valid) { | 336 | if (valid) { |
| 80 | // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => { | 337 | // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => { |
| 81 | // if (res.code == 200) { | 338 | // if (res.code == 200) { |
| 82 | // this.$message.success("新增成功") | 339 | // this.$message.success("新增成功") |
| 83 | // this.closeaddDiglog(); | 340 | // this.closeaddDiglog(); |
| 84 | // this.getList() | 341 | // this.getList() |
| 85 | // } else { | 342 | // } else { |
| 86 | // this.$message.error(res.message) | 343 | // this.$message.error(res.message) |
| 87 | // } | 344 | // } |
| 88 | // }) | 345 | // }) |
| 89 | this.$popupCacel() | 346 | } else { |
| 90 | } else { | 347 | return false; |
| 91 | return false; | 348 | } |
| 349 | }); | ||
| 350 | this.isshow = false; | ||
| 351 | }, | ||
| 352 | // 审批意见保存 | ||
| 353 | spyjsubmitForm() { | ||
| 354 | console.log("this.ruleForm",this.ruleForm); | ||
| 355 | // this.ruleForm.bsmSlsq = this.bsmSlsq | ||
| 356 | // this.ruleForm.bestepid = this.bestepid | ||
| 357 | // saveSpyjBySlsq(this.ruleForm).then(res => { | ||
| 358 | // if (res.code === 200) { | ||
| 359 | // this.$message.success("保存成功") | ||
| 360 | // this.refresh += 1 | ||
| 361 | // } else { | ||
| 362 | // this.$message.error(res.message) | ||
| 363 | // } | ||
| 364 | // }) | ||
| 365 | }, | ||
| 366 | |||
| 367 | // 材料信息保存 | ||
| 368 | clxxsubmitForm() {}, | ||
| 369 | closeDialog() { | ||
| 370 | this.$alert("取消后填写内容将被清空", "提示", { | ||
| 371 | confirmButtonText: "确定", | ||
| 372 | callback: (action) => { | ||
| 373 | this.$message({ | ||
| 374 | type: "info", | ||
| 375 | message: "已取消", | ||
| 376 | }); | ||
| 377 | this.$popupCacel(); | ||
| 378 | this.$refs["form"].resetFields(); | ||
| 379 | }, | ||
| 380 | }); | ||
| 381 | |||
| 382 | // this.resetTableFields(); | ||
| 383 | }, | ||
| 384 | handleTabClick() {}, | ||
| 385 | |||
| 386 | //使用常用意见 | ||
| 387 | useOpinion(opinion) { | ||
| 388 | this.ruleForm.shyj = opinion; | ||
| 389 | }, | ||
| 390 | |||
| 391 | |||
| 392 | // 材料上传 | ||
| 393 | // 自动预览 | ||
| 394 | nextPriview () { | ||
| 395 | if (this.treeCheckIndex < this.tableData.length) { | ||
| 396 | this.treeCheckIndex++ | ||
| 397 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 398 | this.previewImg.index = 0 | ||
| 399 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 400 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 401 | } | ||
| 402 | }, | ||
| 403 | prevPriview () { | ||
| 404 | if (this.treeCheckIndex >= 1) { | ||
| 405 | this.treeCheckIndex-- | ||
| 406 | this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj | ||
| 407 | this.previewImg.index = this.previewImg.imgList.length | ||
| 408 | this.previewImg.imgList = this.tableData[this.treeCheckIndex].children | ||
| 409 | this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj | ||
| 410 | } | ||
| 411 | }, | ||
| 412 | // 材料目录明细初始化 | ||
| 413 | clmlInitList (type) { | ||
| 414 | this.tableData = [] | ||
| 415 | //type 1:列表初始化 2:新增材料 | ||
| 416 | // return new Promise(resolve => { | ||
| 417 | // this.unitData = this.$parent.unitData; | ||
| 418 | // var formdata = new FormData(); | ||
| 419 | // formdata.append("bsmSldy", this.unitData[0]?.bsmSldy); | ||
| 420 | // formdata.append("bsmSlsq", this.$parent.bsmSlsq); | ||
| 421 | // InitClml(formdata).then((res) => { | ||
| 422 | // if (res.code == 200) { | ||
| 423 | // resolve(res.code) | ||
| 424 | // if (res.result && res.result.length > 0) { | ||
| 425 | |||
| 426 | // if (type == 1) { | ||
| 427 | // this.treeClick(this.tableData[0], 0); | ||
| 428 | // } else { | ||
| 429 | // //新增材料后刷新列表焦点置于新增的对象上 | ||
| 430 | // this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1); | ||
| 431 | // } | ||
| 432 | // } | ||
| 433 | // } else { | ||
| 434 | // this.$message.error(res.message) | ||
| 435 | // } | ||
| 436 | // }) | ||
| 437 | // }) | ||
| 438 | }, | ||
| 439 | setChecked (item) { | ||
| 440 | this.treeCheckId = item.bsmSj; | ||
| 441 | this.title = item.sjmc; | ||
| 442 | this.titleYs = 1; | ||
| 443 | this.titleNum = item.children.length; | ||
| 444 | this.previewImg.imgList = item.children; | ||
| 445 | this.previewImg.bsmSj = item.bsmSj; | ||
| 446 | }, | ||
| 447 | updateList (val) { | ||
| 448 | let that = this | ||
| 449 | if (val != null) { //删除最后一张图片时 val=null | ||
| 450 | this.tableData.forEach(item => { | ||
| 451 | if (item.bsmSj === val.bsmSj) { | ||
| 452 | item.children = val.children | ||
| 453 | } | ||
| 454 | }) | ||
| 455 | this.previewImg.imgList = _.cloneDeep(val.children) | ||
| 456 | if (this.previewImg.index == this.previewImg.imgList.length) { | ||
| 457 | this.previewImg.index = this.previewImg.index - 1 | ||
| 458 | } | ||
| 459 | } else { | ||
| 460 | this.previewImg.imgList = [] | ||
| 461 | this.tableData.forEach((item, index) => { | ||
| 462 | if (this.treeCheckId == item.bsmSj) { | ||
| 463 | item.children = [] | ||
| 464 | that.treeCheckIndex = index | ||
| 465 | } | ||
| 466 | }) | ||
| 467 | } | ||
| 468 | |||
| 469 | }, | ||
| 470 | // 添加材料目录 | ||
| 471 | handleAdd () { | ||
| 472 | console.log("新增"); | ||
| 473 | this.isDialog = true; | ||
| 474 | }, | ||
| 475 | // 新增弹窗保存 | ||
| 476 | addSave (data) { | ||
| 477 | let obj = { | ||
| 478 | bsmSlsq: this.$parent.bsmSlsq, | ||
| 479 | isrequired: "1", | ||
| 480 | sjmc: data.clmc, | ||
| 481 | sjsl: 0, | ||
| 482 | smzt: '', | ||
| 483 | ys: 0, | ||
| 484 | sjlx: data.cllx, | ||
| 485 | sfxjcl: "1", // 是否必选 | ||
| 486 | }; | ||
| 487 | saveClml(obj).then(async (res) => { | ||
| 488 | if (res.code == 200) { | ||
| 489 | let res = await this.clmlInitList(2) | ||
| 490 | if (res == 200) this.$message({ | ||
| 491 | message: "新增成功", | ||
| 492 | type: "success", | ||
| 493 | }) | ||
| 92 | } | 494 | } |
| 93 | }); | 495 | }); |
| 94 | }, | 496 | }, |
| 95 | closeDialog () { | 497 | // 材料目录点击选中 |
| 96 | this.$popupCacel() | 498 | treeClick (item, index) { |
| 97 | this.$refs['form'].resetFields(); | 499 | this.previewImg.index = 0 |
| 98 | // this.resetTableFields(); | 500 | this.treeCheckId = item?.bsmSj |
| 99 | } | 501 | this.treeCheckIndex = index |
| 502 | this.previewImg.imgList = item?.children | ||
| 503 | this.previewImg.bsmSj = item?.bsmSj | ||
| 504 | }, | ||
| 505 | // 小图片点击 | ||
| 506 | imgClick (item, index) { | ||
| 507 | this.showImg = item; | ||
| 508 | this.titleYs = index + 1; | ||
| 509 | }, | ||
| 510 | // 字典 | ||
| 511 | dicStatus (val, code) { | ||
| 512 | let data = this.$store.getters.dictData[code], | ||
| 513 | name = "暂无"; | ||
| 514 | if (data) { | ||
| 515 | data.map((item) => { | ||
| 516 | if (item.dcode == val) { | ||
| 517 | name = item.dname | ||
| 518 | } | ||
| 519 | }); | ||
| 520 | return name | ||
| 521 | } | ||
| 522 | }, | ||
| 523 | //查看明细 | ||
| 524 | viewDetail () { | ||
| 525 | console.log("查看明细"); | ||
| 526 | this.$popupDialog("查看明细", "djbBook/components/clxxDetailDialog", { | ||
| 527 | data: this.tableData | ||
| 528 | }, "60%") | ||
| 529 | }, | ||
| 530 | //设置tableData | ||
| 531 | setTableData (tableData) { | ||
| 532 | this.$nextTick(res => { | ||
| 533 | this.tableData = tableData; | ||
| 534 | }) | ||
| 535 | }, | ||
| 100 | }, | 536 | }, |
| 101 | }; | 537 | }; |
| 102 | </script> | 538 | </script> |
| ... | @@ -104,18 +540,237 @@ export default { | ... | @@ -104,18 +540,237 @@ export default { |
| 104 | @import "~@/styles/mixin.scss"; | 540 | @import "~@/styles/mixin.scss"; |
| 105 | @import "~@/styles/public.scss"; | 541 | @import "~@/styles/public.scss"; |
| 106 | 542 | ||
| 107 | 543 | .from-clues-header { | |
| 108 | .jtfccx-edit { | ||
| 109 | @include flex; | 544 | @include flex; |
| 110 | flex-direction: column; | 545 | flex-direction: column; |
| 111 | overflow-y: hidden; | 546 | overflow-y: hidden; |
| 112 | max-height: 85vh; | 547 | height: 620px; |
| 113 | padding: 0 2px; | 548 | padding: 0 2px; |
| 114 | 549 | ||
| 550 | .btn { | ||
| 551 | margin-top: 40px; | ||
| 552 | margin-bottom: 20px; | ||
| 553 | text-align: center; | ||
| 554 | } | ||
| 555 | } | ||
| 556 | |||
| 557 | // 审批意见样式 | ||
| 558 | |||
| 559 | .spyj { | ||
| 560 | .box { | ||
| 561 | overflow-x: auto; | ||
| 562 | width: 100%; | ||
| 563 | height: 95%; | ||
| 564 | background: #fff; | ||
| 565 | text-align: center; | ||
| 566 | padding: 4px; | ||
| 567 | overflow-y: scroll; | ||
| 568 | padding-top: 20px; | ||
| 569 | padding: 20px 40px; | ||
| 570 | /deep/.el-input__inner { | ||
| 571 | width: 200px; | ||
| 572 | border:none; | ||
| 573 | } | ||
| 574 | } | ||
| 575 | .spyj_title { | ||
| 576 | line-height: 68px; | ||
| 577 | border: 1px solid $borderColor; | ||
| 578 | text-align: center; | ||
| 579 | font-size: 22px; | ||
| 580 | font-weight: 400; | ||
| 581 | background-color: #eceef2; | ||
| 582 | display: block; | ||
| 583 | border-bottom: none; | ||
| 584 | } | ||
| 585 | |||
| 586 | /deep/.el-form-item { | ||
| 587 | margin-bottom: 0; | ||
| 588 | } | ||
| 589 | |||
| 590 | .bottom10 { | ||
| 591 | margin-bottom: 15px; | ||
| 592 | } | ||
| 593 | |||
| 594 | .spyj_form { | ||
| 595 | display: flex; | ||
| 596 | border: 1px solid $borderColor; | ||
| 597 | |||
| 598 | .item_left { | ||
| 599 | width: 150px; | ||
| 600 | background-color: #f8f8fa; | ||
| 601 | color: #606266; | ||
| 602 | display: flex; | ||
| 603 | font-size: 14px; | ||
| 604 | text-indent: 80px; | ||
| 605 | align-items: center; | ||
| 606 | border-right: 1px solid $borderColor; | ||
| 607 | } | ||
| 608 | |||
| 609 | .item_right { | ||
| 610 | flex: 1; | ||
| 611 | width: 100%; | ||
| 612 | |||
| 613 | /deep/.el-form-item__label { | ||
| 614 | background-color: #f8f8fa; | ||
| 615 | } | ||
| 616 | /deep/.el-form-item__content { | ||
| 617 | display: block; | ||
| 618 | text-align: left; | ||
| 619 | text-indent: 10px; | ||
| 620 | } | ||
| 621 | .opinion_item { | ||
| 622 | /deep/.el-form-item__error { | ||
| 623 | margin-top: -16px !important; | ||
| 624 | left: 3px; | ||
| 625 | } | ||
| 626 | |||
| 627 | border-bottom: 1px solid $borderColor; | ||
| 628 | } | ||
| 629 | |||
| 630 | .opinion { | ||
| 631 | position: relative; | ||
| 632 | font-size: 14px; | ||
| 115 | 633 | ||
| 116 | .btn{ | 634 | /deep/.el-textarea__inner { |
| 117 | text-align: center; | 635 | border: none; |
| 636 | } | ||
| 637 | } | ||
| 118 | 638 | ||
| 119 | } | 639 | .opinion_btn { |
| 640 | position: absolute; | ||
| 641 | right: 15px; | ||
| 642 | bottom: 10px; | ||
| 643 | } | ||
| 644 | } | ||
| 645 | } | ||
| 646 | |||
| 647 | .submit_button { | ||
| 648 | text-align: center; | ||
| 649 | margin: 15px 0; | ||
| 650 | } | ||
| 120 | } | 651 | } |
| 652 | |||
| 653 | // 材料信息样式 | ||
| 654 | .active { | ||
| 655 | background: $light-blue !important; | ||
| 656 | color: #fff; | ||
| 657 | } | ||
| 658 | |||
| 659 | .required { | ||
| 660 | font-size: 12px; | ||
| 661 | color: $pink; | ||
| 662 | float: left; | ||
| 663 | } | ||
| 664 | |||
| 665 | .cl_number { | ||
| 666 | float: right; | ||
| 667 | } | ||
| 668 | |||
| 669 | .clxx { | ||
| 670 | width: 100%; | ||
| 671 | display: flex; | ||
| 672 | padding-left: 5px; | ||
| 673 | height: calc(100vh - 125px); | ||
| 674 | |||
| 675 | .left { | ||
| 676 | display: flex; | ||
| 677 | flex-direction: column; | ||
| 678 | justify-content: space-between; | ||
| 679 | |||
| 680 | .item { | ||
| 681 | width: 28px; | ||
| 682 | height: 49%; | ||
| 683 | @include flex-center; | ||
| 684 | background-color: #e4e7ed; | ||
| 685 | border-bottom-right-radius: 10px; | ||
| 686 | padding: 5px; | ||
| 687 | cursor: pointer; | ||
| 688 | transition: all 0.3s; | ||
| 689 | |||
| 690 | &:hover { | ||
| 691 | @extend .active; | ||
| 692 | } | ||
| 693 | } | ||
| 694 | } | ||
| 695 | |||
| 696 | .right { | ||
| 697 | width: 100%; | ||
| 698 | height: 100%; | ||
| 699 | |||
| 700 | .clmlmx-box { | ||
| 701 | margin: 0 auto; | ||
| 702 | |||
| 703 | .title { | ||
| 704 | text-align: center; | ||
| 705 | height: 60px; | ||
| 706 | line-height: 60px; | ||
| 707 | border: 1px solid #dfe6ec; | ||
| 708 | font-size: 20px; | ||
| 709 | background: #81d3f81a; | ||
| 710 | margin-bottom: -1px; | ||
| 711 | } | ||
| 712 | } | ||
| 713 | |||
| 714 | .clyl-box { | ||
| 715 | width: 100%; | ||
| 716 | height: 100%; | ||
| 717 | display: flex; | ||
| 718 | |||
| 719 | .menu-tree { | ||
| 720 | width: 20%; | ||
| 721 | min-width: 160px; | ||
| 722 | height: 100%; | ||
| 723 | margin-right: 10px; | ||
| 724 | border-right: 1px dotted #d9d9d9; | ||
| 725 | padding: 0 15px; | ||
| 726 | |||
| 727 | .item { | ||
| 728 | line-height: 30px; | ||
| 729 | padding-top: 5px; | ||
| 730 | border-bottom: 1px solid #e8e8e8; | ||
| 731 | font-size: 16px; | ||
| 732 | text-align: center; | ||
| 733 | color: $light-blue; | ||
| 734 | |||
| 735 | .itemIcon { | ||
| 736 | float: right; | ||
| 737 | line-height: 60px; | ||
| 738 | cursor: pointer; | ||
| 739 | } | ||
| 740 | |||
| 741 | .child { | ||
| 742 | line-height: 32px; | ||
| 743 | border-bottom: 1px solid #e8e8e8; | ||
| 744 | padding-left: 10px; | ||
| 745 | color: #6b6b6b; | ||
| 746 | cursor: pointer; | ||
| 747 | box-sizing: border-box; | ||
| 748 | border-radius: 6px; | ||
| 749 | line-height: 20px; | ||
| 750 | transition: all 0.3s; | ||
| 751 | padding: 8px 0; | ||
| 752 | } | ||
| 753 | |||
| 754 | .child:hover { | ||
| 755 | color: $light-blue; | ||
| 756 | transform: scale(1.1); | ||
| 757 | } | ||
| 758 | |||
| 759 | .checked { | ||
| 760 | border: 1px solid $light-blue; | ||
| 761 | color: $light-blue; | ||
| 762 | } | ||
| 763 | } | ||
| 764 | } | ||
| 765 | |||
| 766 | .clyl-img { | ||
| 767 | width: 75%; | ||
| 768 | height: 100%; | ||
| 769 | background: #f3f4f7; | ||
| 770 | margin: 0 auto; | ||
| 771 | position: relative; | ||
| 772 | } | ||
| 773 | } | ||
| 774 | } | ||
| 775 | } | ||
| 121 | </style> | 776 | </style> | ... | ... |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-09 09:20:10 | ||
| 5 | --> | ||
| 6 | <template> | ||
| 7 | <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit" | ||
| 8 | :isFullscreen="false"> | ||
| 9 | <el-form :model="ruleForm" ref="ruleForm" label-width="70px"> | ||
| 10 | <el-row> | ||
| 11 | <el-col :span="24"> | ||
| 12 | <el-form-item label="材料类型"> | ||
| 13 | <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择"> | ||
| 14 | <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode"> | ||
| 15 | </el-option> | ||
| 16 | </el-select> | ||
| 17 | </el-form-item> | ||
| 18 | </el-col> | ||
| 19 | </el-row> | ||
| 20 | <el-row :gutter="20"> | ||
| 21 | <el-col :span="24"> | ||
| 22 | <el-form-item label="材料名称"> | ||
| 23 | <el-input v-model="ruleForm.clmc"></el-input> | ||
| 24 | </el-form-item> | ||
| 25 | </el-col> | ||
| 26 | </el-row> | ||
| 27 | </el-form> | ||
| 28 | </dialogBox> | ||
| 29 | </template> | ||
| 30 | |||
| 31 | <script> | ||
| 32 | import { mapGetters } from "vuex"; | ||
| 33 | export default { | ||
| 34 | props: { | ||
| 35 | value: { type: Boolean, default: false }, | ||
| 36 | }, | ||
| 37 | data () { | ||
| 38 | return { | ||
| 39 | myValue: this.value, | ||
| 40 | ruleForm: { | ||
| 41 | cllx: "", | ||
| 42 | clmc: "", | ||
| 43 | }, | ||
| 44 | }; | ||
| 45 | }, | ||
| 46 | computed: { | ||
| 47 | ...mapGetters(["dictData"]), | ||
| 48 | }, | ||
| 49 | watch: { | ||
| 50 | value (val) { | ||
| 51 | this.myValue = val; | ||
| 52 | }, | ||
| 53 | }, | ||
| 54 | methods: { | ||
| 55 | closeDialog () { | ||
| 56 | this.$emit("input", false); | ||
| 57 | this.ruleForm = { | ||
| 58 | cllx: "", | ||
| 59 | clmc: "", | ||
| 60 | } | ||
| 61 | }, | ||
| 62 | handleSubmit () { | ||
| 63 | this.$parent.addSave(this.ruleForm); | ||
| 64 | this.ruleForm = { | ||
| 65 | cllx: "", | ||
| 66 | clmc: "", | ||
| 67 | } | ||
| 68 | this.$emit("input", false); | ||
| 69 | }, | ||
| 70 | }, | ||
| 71 | }; | ||
| 72 | </script> | ||
| 73 | <style scoped lang="scss"> | ||
| 74 | .submit-button { | ||
| 75 | text-align: center; | ||
| 76 | height: 52px; | ||
| 77 | padding-top: 10px; | ||
| 78 | background-color: #fff; | ||
| 79 | } | ||
| 80 | </style> |
| 1 | <!-- | ||
| 2 | * @Description: | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-17 10:40:38 | ||
| 5 | --> | ||
| 6 | <template> | ||
| 7 | <div class="clxx"> | ||
| 8 | <div class="right"> | ||
| 9 | <!-- 材料预览 --> | ||
| 10 | <div class="clyl-box"> | ||
| 11 | <div class="menu-tree"> | ||
| 12 | <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button> | ||
| 13 | <div class="item"> | ||
| 14 | 材料目录({{tableData.length}}) | ||
| 15 | <div style="margin-top:10px"> | ||
| 16 | <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div> | ||
| 17 | <div v-for="(item,index) in tableData" :key="item.bsmSj" | ||
| 18 | :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)"> | ||
| 19 | <span v-if="item.isrequired==1" class="required">必选</span> | ||
| 20 | {{ item.sjmc }} | ||
| 21 | <span class="cl_number">({{item.children ? item.children.length : 0}})</span> | ||
| 22 | </div> | ||
| 23 | </div> | ||
| 24 | </div> | ||
| 25 | <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()" v-if="!this.$route.query.viewtype">新增</el-button> | ||
| 26 | </div> | ||
| 27 | <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview" | ||
| 28 | @prevPriview="prevPriview" /> | ||
| 29 | </div> | ||
| 30 | </div> | ||
| 31 | <clxxAddDialog v-model="isDialog" /> | ||
| 32 | </div> | ||
| 33 | </template> | ||
| 34 | <script> | ||
| 35 | import { mapGetters } from "vuex"; | ||
| 36 | import clxxAddDialog from "./clxxAddDialog.vue"; | ||
| 37 | import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js"; | ||
| 38 | export default { | ||
| 39 | components: { clxxAddDialog}, | ||
| 40 | data () { | ||
| 41 | return { | ||
| 42 | isDialog: 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 | InitClml(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 | saveClml(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.$popupDialog("查看明细", "workflow/components/dialog/clxxDetailDialog", { | ||
| 197 | data: this.tableData | ||
| 198 | }, "60%") | ||
| 199 | }, | ||
| 200 | //设置tableData | ||
| 201 | setTableData (tableData) { | ||
| 202 | this.$nextTick(res => { | ||
| 203 | this.tableData = tableData; | ||
| 204 | }) | ||
| 205 | }, | ||
| 206 | }, | ||
| 207 | }; | ||
| 208 | </script> | ||
| 209 | <style scoped lang='scss'> | ||
| 210 | @import "~@/styles/mixin.scss"; | ||
| 211 | |||
| 212 | .active { | ||
| 213 | background: $light-blue !important; | ||
| 214 | color: #fff; | ||
| 215 | } | ||
| 216 | |||
| 217 | .required { | ||
| 218 | font-size: 12px; | ||
| 219 | color: $pink; | ||
| 220 | float: left; | ||
| 221 | } | ||
| 222 | |||
| 223 | .cl_number { | ||
| 224 | float: right; | ||
| 225 | } | ||
| 226 | |||
| 227 | .clxx { | ||
| 228 | width: 100%; | ||
| 229 | display: flex; | ||
| 230 | padding-left: 5px; | ||
| 231 | height: calc(100vh - 125px); | ||
| 232 | |||
| 233 | .left { | ||
| 234 | display: flex; | ||
| 235 | flex-direction: column; | ||
| 236 | justify-content: space-between; | ||
| 237 | |||
| 238 | .item { | ||
| 239 | width: 28px; | ||
| 240 | height: 49%; | ||
| 241 | @include flex-center; | ||
| 242 | background-color: #e4e7ed; | ||
| 243 | border-bottom-right-radius: 10px; | ||
| 244 | padding: 5px; | ||
| 245 | cursor: pointer; | ||
| 246 | transition: all 0.3s; | ||
| 247 | |||
| 248 | &:hover { | ||
| 249 | @extend .active; | ||
| 250 | } | ||
| 251 | } | ||
| 252 | } | ||
| 253 | |||
| 254 | .right { | ||
| 255 | width: 100%; | ||
| 256 | height: 100%; | ||
| 257 | |||
| 258 | .clmlmx-box { | ||
| 259 | margin: 0 auto; | ||
| 260 | |||
| 261 | .title { | ||
| 262 | text-align: center; | ||
| 263 | height: 60px; | ||
| 264 | line-height: 60px; | ||
| 265 | border: 1px solid #dfe6ec; | ||
| 266 | font-size: 20px; | ||
| 267 | background: #81d3f81a; | ||
| 268 | margin-bottom: -1px; | ||
| 269 | } | ||
| 270 | } | ||
| 271 | |||
| 272 | .clyl-box { | ||
| 273 | width: 100%; | ||
| 274 | height: 100%; | ||
| 275 | display: flex; | ||
| 276 | |||
| 277 | .menu-tree { | ||
| 278 | width: 20%; | ||
| 279 | min-width: 160px; | ||
| 280 | height: 100%; | ||
| 281 | margin-right: 10px; | ||
| 282 | border-right: 1px dotted #d9d9d9; | ||
| 283 | padding: 0 15px; | ||
| 284 | |||
| 285 | .item { | ||
| 286 | line-height: 30px; | ||
| 287 | padding-top: 5px; | ||
| 288 | border-bottom: 1px solid #e8e8e8; | ||
| 289 | font-size: 16px; | ||
| 290 | text-align: center; | ||
| 291 | color: $light-blue; | ||
| 292 | |||
| 293 | .itemIcon { | ||
| 294 | float: right; | ||
| 295 | line-height: 60px; | ||
| 296 | cursor: pointer; | ||
| 297 | } | ||
| 298 | |||
| 299 | .child { | ||
| 300 | line-height: 32px; | ||
| 301 | border-bottom: 1px solid #e8e8e8; | ||
| 302 | padding-left: 10px; | ||
| 303 | color: #6b6b6b; | ||
| 304 | cursor: pointer; | ||
| 305 | box-sizing: border-box; | ||
| 306 | border-radius: 6px; | ||
| 307 | line-height: 20px; | ||
| 308 | transition: all 0.3s; | ||
| 309 | padding: 8px 0; | ||
| 310 | } | ||
| 311 | |||
| 312 | .child:hover { | ||
| 313 | color: $light-blue; | ||
| 314 | transform: scale(1.1); | ||
| 315 | } | ||
| 316 | |||
| 317 | .checked { | ||
| 318 | border: 1px solid $light-blue; | ||
| 319 | color: $light-blue; | ||
| 320 | } | ||
| 321 | } | ||
| 322 | } | ||
| 323 | |||
| 324 | .clyl-img { | ||
| 325 | width: 75%; | ||
| 326 | height: 100%; | ||
| 327 | background: #f3f4f7; | ||
| 328 | margin: 0 auto; | ||
| 329 | position: relative; | ||
| 330 | } | ||
| 331 | } | ||
| 332 | } | ||
| 333 | } | ||
| 334 | </style> |
| 1 | <!-- | ||
| 2 | * @Description: 功能:审批意见 | ||
| 3 | * @Autor: renchao | ||
| 4 | * @LastEditTime: 2023-05-17 10:41:24 | ||
| 5 | --> | ||
| 6 | <template> | ||
| 7 | <div class='spyj loadingtext'> | ||
| 8 | <div class="box"> | ||
| 9 | <b class="spyj_title">审批表</b> | ||
| 10 | <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px"> | ||
| 11 | <div class="spyj_form" v-for="(item, index) in tableData" :key="index"> | ||
| 12 | <div class="item_left"> | ||
| 13 | {{ item.jdmc }}意见 | ||
| 14 | </div> | ||
| 15 | <div class="item_right"> | ||
| 16 | <el-row> | ||
| 17 | <el-col :span="24"> | ||
| 18 | <el-form-item label-width="0" class="opinion_item" prop="shyj"> | ||
| 19 | <el-input type="textarea" :rows="4" class="opinion" placeholder="请输入审批意见" | ||
| 20 | v-if="item.stepShjy == '1' && ableOperation" v-model="ruleForm.shyj"></el-input> | ||
| 21 | <el-input type="textarea" :rows="4" class="opinion" v-model="item.shyj" v-else :disabled="true"> | ||
| 22 | </el-input> | ||
| 23 | <el-button class="opinion_btn" @click="commonOpinion" | ||
| 24 | v-if="item.stepShjy == '1' && ableOperation">常用意见</el-button> | ||
| 25 | </el-form-item> | ||
| 26 | </el-col> | ||
| 27 | </el-row> | ||
| 28 | <el-row> | ||
| 29 | <el-col :span="16"> | ||
| 30 | <el-form-item label="审查人" prop="shryxm"> | ||
| 31 | {{ item.shryxm }} | ||
| 32 | </el-form-item> | ||
| 33 | </el-col> | ||
| 34 | <el-col :span="8"> | ||
| 35 | <el-form-item label="审核时间" prop="shjssj" :key="refresh"> | ||
| 36 | {{ item.shjssj }} | ||
| 37 | </el-form-item> | ||
| 38 | </el-col> | ||
| 39 | </el-row> | ||
| 40 | </div> | ||
| 41 | </div> | ||
| 42 | <div class="submit_button" v-if="ableOperation"> | ||
| 43 | <el-button type="primary" @click="onSubmit">保存</el-button> | ||
| 44 | </div> | ||
| 45 | </el-form> | ||
| 46 | </div> | ||
| 47 | <el-empty v-if="isNoData" description="暂无数据"></el-empty> | ||
| 48 | </div> | ||
| 49 | </template> | ||
| 50 | <script> | ||
| 51 | import { getSpyjList, saveSpyj, saveSpyjBySlsq } from "@/api/fqsq.js"; | ||
| 52 | import { mapGetters } from 'vuex' | ||
| 53 | export default { | ||
| 54 | computed: { | ||
| 55 | ...mapGetters(['userData', 'yjsqOptions']) | ||
| 56 | }, | ||
| 57 | data () { | ||
| 58 | return { | ||
| 59 | isNoData: false, | ||
| 60 | bsmSlsq: '', | ||
| 61 | //刷新值 | ||
| 62 | refresh: 10, | ||
| 63 | ableOperation: true, | ||
| 64 | bsmSlsq: this.$route.query.bsmSlsq, | ||
| 65 | bestepid: this.$route.query.bestepid, | ||
| 66 | ruleForm: {}, | ||
| 67 | rules: { | ||
| 68 | shyj: [ | ||
| 69 | { required: true, message: '请输入审批意见', trigger: 'blur' } | ||
| 70 | ], | ||
| 71 | }, | ||
| 72 | tableData: [], | ||
| 73 | propsParam: {} | ||
| 74 | } | ||
| 75 | }, | ||
| 76 | watch: { | ||
| 77 | yjsqOptions: { | ||
| 78 | handler (val) { | ||
| 79 | this.ruleForm.shyj = val | ||
| 80 | }, | ||
| 81 | deep: true, | ||
| 82 | immediate: true | ||
| 83 | }, | ||
| 84 | }, | ||
| 85 | mounted () { | ||
| 86 | this.propsParam = this.$attrs; | ||
| 87 | if (this.$route.query.viewtype) { | ||
| 88 | this.ableOperation = false | ||
| 89 | } | ||
| 90 | this.list(); | ||
| 91 | }, | ||
| 92 | methods: { | ||
| 93 | //审批意见数据初始化 | ||
| 94 | list () { | ||
| 95 | let that = this | ||
| 96 | this.$startLoading() | ||
| 97 | var formdata = new FormData(); | ||
| 98 | formdata.append("bsmBusiness", this.propsParam.bsmBusiness); | ||
| 99 | formdata.append("bestepid", this.$route.query.bestepid); | ||
| 100 | formdata.append("ableOperation", this.ableOperation) | ||
| 101 | getSpyjList(formdata).then((res) => { | ||
| 102 | this.$endLoading() | ||
| 103 | if (res.code === 200 && res.result) { | ||
| 104 | this.tableData = res.result ? res.result : [] | ||
| 105 | if (res.result.length == 0) { | ||
| 106 | that.isNoData = true | ||
| 107 | } | ||
| 108 | this.ruleForm = res.result[res.result.length - 1] | ||
| 109 | } | ||
| 110 | }) | ||
| 111 | }, | ||
| 112 | onSubmit () { | ||
| 113 | this.ruleForm.bsmSlsq = this.bsmSlsq | ||
| 114 | this.ruleForm.bestepid = this.bestepid | ||
| 115 | saveSpyjBySlsq(this.ruleForm).then(res => { | ||
| 116 | if (res.code === 200) { | ||
| 117 | this.$message.success("保存成功") | ||
| 118 | this.refresh += 1 | ||
| 119 | } else { | ||
| 120 | this.$message.error(res.message) | ||
| 121 | } | ||
| 122 | }) | ||
| 123 | }, | ||
| 124 | //打开常用意见列表弹窗 | ||
| 125 | commonOpinion () { | ||
| 126 | this.$popupDialog("常用意见", "workflow/components/dialog/commonOpinion", {}, "70%", true) | ||
| 127 | }, | ||
| 128 | //使用常用意见 | ||
| 129 | useOpinion (opinion) { | ||
| 130 | this.ruleForm.shyj = opinion | ||
| 131 | } | ||
| 132 | } | ||
| 133 | } | ||
| 134 | </script> | ||
| 135 | <style scoped lang='scss'> | ||
| 136 | @import "~@/styles/mixin.scss"; | ||
| 137 | |||
| 138 | .spyj { | ||
| 139 | width: 100%; | ||
| 140 | height: 100%; | ||
| 141 | background-color: #f5f5f5; | ||
| 142 | padding: 5px; | ||
| 143 | .box { | ||
| 144 | overflow-x: auto; | ||
| 145 | width: 100%; | ||
| 146 | height: 95%; | ||
| 147 | background: #fff; | ||
| 148 | text-align: center; | ||
| 149 | padding: 4px; | ||
| 150 | overflow-y: scroll; | ||
| 151 | padding-top: 20px; | ||
| 152 | padding: 20px 40px; | ||
| 153 | } | ||
| 154 | .spyj_title { | ||
| 155 | line-height: 68px; | ||
| 156 | border: 1px solid $borderColor; | ||
| 157 | text-align: center; | ||
| 158 | font-size: 22px; | ||
| 159 | font-weight: 400; | ||
| 160 | background-color: #eceef2; | ||
| 161 | display: block; | ||
| 162 | border-bottom: none; | ||
| 163 | } | ||
| 164 | |||
| 165 | /deep/.el-form-item { | ||
| 166 | margin-bottom: 0; | ||
| 167 | } | ||
| 168 | |||
| 169 | .bottom10 { | ||
| 170 | margin-bottom: 15px; | ||
| 171 | } | ||
| 172 | |||
| 173 | .spyj_form { | ||
| 174 | display: flex; | ||
| 175 | border: 1px solid $borderColor; | ||
| 176 | |||
| 177 | .item_left { | ||
| 178 | width: 150px; | ||
| 179 | background-color: #f8f8fa; | ||
| 180 | color: #606266; | ||
| 181 | display: flex; | ||
| 182 | font-size: 14px; | ||
| 183 | text-indent: 80px; | ||
| 184 | align-items: center; | ||
| 185 | border-right: 1px solid $borderColor; | ||
| 186 | } | ||
| 187 | |||
| 188 | .item_right { | ||
| 189 | flex: 1; | ||
| 190 | width: 100%; | ||
| 191 | |||
| 192 | /deep/.el-form-item__label { | ||
| 193 | background-color: #f8f8fa; | ||
| 194 | } | ||
| 195 | /deep/.el-form-item__content { | ||
| 196 | display: block; | ||
| 197 | text-align: left; | ||
| 198 | text-indent: 10px; | ||
| 199 | } | ||
| 200 | .opinion_item { | ||
| 201 | /deep/.el-form-item__error { | ||
| 202 | margin-top: -16px !important; | ||
| 203 | left: 3px; | ||
| 204 | } | ||
| 205 | |||
| 206 | border-bottom: 1px solid $borderColor; | ||
| 207 | } | ||
| 208 | |||
| 209 | .opinion { | ||
| 210 | position: relative; | ||
| 211 | font-size: 14px; | ||
| 212 | |||
| 213 | /deep/.el-textarea__inner { | ||
| 214 | border: none; | ||
| 215 | } | ||
| 216 | } | ||
| 217 | |||
| 218 | .opinion_btn { | ||
| 219 | position: absolute; | ||
| 220 | right: 15px; | ||
| 221 | bottom: 10px; | ||
| 222 | } | ||
| 223 | } | ||
| 224 | } | ||
| 225 | |||
| 226 | .submit_button { | ||
| 227 | text-align: center; | ||
| 228 | margin: 15px 0; | ||
| 229 | } | ||
| 230 | } | ||
| 231 | </style> |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description :国有建设用地使用权 | 2 | * @Description :国有建设用地使用权 |
| 3 | * @Autor : miaofang | 3 | * @Autor : miaofang |
| 4 | * @LastEditTime : 2023-06-02 17:11:35 | 4 | * @LastEditTime : 2023-06-05 15:40:51 |
| 5 | --> | 5 | --> |
| 6 | <template> | 6 | <template> |
| 7 | <div class="djxxTable"> | 7 | <div class="djxxTable"> |
| ... | @@ -78,6 +78,7 @@ | ... | @@ -78,6 +78,7 @@ |
| 78 | }, | 78 | }, |
| 79 | methods: { | 79 | methods: { |
| 80 | loadData () { | 80 | loadData () { |
| 81 | console.log(" this.propsParam", this.propsParam); | ||
| 81 | getJsydsyqList({ | 82 | getJsydsyqList({ |
| 82 | bdcdyid: this.propsParam.bdcdyid, | 83 | bdcdyid: this.propsParam.bdcdyid, |
| 83 | qllx: this.propsParam.qllx, | 84 | qllx: this.propsParam.qllx, | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Description: | 2 | * @Description: |
| 3 | * @Autor: renchao | 3 | * @Autor: renchao |
| 4 | * @LastEditTime: 2023-05-17 10:40:38 | 4 | * @LastEditTime: 2023-05-17 10:40:38 |
| 5 | --> | 5 | --> |
| ... | @@ -335,4 +335,4 @@ | ... | @@ -335,4 +335,4 @@ |
| 335 | } | 335 | } |
| 336 | } | 336 | } |
| 337 | } | 337 | } |
| 338 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 338 | </style> | ... | ... |
| ... | @@ -7,7 +7,7 @@ | ... | @@ -7,7 +7,7 @@ |
| 7 | <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }"> | 7 | <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }"> |
| 8 | <div v-if="this.isShowdrawer"> | 8 | <div v-if="this.isShowdrawer"> |
| 9 | <div class="title"> | 9 | <div class="title"> |
| 10 | 登记簿列表 | 10 | 登记簿补录业务列表 |
| 11 | </div> | 11 | </div> |
| 12 | <el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick" | 12 | <el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick" |
| 13 | :default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]"> | 13 | :default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]"> |
| ... | @@ -105,10 +105,13 @@ import { loadTreeData, getNode } from "./djbFrameData.js"; | ... | @@ -105,10 +105,13 @@ import { loadTreeData, getNode } from "./djbFrameData.js"; |
| 105 | bdcdyh: this.bdcdyh, | 105 | bdcdyh: this.bdcdyh, |
| 106 | qllx: this.qllx, | 106 | qllx: this.qllx, |
| 107 | bsmQlxx: this.bsmQlxx, | 107 | bsmQlxx: this.bsmQlxx, |
| 108 | bestepid:this.bestepid | ||
| 108 | }; | 109 | }; |
| 109 | // this.$parent.stepForm(); | 110 | // this.$parent.stepForm(); |
| 110 | }, | 111 | }, |
| 111 | handleNodeClick (data, node, elem) { | 112 | handleNodeClick (data, node, elem) { |
| 113 | console.log("this.currentSelectProps",this.currentSelectProps); | ||
| 114 | console.log("data",data); | ||
| 112 | this.$parent.loadComponent(this.currentSelectProps,data); | 115 | this.$parent.loadComponent(this.currentSelectProps,data); |
| 113 | this.$parent.tabset(); | 116 | this.$parent.tabset(); |
| 114 | }, | 117 | }, | ... | ... |
-
Please register or sign in to post a comment