Sfoglia il codice sorgente

bug 银行账号配置

LAPTOP-FO2T5SIU\35838 8 mesi fa
parent
commit
9d5ed06f78

+ 3 - 2
src/views/customerManagement/intentionalDeposit/addIntentionalDeposit.vue

@@ -36,7 +36,7 @@
                     clearable
                   >
                     <el-option
-                      v-for="item in dc_data.PAYMENT_METHODS"
+                      v-for="item in dc_data.COLLECTION_METHODS"
                       :key="item.value"
                       popper-class="statistic_base"
                       :popper-append-to-body="false"
@@ -51,6 +51,7 @@
                 <el-form-item>
                   <el-date-picker
                     v-model="form.collectionTime"
+                    popper-class="statistic_base"
                     type="date"
                     placeholder="年月日"
                     value-format="yyyy-MM-dd"
@@ -125,7 +126,7 @@ export default {
     mixins: [Base, BaseData],
     data() {
         return {
-            dc_key: ['PAYMENT_METHODS'],
+            dc_key: ['PAYMENT_METHODS', 'COLLECTION_METHODS'],
             form: {
 
             },

+ 1 - 0
src/views/customerManagement/numberManagement/addAbandon.vue

@@ -11,6 +11,7 @@
                 <el-form-item prop="abandonmentDate">
                   <el-date-picker
                     v-model="form.abandonmentDate"
+                    popper-class="statistic_base"
                     type="date"
                     placeholder="年月日"
                     value-format="yyyy-MM-dd"

+ 3 - 0
src/views/customerManagement/numberManagement/addCustomer.vue

@@ -25,6 +25,7 @@
                 <el-form-item prop="">
                   <el-date-picker
                     v-model="form.roomSelectionDate"
+                    popper-class="statistic_base"
                     type="date"
                     placeholder="年月日"
                     value-format="yyyy-MM-dd"
@@ -183,6 +184,8 @@ export default {
                         }
                         this.form.dynamicItem.push(data)
                     })
+                } else {
+                    this.addItem()
                 }
             })
         },

+ 13 - 2
src/views/customerManagement/roomChose/roomIndex.vue

@@ -6,7 +6,7 @@
           <el-tag class="full space-vertical">当前所选:载体结构</el-tag>
           <!-- @node-click="handleDeptNodeClick" -->
           <el-tree
-            ref="selectTree"
+            ref="tree"
             :default-expand-all="false"
             :data="DeptTree"
             node-key="id"
@@ -14,6 +14,7 @@
             accordion
             :expand-on-click-node="expandDeptClick"
             :default-expanded-keys="expandedDeptKey"
+            :highlight-current="true"
             node-click="(data, node, item) => nodeClick(data, node, item)"
             @node-click="getCheckedNodes"
           >
@@ -536,6 +537,8 @@ export default {
             this.queryParam.nodeId = data.nodeId
             this.queryParam.level = data.level
             this.expandedDeptKey = [data.nodeId]
+            console.log(data.nodeId)
+
             this.initDict(this.dc_key).then((res) => {
                 this.getData()
             })
@@ -599,6 +602,10 @@ export default {
         getTreeData: function() {
             this.baseInfoRequest('getTreeData1', {}).then((res) => {
                 this.DeptTree = res.data.data
+                this.$nextTick(() => {
+                    // todo 在这里设置
+                    this.$refs.tree.setCurrentKey(this.queryParam.nodeId)
+                })
             }).catch(() => {
             })
         },
@@ -889,7 +896,11 @@ export default {
         },
         // 我的选择
         selectable(row, index) {
-            return true
+            if (row.isChoose === 1) {
+                return false
+            } else {
+                return true
+            }
         },
         // 选中数据
         handleSelectionChange(val) {

+ 3 - 2
src/views/customerManagement/subscribe/addSubscribe.vue

@@ -36,7 +36,7 @@
                     clearable
                   >
                     <el-option
-                      v-for="item in dc_data.PAYMENT_METHODS"
+                      v-for="item in dc_data.COLLECTION_METHODS"
                       :key="item.value"
                       popper-class="statistic_base"
                       :popper-append-to-body="false"
@@ -51,6 +51,7 @@
                 <el-form-item>
                   <el-date-picker
                     v-model="form.collectionTime"
+                    popper-class="statistic_base"
                     type="date"
                     placeholder="年月日"
                     value-format="yyyy-MM-dd"
@@ -114,7 +115,7 @@ export default {
     mixins: [Base, BaseData],
     data() {
         return {
-            dc_key: ['PAYMENT_METHODS'],
+            dc_key: ['PAYMENT_METHODS', 'COLLECTION_METHODS'],
             form: {
 
             },

+ 1 - 1
src/views/customerManagement/subscribe/subscribeIndex.vue

@@ -61,7 +61,7 @@
     </div>
     <div style="text-align: right;margin-top: 50px">
       <el-button @click="cancel">取 消</el-button>
-      <el-button type="primary" @click="confirmSubmit()">确 定</el-button>
+      <el-button type="primary" @click="cancel()">确 定</el-button>
     </div>
 
     <!--认购金登记-->

+ 297 - 0
src/views/invoice/components/invoiceBankEdit.vue

@@ -0,0 +1,297 @@
+<template>
+  <div v-loading="loading">
+    <el-form ref="form" :model="form" style="width: 100%;padding: 5px" :rules="rules">
+      <el-row>
+        <el-col style="padding-bottom: 10px">
+          <span class="card_title">基本信息</span>
+          <el-card shadow="always" style="padding: 15px 5px 5px 15px">
+            <el-row>
+              <el-col :span="3" class="col-txt"><span style="color: red">*</span><span>银行名称</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item prop="bankName">
+                  <el-input v-model="form.bankName" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span style="color: red">*</span><span>支行名称</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item prop="bankBranchName">
+                  <el-input v-model="form.bankBranchName" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span style="color: red">*</span><span>账号</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item prop="bankNumber">
+                  <el-input v-model="form.bankNumber" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span style="color: red">*</span><span>适用楼盘</span></el-col>
+              <el-col :span="20" class="col-input">
+                <el-form-item prop="suitFloor">
+                  <el-tree
+                    ref="tree"
+                    :data="treeData"
+                    show-checkbox
+                    default-expand-all
+                    node-key="id"
+                    :default-checked-keys="checkedKeys"
+                    @check="treeChange"
+                  />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="3" class="col-txt"><span style="color: red">*</span><span>适用费用类型</span></el-col>
+              <el-col :span="20" class="col-input">
+                <!--                <el-form-item prop="suitCostType">-->
+                <!--                  <el-checkbox-group v-model="checkList" @change="checkBoxChange">-->
+                <!--                    <el-checkbox label="租赁费(保证金)" />-->
+                <!--                    <el-checkbox label="物业费" />-->
+                <!--                    <el-checkbox label="水费" />-->
+                <!--                    <el-checkbox label="电费" />-->
+                <!--                    <el-checkbox label="停车费" />-->
+                <!--                    <el-checkbox label="场地费" />-->
+                <!--                    <el-checkbox label="其他" />-->
+                <!--                  </el-checkbox-group>-->
+                <!--                </el-form-item>-->
+                <el-table
+                  ref="multipleTable"
+                  v-loading="itemLoading"
+                  :data="itemData"
+                  stripe
+                  row-class-name="g_table_row"
+                  @selection-change="handleSelectionChange"
+                >
+                  <el-table-column type="selection" label="选择" width="60" />
+                  <el-table-column label="费用类型" prop="suitCostType" width="80" />
+                  <el-table-column label="税率">
+                    <template scope="scope">
+                      <el-select v-model="scope.row.taxRate" :disabled="!scope.row.isSelected" size="mini" placeholder="请选择">
+                        <el-option v-for="item in dc_data.invoice_tax" :key="item.value" :label="item.label" :value="item.value" />
+                      </el-select>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-col>
+            </el-row>
+          </el-card>
+        </el-col>
+      </el-row>
+    </el-form>
+    <div slot="footer" style="text-align: right">
+      <el-button @click="handleClose">关 闭</el-button>
+      <el-button type="primary" @click="confirmSubmit()">保 存</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import Base from '@/views/base/base.vue'
+import BaseData from '@/views/base/baseData.vue'
+
+export default {
+    name: 'InvoiceBankEdit',
+    mixins: [Base, BaseData],
+    data() {
+        return {
+            dc_key: ['invoice_tax'],
+            loading: false,
+            id: '',
+            isDetail: false,
+            form: this.initForm(),
+            treeData: [],
+            checkedKeys: [],
+            checkList: [],
+            rules: {
+                bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }],
+                bankBranchName: [{ required: true, message: '请输入支行名称', trigger: 'blur' }],
+                bankNumber: [{ required: true, message: '请输入账号', trigger: 'blur' }],
+                suitFloor: [{ required: true, message: '请选择适用楼盘', trigger: 'change' }],
+                suitCostType: [{ required: true, message: '请选择适用费用类型', trigger: 'change' }]
+            },
+            itemData: [],
+            itemLoading: []
+        }
+    },
+    methods: {
+        initData(id, isDetail) {
+            this.initDict(this.dc_key)
+            this.id = id
+            this.isDetail = isDetail
+            if (id) {
+                this.getData()
+            }
+            this.getTreeData()
+            this.getBillType()
+        },
+        handleClose() {
+            this.$emit('editClose')
+        },
+        initForm() {
+            return {
+                id: '',
+                bankName: '',
+                bankBranchName: '',
+                bankNumber: '',
+                suitFloor: '',
+                suitCostType: ''
+            }
+        },
+        getData() {
+            this.baseRequest('getById', { id: this.id }).then((res) => {
+                if (res.data) {
+                    this.form = Object.assign({}, this.form, res.data)
+                    if (this.form.suitFloor) {
+                        this.checkedKeys = this.form.suitFloor.split(',')
+                    }
+                    if (this.form.suitCostType) {
+                        this.checkList = this.form.suitCostType.split(',')
+                    }
+                }
+            })
+        },
+        getTreeData() {
+            this.baseRequest('getTreeData', {}).then((res) => {
+                this.treeData = res.data || []
+            })
+        },
+        treeChange(val) {
+            const data = this.$refs.tree.getCheckedKeys(true)
+            if (data.length) {
+                this.form.suitFloor = data.join(',')
+            } else {
+                this.form.suitFloor = ''
+            }
+        },
+        checkBoxChange(val) {
+            if (val && val.length) {
+                this.form.suitCostType = val.join(',')
+            } else {
+                this.form.suitCostType = ''
+            }
+        },
+        confirmSubmit() {
+            const _this = this
+            let flag = false
+            _this.multipleSelection.forEach(item => {
+                if (!item.taxRate) {
+                    _this.$message.warning('请选择税率')
+                    flag = true
+                }
+            })
+            if (flag) {
+                return
+            }
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    let soaUrl = 'edit'
+                    if (!this.id) {
+                        soaUrl = 'add'
+                    }
+                    const extraData = {
+                        infos: JSON.stringify(_this.multipleSelection)
+                    }
+                    const postData = Object.assign({}, _this.form, extraData)
+                    this.loading = true
+                    this.baseRequest(soaUrl, postData).then(res => {
+                        this.loading = false
+                        if (res.data.key === 200) {
+                            this.$message.success('提交成功')
+                            this.$emit('editClose', true)
+                        } else {
+                            this.$message.error(res.data.msg)
+                        }
+                    })
+                } else {
+                    console.log('error submit!!')
+                    return false
+                }
+            })
+        },
+        getBillType() {
+            this.baseRequest('getBillType', { id: this.id }).then((res) => {
+                const _this = this
+                const checkedrow = []
+                if (res.data) {
+                    res.data.forEach(function(item) {
+                        if (item.id) {
+                            item.isSelected = true
+                            checkedrow.push(item)
+                        } else {
+                            item.isSelected = false
+                        }
+                        _this.itemData.push(item)
+                    })
+                    this.$nextTick(() => {
+                        console.log('checkedrow_:', checkedrow)
+                        checkedrow.forEach(row => {
+                            _this.$refs.multipleTable.toggleRowSelection(row, true) // 回显
+                        })
+                    })
+                }
+                this.itemLoading = false
+            })
+        },
+        handleSelectionChange(val) {
+            const _this = this
+            this.multipleSelection = val
+            this.itemData.forEach(function(item, index) {
+                if (_this.getRowSelect(item)) {
+                    _this.itemData[index].isSelected = true
+                } else {
+                    _this.itemData[index].isSelected = false
+                }
+            })
+        },
+        getRowSelect(item) {
+            let falg = false
+            this.multipleSelection.forEach(function(elm) {
+                if (item.billType == elm.billType) {
+                    falg = true
+                    return false
+                }
+            })
+            return falg
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceBankController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style scoped>
+  .ch-input .el-input__inner {
+      border-color: #32323A;
+  }
+  .ch-input-size {
+      width: 150px;
+  }
+  .ch-button {
+      border-color: #32323A;
+      background-color: #32323A;
+      color: #fff;
+  }
+  .ch-button-warning {
+      margin-left: 10px;
+      border-color: #E6A23C;
+      background-color: #E6A23C;
+      color: #fff;
+  }
+  .ch-button-export {
+      margin-left: 10px;
+      border-color: #98CC1F;
+      background-color: #98CC1F;
+      color: #fff;
+  }
+  /deep/.el-dialog__header {
+      padding: 10px 20px;
+  }
+  /deep/.el-dialog__body {
+      padding: 10px 20px;
+  }
+</style>

+ 186 - 0
src/views/invoice/invoiceBank.vue

@@ -0,0 +1,186 @@
+<template>
+  <div>
+    <el-row class="handle-box" style="margin-bottom: 10px">
+      <el-col :span="24">
+        <el-button size="small" class="ch-button-add" @click="handleAdd()"><i class="el-icon-plus" />&nbsp;新增</el-button>
+      </el-col>
+    </el-row>
+    <el-row class="handle-box">
+      <el-col :span="24">
+        <el-table v-loading="loading" :data="AllData" stripe row-class-name="g_table_row">
+          <el-table-column align="center" type="index" width="60" label="序号" />
+          <el-table-column align="center" label="开户行信息" prop="bankFullName" />
+          <el-table-column align="center" label="适用楼盘" prop="suitFloorStr" />
+          <el-table-column align="center" label="适用费用类型" prop="suitCostTypeStr" />
+          <el-table-column align="center" label="操作" width="180">
+            <template v-slot="scope">
+              <el-button size="mini" type="primary" @click="handleEdit(scope.row)" class="editButton">编辑</el-button>
+              <el-button size="mini" type="danger" @click="handleDel(scope.row)" class="deleButton">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="table-page">
+          <el-pagination
+            :current-page.sync="search.pageNum"
+            :page-size="search.pageSize"
+            background
+            layout="total, prev, pager, next"
+            :total="total"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </el-col>
+    </el-row>
+    <el-dialog
+      :title="dialogTitle"
+      :visible.sync="dialogVisible"
+      width="75%"
+      top="50px"
+      :close-on-press-escape="false"
+      :close-on-click-modal="false"
+      @close="handleClose"
+    >
+      <invoice-bank-edit v-if="dialogVisible" ref="edit" @editClose="handleClose" />
+    </el-dialog>
+  </div>
+</template>
+<script>
+
+import InvoiceBankEdit from '@/views/invoice/components/invoiceBankEdit.vue'
+
+export default {
+    name: 'InvoiceBank',
+    components: { InvoiceBankEdit },
+    data() {
+        return {
+            // 列表相关
+            search: {
+                pageNum: 1,
+                pageSize: 10
+            },
+            total: 0,
+            AllData: [],
+            loading: false,
+            // 弹框相关
+            dialogVisible: false,
+            dialogTitle: ''
+        }
+    },
+    mounted() {
+        this.getData()
+    },
+    methods: {
+        getData() {
+            const _this = this
+            _this.loading = true
+            _this.AllData = []
+            this.baseRequest('list', this.search).then((res) => {
+                if (res.data.rows) {
+                    _this.AllData = res.data.rows
+                    _this.AllData.forEach(item => {
+                        item.bankFullName = item.bankName ? item.bankName : ''
+                        if (item.bankBranchName) {
+                            item.bankFullName += item.bankBranchName
+                        }
+                        if (item.bankNumber) {
+                            item.bankFullName += item.bankNumber
+                        }
+                    })
+                    _this.total = res.data.total
+                }
+                _this.loading = false
+            })
+        },
+        handleSearch() {
+            this.search.pageNum = 1
+            this.getData()
+        },
+        handleCurrentChange(val) {
+            this.search.pageNum = val
+            this.getData()
+        },
+        handleReset() {
+            for (const i in this.search) {
+                if (i !== 'pageNum' && i !== 'pageSize') {
+                    this.search[i] = ''
+                }
+            }
+            this.handleSearch()
+        },
+        handleAdd() {
+            this.dialogVisible = true
+            this.dialogTitle = '新增'
+            this.$nextTick(() => {
+                this.$refs.edit.initData('', false)
+            })
+        },
+        handleEdit(row) {
+            this.dialogVisible = true
+            this.dialogTitle = '编辑'
+            this.$nextTick(() => {
+                this.$refs.edit.initData(row.id, false)
+            })
+        },
+        handleClose(refresh) {
+            this.dialogVisible = false
+            if (refresh) {
+                this.getData()
+            }
+        },
+        handleDel(row) {
+            const _this = this
+            this.$confirm('是否确认删除?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                _this.baseRequest('remove/' + row.id, {}).then((res) => {
+                    if (res.data.code === 200) {
+                        _this.$message.success('删除成功!')
+                        this.getData()
+                    } else {
+                        _this.$message.error(res.data.msg)
+                    }
+                })
+            }).catch(function(error) {
+                console.error(error)
+            })
+        },
+        baseRequest(opUrl, postData) {
+            return this.$channel.globeRequest('InvoiceBankController', opUrl, postData, 'project')
+        }
+    }
+}
+</script>
+
+<style scoped>
+  .ch-input .el-input__inner {
+      border-color: #32323A;
+  }
+  .ch-input-size {
+      width: 150px;
+  }
+  .ch-button {
+      border-color: #32323A;
+      background-color: #32323A;
+      color: #fff;
+  }
+  .ch-button-warning {
+      margin-left: 10px;
+      border-color: #E6A23C;
+      background-color: #E6A23C;
+      color: #fff;
+  }
+  .ch-button-export {
+      margin-left: 10px;
+      border-color: #98CC1F;
+      background-color: #98CC1F;
+      color: #fff;
+  }
+  /deep/.el-dialog__header {
+      padding: 10px 20px;
+  }
+  /deep/.el-dialog__body {
+      padding: 10px 20px;
+  }
+</style>

+ 4 - 4
src/views/signingManagement/contractManagement/contractAdd.vue

@@ -473,13 +473,13 @@ export default {
                         // 合同原件
                         contractOriginal: JSON.stringify(this.contractOriginalList),
                         // 其他附件
-                        contractOther: JSON.stringify(this.contractOtherList),
+                        contractOther: JSON.stringify(this.contractOtherList)
+                    }
+                    if (type === 'signing') {
                         // 合同状态
-                        contractStatus: type === 'signing' ? 2 : ''
+                        extraData.contractStatus = 2
                     }
-
                     const postData = Object.assign({}, _this.form, extraData)
-
                     this.baseRequest(soaUrl, postData).then(res => {
                         if (res.data.code === 200) {
                             this.$message.success('保存成功')