2d3f7fe3 by renchao@pashanhoo.com

style:企业银行

1 parent 7bd46e67
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
106 * @author: renchao 106 * @author: renchao
107 */ 107 */
108 handleAdd () { 108 handleAdd () {
109 this.$popupDialog("添加企业", "xxba/components/addDialog", { isAdd: 1 }, "75%") 109 this.$popupDialog("添加企业", "xxba/qyxxba/components/addDialog", { isAdd: 1 }, "75%")
110 }, 110 },
111 /** 111 /**
112 * @description: handleDelete 112 * @description: handleDelete
......
1 <template>
2 <div style="height:650px">
3 <el-tabs v-model="activeName" @tab-click="handleClick">
4 <el-tab-pane label="银行信息" name="1"></el-tab-pane>
5 <el-tab-pane label="材料信息" v-if="formData.isAdd==2" name="2"></el-tab-pane>
6 </el-tabs>
7 <el-form ref="ruleForm" :model="ruleForm" label-width="100px" style="height:90%" v-if="activeName==1" :rules="rules">
8 <div style="height:90%">
9 <el-row>
10 <el-col :span="12">
11 <el-form-item label="银行名称:" prop="qymc">
12 <el-input v-model="ruleForm.qymc"></el-input>
13 </el-form-item>
14 </el-col>
15 <el-col :span="12">
16 <el-form-item label="电话:" prop="dh">
17 <el-input v-model.number="ruleForm.dh" maxlength="11"></el-input>
18 </el-form-item>
19 </el-col>
20 </el-row>
21 <el-row>
22 <el-col :span="12">
23 <el-form-item label="证件种类:" prop="zjzl">
24 <el-select
25 clearable
26 v-model="ruleForm.zjzl"
27 class="width100"
28 placeholder="请选择">
29 <el-option
30 v-for="item in zjzlList"
31 :key="item.dcode"
32 :label="item.dname"
33 :value="item.dcode">
34 </el-option>
35 </el-select>
36 </el-form-item>
37 </el-col>
38 <el-col :span="12">
39 <el-form-item label="证件号:" prop="zjh">
40 <el-input v-model="ruleForm.zjh" maxlength="18"></el-input>
41 </el-form-item>
42 </el-col>
43 </el-row>
44
45 <el-row>
46 <el-col :span="12">
47 <el-form-item label="法人名称:" prop="frmc">
48 <el-input v-model="ruleForm.frmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="12">
52 <el-form-item label="法人电话:" prop="frdh">
53 <el-input v-model="ruleForm.frdh" maxlength="11"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <el-row>
58 <el-col :span="12">
59 <el-form-item label="单位地址:" prop="dwdz">
60 <el-input v-model="ruleForm.dwdz"></el-input>
61 </el-form-item>
62 </el-col>
63 <el-col :span="12">
64 <el-form-item label="邮编:" prop="yb">
65 <el-input v-model="ruleForm.yb"></el-input>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 </div>
70 <el-form-item style="text-align:center">
71 <el-button @click="closeDialog">取消</el-button>
72 <el-button type="primary" @click="submitForm">保存</el-button>
73 </el-form-item>
74 </el-form>
75 <clxx v-if="activeName==2" :formData="formData" />
76 </div>
77 </template>
78
79 <script>
80 const checkPhone = (rule, value, callback) => {
81 let regPone = null
82 let mobile = /^(1[3456789]\d{9})$/ //手机号
83 let tel = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/ // 座机
84 if (value && value[0] === '0') {// 检查 value 是否存在并且不是 null 或者 undefined
85 regPone = tel
86 } else if (value && value[0] !== '0') {
87 regPone = mobile
88 }
89 if (regPone === null) {
90 return callback(
91 new Error('请输入电话')
92 )
93 } else if (!regPone.test(value)) {
94 return callback(
95 new Error("请输入正确的电话格式,其中座机格式'区号-座机号码'")
96 )
97 } else {
98 callback()
99 }
100 };
101 import store from '@/store/index.js'
102 import { addQy, update } from "@/api/xxba.js"
103 import clxx from './clxx/index.vue'
104 export default {
105 props: {
106 formData: {
107 type: Object,
108 default: () => { },
109 },
110 },
111 components: {
112 clxx
113 },
114 data () {
115 return {
116 zjzlList: store.getters.dictData['A30'],
117 activeName: "1",
118 DJJGLIST: store.getters.dictData['ywly'],
119 readOnly: false,
120 //表单提交数据
121 ruleForm: {
122 batchno: '',
123 djjg: '',
124 operationtime: '',
125 bz: '',
126 zsstarno: '',
127 zsendno: '',
128 zsnum: '',
129 zmstarno: '',
130 zmendno: '',
131 zmnum: ''
132 },
133 //表格数据
134 tableForm: [
135 {
136 name: '不动产权证书',
137 ksysxlh: '',
138 jsysxlh: '',
139 bs: 0,
140 zslx: 1
141 },
142 {
143 name: '不动产登记证明',
144 ksysxlh: '',
145 jsysxlh: '',
146 bs: 0,
147 zslx: 2
148 }
149 ],
150 rules: {
151 qymc: [
152 { required: true, message: '企业名称不能为空', trigger: 'blur' }
153 ],
154 dh: [
155 { required: true, validator: checkPhone, trigger: ["blur"] },
156 ],
157 zjzl: [
158 { required: true, message: '请选择证件种类', trigger: 'change' }
159 ],
160 zjh: [
161 { required: true, message: '请输入证件号', trigger: 'blur' }
162 ],
163 frmc: [
164 { required: true, message: '请输入法人名称', trigger: 'blur' }
165 ],
166 frdh: [
167 { required: true, validator: checkPhone, trigger: ["blur"] },
168 ],
169 dwdz: [
170 { required: true, message: '请输入单位地址', trigger: 'blur' }
171 ]
172 }
173 }
174 },
175 mounted () {
176 if (this.formData.bsmBatch) {
177 this.tableForm[0].bs = null;
178 this.tableForm[1].bs = null;
179 this.getDetailInfo(this.formData.bsmBatch)
180 }
181 let list = Object.keys(this.formData).length
182 if (list > 0) {
183 this.ruleForm = this.formData
184 }
185 },
186 methods: {
187 handleClick () { },
188 /**
189 * @description: 表单提交
190 * @author: renchao
191 */
192 submitForm () {
193 let that = this
194 this.tableForm.forEach((item, index) => {
195 if (item.bs < 0) {
196 return;
197 }
198 })
199 if (this.formData.isAdd != 1) {
200 store.dispatch("user/refreshPage", false);
201 update(this.ruleForm).then(res => {
202 if (res.code == 200) {
203 this.$message.success('保存成功')
204 this.$emit("input", false);
205 this.$refs['ruleForm'].resetFields();
206 this.resetTableFields();
207 this.closeDialog();
208 //刷新列表
209 store.dispatch("user/refreshPage", true);
210 } else {
211 this.$message.error(res.message);
212 }
213 })
214 } else {
215 that.$refs['ruleForm'].validate((valid) => {
216 if (valid) {
217 store.dispatch("user/refreshPage", false);
218 addQy(this.ruleForm).then(res => {
219 if (res.code == 200) {
220 that.$message.success('保存成功')
221 that.$emit("input", false);
222 that.$refs['ruleForm'].resetFields();
223 that.resetTableFields();
224 that.closeDialog();
225 //刷新列表
226 store.dispatch("user/refreshPage", true);
227 } else {
228 that.$message.error(res.message);
229 }
230 })
231 } else {
232 this.$message.error('请完善表单');
233 return false;
234 }
235 })
236 }
237 },
238 /**
239 * @description: 获取详情信息
240 * @param {*} bsmBatch
241 * @author: renchao
242 */
243 getDetailInfo (bsmBatch) {
244 getZsglInfo({ "bsmBatch": bsmBatch }).then(res => {
245 if (res.code == 200) {
246 this.ruleForm = res.result;
247 this.readOnly = false;
248 this.tableForm[0].ksysxlh = res.result.zsstarno;
249 this.tableForm[0].jsysxlh = res.result.zsendno;
250 this.tableForm[0].bs = res.result.zsnum;
251 this.tableForm[1].ksysxlh = res.result.zmstarno;
252 this.tableForm[1].jsysxlh = res.result.zmendno;
253 this.tableForm[1].bs = res.result.zmnum;
254 }
255 })
256 },
257 /**
258 * @description: resetTableFields
259 * @author: renchao
260 */
261 resetTableFields () {
262 this.tableForm = [
263 {
264 name: '不动产权证书',
265 ksysxlh: '',
266 jsysxlh: '',
267 bs: 0,
268 zslx: 1
269 },
270 {
271 name: '不动产权登记证明',
272 ksysxlh: '',
273 jsysxlh: '',
274 bs: 0,
275 zslx: 2
276 }
277 ]
278 },
279 /**
280 * @description: closeDialog
281 * @author: renchao
282 */
283 closeDialog () {
284 this.$popupCacel()
285 this.$refs['ruleForm'].resetFields();
286 this.resetTableFields();
287 }
288 }
289 }
290 </script>
291 <style scoped lang="scss">
292 @import "~@/styles/mixin.scss";
293 @import "~@/styles/dialogBoxheader.scss";
294
295 .font-red {
296 color: red;
297 }
298
299 .middle-margin-bottom {
300 margin-top: 20px;
301 }
302 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-15 15:50:26
5 -->
6 <template>
7 <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
8 :isFullscreen="false">
9 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px">
10 <el-row>
11 <el-col :span="24">
12 <el-form-item label="材料类型" prop="cllx">
13 <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
14 <el-option v-for="item in cllxList" :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="材料名称" prop="clmc">
23 <el-input v-model="ruleForm.clmc"></el-input>
24 </el-form-item>
25 </el-col>
26 </el-row>
27 <el-row :gutter="20">
28 <el-col :span="24">
29 <el-form-item label="材料编码" prop="clbm">
30 <el-input v-model="ruleForm.clbm"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 </el-form>
35 </dialogBox>
36 </template>
37 <script>
38 import store from '@/store/index.js'
39 export default {
40 props: {
41 value: { type: Boolean, default: false },
42 },
43 data () {
44 return {
45 cllxList: store.getters.dictData['A40'],
46 myValue: this.value,
47 ruleForm: {
48 cllx: "",
49 clmc: "",
50 clbm: ""
51 },
52 rules: {
53 cllx: [
54 { required: true, message: '请选择材料类型', trigger: 'change' }
55 ],
56 clmc: [
57 { required: true, message: '请输入材料名称', trigger: 'blur' }
58 ],
59 clbm: [
60 { required: true, message: '请输入材料编码', trigger: 'blur' }
61 ],
62 }
63 }
64 },
65 watch: {
66 value (val) {
67 this.myValue = val;
68 },
69 },
70 methods: {
71 /**
72 * @description: closeDialog
73 * @author: renchao
74 */
75 closeDialog () {
76 this.$emit("input", false);
77 this.ruleForm = {
78 cllx: "",
79 clmc: "",
80 }
81 },
82 /**
83 * @description: handleSubmit
84 * @author: renchao
85 */
86 handleSubmit () {
87 this.$refs['ruleForm'].validate((valid) => {
88 if (valid) {
89 this.$parent.addSave(this.ruleForm);
90 this.ruleForm = {
91 cllx: "",
92 clmc: "",
93 }
94 this.$emit("input", false);
95 } else {
96 return false;
97 }
98 })
99 }
100 }
101 };
102 </script>
103 <style scoped lang="scss">
104 .submit-button {
105 text-align: center;
106 height: 52px;
107 padding-top: 10px;
108 background-color: #fff;
109 }
110 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-15 15:38:53
5 -->
6 <template>
7 <div class="clmlmx-box">
8 <lb-table :column="column" :key="key" row-key="bsmMaterial" ref="listTable" :heightNumSetting="true" :calcHeight="500" :pagination="false"
9 :data="tableData">
10 </lb-table>
11 <div class="text-center">
12 <el-button @click="handleCancel">取消</el-button>
13 <el-button type="primary" @click="handleSubmit" :loading="loading">保存</el-button>
14 </div>
15 </div>
16 </template>
17 <script>
18 import store from '@/store/index.js'
19 import Sortable from 'sortablejs'
20 import { ywPopupCacel } from "@/utils/popup.js";
21 import { editCompanyMaterialList } from "@/api/company.js";
22 export default {
23 props: {
24 formData: {
25 type: Object,
26 default: () => {
27 return {}
28 }
29 }
30 },
31 data () {
32 return {
33 loading: false,
34 sortable: null,
35 column: [
36 {
37 label: "材料名称",
38 render: (h, scope) => {
39 return (
40 <el-input value={scope.row.clmc} onInput={(val) => { scope.row.clmc = val }}></el-input>
41 )
42 }
43 },
44 {
45 label: "材料编码",
46 render: (h, scope) => {
47 return (
48 <el-input value={scope.row.clbm} onInput={(val) => { scope.row.clbm = val }}></el-input>
49 )
50 }
51 },
52 {
53 label: "材料类型",
54 width: "110",
55 render: (h, scope) => {
56 return (
57 <el-select value={scope.row.cllx}
58 onChange={(val) => { scope.row.cllx = val }}>
59 {
60 store.getters.dictData['A40'].map(option => {
61 return (
62 <el-option label={option.dname} value={option.dcode}></el-option>
63 )
64 })
65 }
66 </el-select>
67 )
68 }
69 },
70 {
71 label: "页数",
72 width: "80",
73 render: (h, scope) => {
74 if (scope.row.count && scope.row.count > 0) {
75 return (
76 <div>
77 <span>{scope.row.count}</span>
78 </div>
79 );
80 } else {
81 return (
82 <div>
83 <span>0</span>
84 </div>
85 );
86 }
87 },
88 },
89 {
90 label: "操作",
91 width: "100",
92 render: (h, scope) => {
93 return (
94 <el-button
95 type="text"
96 icon="el-icon-delete"
97 disabled={scope.row.count != 0}
98 onClick={() => {
99 this.handleDelete(scope.$index, scope.row);
100 }}
101 >
102 删除
103 </el-button>
104 )
105 }
106 }
107 ],
108 key: 0,
109 tableData: []
110 }
111 },
112 mounted () {
113 this.initSort()
114 this.tableData = _.cloneDeep(this.formData.data)
115 },
116 beforeDestroy () {
117 if (this.sortable) {
118 this.sortable.destroy();
119 }
120 },
121 watch: {
122 'formData.data': {
123 handler: function (val, oldVal) {
124 this.tableData = _.cloneDeep(val)
125 },
126 immediate: true,
127 deep: true
128 }
129 },
130 methods: {
131 handleCancel () {
132 ywPopupCacel()
133 },
134 handleSubmit () {
135 this.loading = true
136 store.dispatch('user/reWorkFresh', false)
137 editCompanyMaterialList(this.tableData, this.formData.bsmCompany).then(res => {
138 this.loading = false
139 if (res.code == 200) {
140 this.$message({
141 message: '保存成功',
142 type: 'success'
143 })
144 store.dispatch('user/reWorkFresh', true)
145 ywPopupCacel()
146 }
147 }).catch(() => {
148 this.loading = false
149 })
150 },
151 /**
152 * @description: 材料目录删除
153 * @param {*} index
154 * @param {*} row
155 * @author: renchao
156 */
157 handleDelete (index, row) {
158 this.$confirm('此操作将永久删除该 是否继续?', '提示', {
159 confirmButtonText: '确定',
160 cancelButtonText: '取消',
161 type: 'warning'
162 }).then(() => {
163 this.tableData.splice(index, 1);
164 }).catch(() => {
165 this.$message({
166 type: 'info',
167 message: '已取消删除'
168 })
169 })
170 },
171 initSort () {
172 const el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
173 this.sortable = Sortable.create(el, {
174 ghostClass: 'sortable-ghost',
175 setData: function (dataTransfer) {
176 dataTransfer.setData('Text', '')
177 },
178 onEnd: evt => {
179 const targetRow = this.tableData.splice(evt.oldIndex, 1)[0];
180 this.tableData.splice(evt.newIndex, 0, targetRow);
181 }
182 })
183 }
184 }
185 }
186 </script>
187 <style scoped lang='scss'>
188 @import "~@/styles/mixin.scss";
189 .clmlmx-box {
190 margin: 0 auto;
191 .title {
192 text-align: center;
193 height: 60px;
194 line-height: 60px;
195 border: 1px solid #dfe6ec;
196 font-size: 20px;
197 background: #81d3f81a;
198 margin-bottom: -1px;
199 }
200 }
201 </style>
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-11-10 13:43:21 4 * @LastEditTime: 2024-01-17 08:55:41
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -54,13 +54,14 @@ ...@@ -54,13 +54,14 @@
54 this.queryClick() 54 this.queryClick()
55 }, 55 },
56 computed: { 56 computed: {
57 ...mapGetters(['workFresh']) 57 ...mapGetters(['isRefresh'])
58 }, 58 },
59 watch: { 59 watch: {
60 workFresh: { 60 isRefresh: {
61 handler (newVal, oldVal) { 61 handler (newVal, oldVal) {
62 if (newVal) this.queryClick() 62 if (newVal) this.queryClick()
63 } 63 },
64 immediate: true
64 } 65 }
65 }, 66 },
66 data () { 67 data () {
...@@ -105,7 +106,7 @@ ...@@ -105,7 +106,7 @@
105 * @author: renchao 106 * @author: renchao
106 */ 107 */
107 handleAdd () { 108 handleAdd () {
108 this.$popupDialog("添加银行", "xxba/components/addDialog", { isAdd: 1 }, "75%") 109 this.$popupDialog("添加银行", "xxba/yhjgba/components/addDialog", { isAdd: 1 }, "75%")
109 }, 110 },
110 /** 111 /**
111 * @description: handleDelete 112 * @description: handleDelete
......
1 <!-- 1 <!--
2 * @Description: 2 * @Description:
3 * @Autor: renchao 3 * @Autor: renchao
4 * @LastEditTime: 2023-10-24 15:00:35 4 * @LastEditTime: 2024-01-17 08:43:05
5 --> 5 -->
6 <template> 6 <template>
7 <div class="from-clues"> 7 <div class="from-clues">
...@@ -183,6 +183,17 @@ ...@@ -183,6 +183,17 @@
183 } 183 }
184 }, 184 },
185 methods: { 185 methods: {
186 resetForm () {
187 this.queryzrzForm = {
188 zddm: '',
189 bdcqzh: '',
190 zl: '',
191 zrzh: '',
192 xmmc: '',
193 jzwmc: ''
194 }
195 this.queryClick()
196 },
186 /** 197 /**
187 * @description: queryClick 198 * @description: queryClick
188 * @author: renchao 199 * @author: renchao
......