Merge branch 'master' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web
Showing
10 changed files
with
238 additions
and
365 deletions
... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
4 | * @Author: sakuya | 4 | * @Author: sakuya |
5 | * @Date: 2021年6月10日10:04:07 | 5 | * @Date: 2021年6月10日10:04:07 |
6 | * @LastEditors: Please set LastEditors | 6 | * @LastEditors: Please set LastEditors |
7 | * @LastEditTime: 2023-11-07 09:23:12 | 7 | * @LastEditTime: 2023-11-07 10:04:18 |
8 | --> | 8 | --> |
9 | 9 | ||
10 | <template> | 10 | <template> | ... | ... |
1 | /* | 1 | /* |
2 | * @Description: | 2 | * @Description: |
3 | * @Autor: renchao | 3 | * @Autor: renchao |
4 | * @LastEditTime: 2024-02-01 08:52:00 | 4 | * @LastEditTime: 2024-02-01 16:27:16 |
5 | */ | 5 | */ |
6 | import { getUserInfo } from '@/api/user' | 6 | import { getUserInfo } from '@/api/user' |
7 | const state = { | 7 | const state = { | ... | ... |
... | @@ -387,9 +387,6 @@ | ... | @@ -387,9 +387,6 @@ |
387 | justify-content: center; | 387 | justify-content: center; |
388 | align-items: center; | 388 | align-items: center; |
389 | } | 389 | } |
390 | height: 45px; | ||
391 | border: 1px solid rgb(228, 228, 228); | ||
392 | border-right: 4px solid #f5f5f5; | ||
393 | } | 390 | } |
394 | 391 | ||
395 | .select { | 392 | .select { | ... | ... |
1 | <!-- | ||
2 | * @Description: 审批意见 | ||
3 | * @Autor: renchao | ||
4 | * @LastEditTime: 2023-08-16 14:39:55 | ||
5 | --> | ||
6 | <template> | ||
7 | <div class="spyj loadingtext"> | ||
8 | <div class="box"> | ||
9 | <div class="spyj_title"> | ||
10 | <div class="righttitle">审批表</div> | ||
11 | </div> | ||
12 | |||
13 | <div v-for="(item, index) in tableData" :key="index"> | ||
14 | <el-form | ||
15 | :model="tableData[index]" | ||
16 | label-width="120px" | ||
17 | ref="ruleForm'" | ||
18 | > | ||
19 | <div class="spyj_form"> | ||
20 | <div class="item_left"> | ||
21 | <div class="right">{{ item.jdmc }}意见</div> | ||
22 | </div> | ||
23 | <div class="item_right"> | ||
24 | <el-row> | ||
25 | <el-col :span="24"> | ||
26 | <el-form-item | ||
27 | label-width="0" | ||
28 | class="opinion_item" | ||
29 | > | ||
30 | <el-input | ||
31 | :disabled="!viewEdit || item.show" | ||
32 | type="textarea" | ||
33 | :rows="4" | ||
34 | class="opinion" | ||
35 | placeholder="请输入审批意见" | ||
36 | v-model="item.shyj" | ||
37 | ></el-input> | ||
38 | <el-button | ||
39 | class="opinion_btn" | ||
40 | @click="commonOpinion(index)" | ||
41 | :disabled="!viewEdit|| item.show" | ||
42 | >常用意见</el-button | ||
43 | > | ||
44 | </el-form-item> | ||
45 | </el-col> | ||
46 | </el-row> | ||
47 | <el-row> | ||
48 | <el-col :span="16"> | ||
49 | <el-form-item label="审查人"> | ||
50 | {{ item.shryxm }} | ||
51 | </el-form-item> | ||
52 | </el-col> | ||
53 | <el-col :span="8"> | ||
54 | <el-form-item disabled label="审核时间" :key="refresh"> | ||
55 | {{ item.shjssj }} | ||
56 | </el-form-item> | ||
57 | </el-col> | ||
58 | </el-row> | ||
59 | </div> | ||
60 | </div> | ||
61 | </el-form> | ||
62 | </div> | ||
63 | <div class="submit_button" v-if="viewEdit"> | ||
64 | <el-button type="primary" :disabled="shows" @click="onSubmit()" | ||
65 | >保存</el-button | ||
66 | > | ||
67 | </div> | ||
68 | </div> | ||
69 | <!-- <el-empty v-if="isNoData" description="暂无数据"></el-empty> --> | ||
70 | </div> | ||
71 | </template> | ||
72 | <script> | ||
73 | import { saveSpyjBySlsq, getSpyjList } from "@/api/opinion.js"; | ||
74 | import { mapGetters } from "vuex"; | ||
75 | import { getNewDatesh } from "@/utils/util"; | ||
76 | export default { | ||
77 | computed: { | ||
78 | ...mapGetters(["userData", "yjsqOptions", "userInfo"]), | ||
79 | }, | ||
80 | data() { | ||
81 | return { | ||
82 | isNoData: false, | ||
83 | currentindex: 0, | ||
84 | bsmSlsq: "", | ||
85 | refresh: 10, | ||
86 | viewEdit: false, | ||
87 | bsmSlsq: this.$route.query.bsmSlsq, | ||
88 | bestepid: this.$route.query.bestepid, | ||
89 | propsParam: {}, | ||
90 | tableData: [], | ||
91 | falg: false, | ||
92 | falg1: false, | ||
93 | jdmc: "", | ||
94 | indexdqlc: 0, | ||
95 | shows: false, | ||
96 | }; | ||
97 | }, | ||
98 | |||
99 | watch: { | ||
100 | yjsqOptions: { | ||
101 | handler(val) { | ||
102 | this.add(val); | ||
103 | }, | ||
104 | deep: true, | ||
105 | immediate: true, | ||
106 | }, | ||
107 | }, | ||
108 | created() {}, | ||
109 | mounted() { | ||
110 | this.propsParam = this.$attrs; | ||
111 | this.viewEdit = this.$parent.currentSelectTab.ableOperation; | ||
112 | this.getShList(); | ||
113 | |||
114 | switch (this.$parent.dqhj) { | ||
115 | case "cs": | ||
116 | this.indexdqlc = 0; | ||
117 | this.jdmc = "初审"; | ||
118 | break; | ||
119 | case "fs": | ||
120 | this.indexdqlc = 1; | ||
121 | this.jdmc = "复审"; | ||
122 | break; | ||
123 | case "hd": | ||
124 | this.indexdqlc = 2; | ||
125 | this.jdmc = "核定"; | ||
126 | break; | ||
127 | } | ||
128 | }, | ||
129 | methods: { | ||
130 | /** | ||
131 | * @description: getShList | ||
132 | * @param {*} obj | ||
133 | * @author: renchao | ||
134 | */ | ||
135 | getShList() { | ||
136 | this.$startLoading(); | ||
137 | var formdata = new FormData(); | ||
138 | formdata.append("bsmBusiness", this.propsParam.bsmBusiness); | ||
139 | formdata.append("bestepid", this.$route.query.bestepid); | ||
140 | |||
141 | getSpyjList(formdata).then((res) => { | ||
142 | this.$endLoading(); | ||
143 | if (res.code === 200 && res.result) { | ||
144 | this.$nextTick(() => { | ||
145 | this.tableData = res.result; | ||
146 | if (this.shows) { | ||
147 | this.shows = false; | ||
148 | } | ||
149 | |||
150 | var index = this.tableData.findIndex( | ||
151 | (item) => item.jddm === this.$parent.dqhj | ||
152 | ); | ||
153 | if (index == -1) { | ||
154 | switch (this.$parent.dqhj) { | ||
155 | case "cs": | ||
156 | this.tableData.push({ jdmc: "初审", jddm: "cs", sxh: 1 }); | ||
157 | break; | ||
158 | case "fs": | ||
159 | this.tableData.push({ jdmc: "复审", jddm: "fs", sxh: 2 }); | ||
160 | break; | ||
161 | case "hd": | ||
162 | this.tableData.push({ jdmc: "核定", jddm: "hd", sxh: 3 }); | ||
163 | break; | ||
164 | } | ||
165 | } | ||
166 | this.tableData.forEach((item) => { | ||
167 | item.show = true; | ||
168 | if (this.$parent.dqhj == item.jddm) { | ||
169 | item["stepid"] = this.$route.query.bestepid; | ||
170 | item.shjssj = getNewDatesh(); | ||
171 | item.shkssj = getNewDatesh(); | ||
172 | item["shryxm"] = this.userInfo.name; | ||
173 | item["userid"] = this.userInfo.id; | ||
174 | item.show = false; | ||
175 | } | ||
176 | }); | ||
177 | }); | ||
178 | } | ||
179 | }); | ||
180 | }, | ||
181 | /** | ||
182 | * @description: judgment | ||
183 | * @param {*} obj | ||
184 | * @author: renchao | ||
185 | */ | ||
186 | judgment(obj) {}, | ||
187 | /** | ||
188 | * @description: onSubmit | ||
189 | * @author: renchao | ||
190 | */ | ||
191 | onSubmit() { | ||
192 | |||
193 | this.tableData.forEach((item, index) => { | ||
194 | item["bsmBusiness"] = this.propsParam.bsmBusiness; | ||
195 | item["czjg"] = "1"; | ||
196 | }); | ||
197 | var index = this.tableData.findIndex( | ||
198 | (item) => item.shyj === null||item.shyj === "" | ||
199 | ); | ||
200 | if(index==-1){ | ||
201 | this.shows = true; | ||
202 | saveSpyjBySlsq(this.tableData).then((res) => { | ||
203 | if (res.code === 200) { | ||
204 | this.$message.success("保存成功"); | ||
205 | this.refresh += 1; | ||
206 | this.getShList(); | ||
207 | } else { | ||
208 | this.$message.error(res.message); | ||
209 | } | ||
210 | }); | ||
211 | }else{ | ||
212 | this.$message.error("意见不能为空"); | ||
213 | } | ||
214 | |||
215 | }, | ||
216 | //打开常用意见列表弹窗 | ||
217 | /** | ||
218 | * @description: 打开常用意见列表弹窗 | ||
219 | * @param {*} index | ||
220 | * @author: renchao | ||
221 | */ | ||
222 | commonOpinion(index) { | ||
223 | this.currentindex = index; | ||
224 | this.$popupDialog( | ||
225 | "常用意见", | ||
226 | "workflow/components/dialog/commonOpinion", | ||
227 | {}, | ||
228 | "70%", | ||
229 | true | ||
230 | ); | ||
231 | }, | ||
232 | /** | ||
233 | * @description: add | ||
234 | * @param {*} val | ||
235 | * @author: renchao | ||
236 | */ | ||
237 | add(val) { | ||
238 | if (val != "") { | ||
239 | this.$set(this.tableData[this.currentindex], "shyj", val); | ||
240 | } | ||
241 | }, | ||
242 | }, | ||
243 | }; | ||
244 | </script> | ||
245 | <style scoped lang="scss"> | ||
246 | @import "~@/styles/mixin.scss"; | ||
247 | |||
248 | .spyj { | ||
249 | width: 100%; | ||
250 | height: 100%; | ||
251 | background-color: #f5f5f5; | ||
252 | padding: 5px; | ||
253 | .box { | ||
254 | overflow-x: auto; | ||
255 | width: 100%; | ||
256 | height: 95%; | ||
257 | background: #fff; | ||
258 | text-align: center; | ||
259 | padding: 4px; | ||
260 | overflow-y: scroll; | ||
261 | padding-top: 20px; | ||
262 | padding: 20px 40px; | ||
263 | .spyj_title { | ||
264 | width: 100%; | ||
265 | height: 80px; | ||
266 | border: 1px solid $borderColor; | ||
267 | background-color: #eceef2; | ||
268 | display: flex; | ||
269 | } | ||
270 | .leftadd { | ||
271 | width: 3%; | ||
272 | height: 100%; | ||
273 | display: flex; | ||
274 | font-size: 14px; | ||
275 | text-indent: 20px; | ||
276 | align-items: center; | ||
277 | border: 1px solid $borderColor; | ||
278 | } | ||
279 | .righttitle { | ||
280 | width: 80%; | ||
281 | height: 100%; | ||
282 | line-height: 80px; | ||
283 | border: 1px solid $borderColor; | ||
284 | margin: auto; | ||
285 | font-size: 22px; | ||
286 | font-weight: 400; | ||
287 | } | ||
288 | } | ||
289 | |||
290 | /deep/.el-form-item { | ||
291 | margin-bottom: 0; | ||
292 | } | ||
293 | |||
294 | .bottom10 { | ||
295 | margin-bottom: 15px; | ||
296 | } | ||
297 | |||
298 | .spyj_form { | ||
299 | display: flex; | ||
300 | border: 1px solid $borderColor; | ||
301 | |||
302 | .item_left { | ||
303 | width: 150px; | ||
304 | background-color: #f8f8fa; | ||
305 | color: #606266; | ||
306 | display: flex; | ||
307 | font-size: 14px; | ||
308 | text-indent: 50px; | ||
309 | align-items: center; | ||
310 | border-right: 1px solid $borderColor; | ||
311 | } | ||
312 | |||
313 | .item_right { | ||
314 | flex: 1; | ||
315 | width: 100%; | ||
316 | |||
317 | /deep/.el-form-item__label { | ||
318 | background-color: #f8f8fa; | ||
319 | } | ||
320 | /deep/.el-form-item__content { | ||
321 | display: block; | ||
322 | text-align: left; | ||
323 | } | ||
324 | .opinion_item { | ||
325 | /deep/.el-form-item__error { | ||
326 | margin-top: -16px !important; | ||
327 | left: 3px; | ||
328 | } | ||
329 | border-bottom: 1px solid $borderColor; | ||
330 | } | ||
331 | |||
332 | .opinion { | ||
333 | position: relative; | ||
334 | font-size: 14px; | ||
335 | |||
336 | /deep/.el-textarea__inner { | ||
337 | border: none; | ||
338 | } | ||
339 | } | ||
340 | |||
341 | .opinion_btn { | ||
342 | position: absolute; | ||
343 | right: 15px; | ||
344 | bottom: 10px; | ||
345 | } | ||
346 | } | ||
347 | } | ||
348 | |||
349 | .submit_button { | ||
350 | text-align: center; | ||
351 | margin: 15px 0; | ||
352 | } | ||
353 | |||
354 | .el-date-editor.el-input { | ||
355 | width: 100%; | ||
356 | } | ||
357 | } | ||
358 | </style> |
... | @@ -17,7 +17,7 @@ | ... | @@ -17,7 +17,7 @@ |
17 | <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:"> | 17 | <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:"> |
18 | <el-input disabled v-model="ruleForm.flow.ywh"></el-input> | 18 | <el-input disabled v-model="ruleForm.flow.ywh"></el-input> |
19 | </el-form-item> | 19 | </el-form-item> |
20 | </el-col> --> | 20 | </el-col> |
21 | <el-col :span="8"> | 21 | <el-col :span="8"> |
22 | <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:"> | 22 | <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:"> |
23 | <el-input disabled v-model="ruleForm.slsq.slry"></el-input> | 23 | <el-input disabled v-model="ruleForm.slsq.slry"></el-input> | ... | ... |
1 | <!-- | ||
2 | * @Description: 房屋多幢明细 | ||
3 | * @Autor: | ||
4 | * @LastEditTime: 2023-09-01 13:29:29 | ||
5 | --> | ||
6 | <template> | ||
7 | <div> | ||
8 | <el-table | ||
9 | :data="tableDataList" | ||
10 | border | ||
11 | :pagination="false" | ||
12 | :key="key" | ||
13 | :header-cell-style="{ 'text-align': 'center' }" | ||
14 | :heightNumSetting="true" | ||
15 | :minHeight="150" | ||
16 | height="150" | ||
17 | style="width: 100%"> | ||
18 | <el-table-column prop="index" width="50" :render-header="renderHeader"> | ||
19 | <template slot-scope="scope"> | ||
20 | <div style="text-align: center">{{ scope.$index + 1 }}</div> | ||
21 | </template> | ||
22 | </el-table-column> | ||
23 | <el-table-column prop="bdcdyh" label="不动产单元号" min-width="100"> | ||
24 | <template slot-scope="scope"> | ||
25 | <div style="text-align: center">{{ scope.row.bdcdyh }}</div> | ||
26 | </template> | ||
27 | </el-table-column> | ||
28 | <el-table-column prop="xmmc" label="项目名称" min-width="100"> | ||
29 | <template slot-scope="scope"> | ||
30 | <el-input | ||
31 | class="item" | ||
32 | :disabled="!ableOperation" | ||
33 | v-model="scope.row.xmmc" | ||
34 | placeholder="请输入内容" | ||
35 | @input="updaterow(scope.row)"> | ||
36 | </el-input> | ||
37 | </template> | ||
38 | </el-table-column> | ||
39 | <el-table-column prop="fwxz" label="房屋性质" min-width="100"> | ||
40 | <template slot-scope="scope"> | ||
41 | <treeselect | ||
42 | v-model="scope.row.fwxz" | ||
43 | :disabled="!ableOperation" | ||
44 | noOptionsText="暂无数据" | ||
45 | placeholder="" | ||
46 | :show-count="true" | ||
47 | :options="dictData['A19']" | ||
48 | :normalizer="normalizer" | ||
49 | :appendToBody="true" | ||
50 | z-index="9999" | ||
51 | @input="updaterow(scope.row)" /> | ||
52 | </template> | ||
53 | </el-table-column> | ||
54 | <el-table-column prop="ghyt" label="房屋用途" min-width="100"> | ||
55 | <template slot-scope="scope"> | ||
56 | <treeselect | ||
57 | v-model="scope.row.ghyt" | ||
58 | :disabled="!ableOperation" | ||
59 | noOptionsText="暂无数据" | ||
60 | placeholder="" | ||
61 | :show-count="true" | ||
62 | :options="dictData['A17']" | ||
63 | :normalizer="normalizer" | ||
64 | :appendToBody="true" | ||
65 | z-index="9999" | ||
66 | @input="updaterow(scope.row)" /> | ||
67 | </template> | ||
68 | </el-table-column> | ||
69 | <el-table-column prop="fwjg" label="房屋结构" min-width="100"> | ||
70 | <template slot-scope="scope"> | ||
71 | <treeselect | ||
72 | v-model="scope.row.fwjg" | ||
73 | :disabled="!ableOperation" | ||
74 | noOptionsText="暂无数据" | ||
75 | placeholder="" | ||
76 | :show-count="true" | ||
77 | :options="dictData['A46']" | ||
78 | :normalizer="normalizer" | ||
79 | :appendToBody="true" | ||
80 | z-index="9999" | ||
81 | @input="updaterow(scope.row)" /> | ||
82 | </template> | ||
83 | </el-table-column> | ||
84 | <el-table-column prop="jzmj" label="建筑面积" min-width="100"> | ||
85 | <template slot-scope="scope"> | ||
86 | <el-input | ||
87 | maxlength="12" | ||
88 | class="item" | ||
89 | :disabled="!ableOperation" | ||
90 | oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null" | ||
91 | v-model="scope.row.jzmj" | ||
92 | placeholder="请输入内容" | ||
93 | @input="updaterow(scope.row)"> | ||
94 | </el-input> | ||
95 | </template> | ||
96 | </el-table-column> | ||
97 | <el-table-column prop="jgsj" label="竣工时间" min-width="100"> | ||
98 | <template slot-scope="scope"> | ||
99 | <el-date-picker | ||
100 | v-model="scope.row.jgsj" | ||
101 | type="date" | ||
102 | :disabled="!ableOperation" | ||
103 | placeholder="选择日期" | ||
104 | value-format="yyyy-MM-dd HH:mm:ss" | ||
105 | format="yyyy-MM-dd" | ||
106 | @input="updaterow(scope.row)"> | ||
107 | </el-date-picker> | ||
108 | </template> | ||
109 | </el-table-column> | ||
110 | <el-table-column prop="zcs" label="总层数" min-width="100"> | ||
111 | <template slot-scope="scope"> | ||
112 | <el-input | ||
113 | class="item" | ||
114 | :disabled="!ableOperation" | ||
115 | oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null" | ||
116 | v-model="scope.row.zcs" | ||
117 | placeholder="请输入内容" | ||
118 | @input="updaterow(scope.row)"> | ||
119 | </el-input> | ||
120 | </template> | ||
121 | </el-table-column> | ||
122 | <el-table-column prop="zts" label="总套数" min-width="100"> | ||
123 | <template slot-scope="scope"> | ||
124 | <el-input | ||
125 | class="item" | ||
126 | :disabled="!ableOperation" | ||
127 | oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null" | ||
128 | v-model="scope.row.zts" | ||
129 | placeholder="请输入内容" | ||
130 | @input="updaterow(scope.row)"> | ||
131 | </el-input> | ||
132 | </template> | ||
133 | </el-table-column> | ||
134 | </el-table> | ||
135 | </div> | ||
136 | </template> | ||
137 | <script> | ||
138 | import { mapGetters } from "vuex"; | ||
139 | |||
140 | export default { | ||
141 | computed: { | ||
142 | ...mapGetters(["dictData"]), | ||
143 | }, | ||
144 | props: { | ||
145 | tableData: { | ||
146 | type: Array, | ||
147 | default: function () { | ||
148 | return []; | ||
149 | }, | ||
150 | }, | ||
151 | ableOperation: { | ||
152 | type: Boolean, | ||
153 | default: false, | ||
154 | }, | ||
155 | |||
156 | }, | ||
157 | data () { | ||
158 | return { | ||
159 | // 键名转换,方法默认是label和children进行树状渲染 | ||
160 | key: 0, | ||
161 | tableDataList: [], | ||
162 | normalizer (node) { | ||
163 | if (node.children == null || node.children == "null") { | ||
164 | delete node.children; | ||
165 | } | ||
166 | return { | ||
167 | id: node.dcode, | ||
168 | label: node.dname, | ||
169 | children: node.children, | ||
170 | }; | ||
171 | }, | ||
172 | }; | ||
173 | }, | ||
174 | mounted () { | ||
175 | }, | ||
176 | watch: { | ||
177 | tableData: { | ||
178 | handler: function (val, oldVal) { | ||
179 | let that = this; | ||
180 | this.$nextTick(() => { | ||
181 | if (val.length == 0 || !val) { | ||
182 | that.tableDataList = _.cloneDeep([ | ||
183 | { | ||
184 | yt: null, | ||
185 | qssj: "", | ||
186 | jssj: "", | ||
187 | tdsyqx: "", | ||
188 | }, | ||
189 | ]); | ||
190 | } else { | ||
191 | that.tableDataList = _.cloneDeep(val); | ||
192 | } | ||
193 | }); | ||
194 | }, | ||
195 | immediate: true, | ||
196 | deep: true, | ||
197 | }, | ||
198 | }, | ||
199 | methods: { | ||
200 | /** | ||
201 | * @description: renderHeader | ||
202 | * @author: renchao | ||
203 | */ | ||
204 | renderHeader () { | ||
205 | return ( | ||
206 | <div> | ||
207 | {"序号"} | ||
208 | </div> | ||
209 | ); | ||
210 | }, | ||
211 | updaterow (a) { | ||
212 | this.$emit("updateFdcwxmList", this.tableDataList); | ||
213 | } | ||
214 | } | ||
215 | } | ||
216 | </script> | ||
217 | <style scoped lang="scss"> | ||
218 | .el-input { | ||
219 | border: none !important; | ||
220 | } | ||
221 | |||
222 | /deep/ .el-table__row { | ||
223 | border: none !important; | ||
224 | } | ||
225 | |||
226 | .el-date-editor.el-input { | ||
227 | width: 100%; | ||
228 | } | ||
229 | |||
230 | /deep/ .el-table th { | ||
231 | height: 30px !important; | ||
232 | } | ||
233 | </style> | ||
234 |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment