Эх сурвалжийг харах

Merge remote-tracking branch 'origin/develop' into develop

ZZH-wl 2 жил өмнө
parent
commit
852e32bf4e

+ 20 - 0
src/api/customer/invoiceHeader.js

@@ -0,0 +1,20 @@
+import micro_request from '@/utils/micro_request'
+
+const basePath = process.env.VUE_APP_ParentPath
+export default {
+  get(query) {
+    return micro_request.postRequest(basePath, 'CustCustomerInvoiceHeader', 'Get', query)
+  },
+  add(query) {
+    return micro_request.postRequest(basePath, 'CustCustomerInvoiceHeader', 'Add', query)
+  },
+  update(query) {
+    return micro_request.postRequest(basePath, 'CustCustomerInvoiceHeader', 'Update', query)
+  },
+  delete(query) {
+    return micro_request.postRequest(basePath, 'CustCustomerInvoiceHeader', 'Delete', query)
+  },
+  list(query) {
+    return micro_request.postRequest(basePath, 'CustCustomerInvoiceHeader', 'List', query)
+  },
+}

+ 2 - 2
src/views/base/distributor/components/DistrEdit.vue

@@ -61,13 +61,13 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-row :gutter="20">
+      <!-- <el-row :gutter="20">
         <el-col :span="12">
           <el-form-item label="开票抬头" prop="invoiceHeader">
             <el-input v-model="form.invoiceHeader" placeholder="请输入详细地址" />
           </el-form-item>
         </el-col>
-      </el-row>
+      </el-row> -->
       <el-form-item label="备注" prop="remark">
         <el-input
           v-model="form.remark"

+ 2 - 2
src/views/customer/components/Edit.vue

@@ -100,11 +100,11 @@
               value-format="yyyy-MM-dd HH:mm" />
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <!-- <el-col :span="12">
           <el-form-item label="开票抬头" prop="invoiceHeader">
             <el-input v-model="editForm.invoiceHeader" placeholder="请输入详细地址" />
           </el-form-item>
-        </el-col>
+        </el-col> -->
       </el-row>
       <el-form-item label="备注" prop="remark">
         <el-input

+ 140 - 0
src/views/customer/components/InvoiceHeader.vue

@@ -0,0 +1,140 @@
+<template>
+  <!-- 新增开票抬头弹窗 -->
+  <el-dialog append-to-body :title="title" :visible.sync="visible" @close="contactClose">
+    <el-form ref="form" :model="form" :rules="rules">
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="公司名称" prop="companyName">
+            <el-input v-model="form.companyName" clearable placeholder="请输入公司名称" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="纳税人识别号" prop="taxNo">
+            <el-input v-model="form.taxNo" placeholder="请输入纳税人识别号" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="地址" prop="address">
+            <el-input v-model="form.address" placeholder="请输入地址" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="电话" prop="telephone">
+            <el-input v-model="form.telephone" placeholder="请输入电话" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="开户行及账号" prop="bankNo">
+            <el-input v-model="form.bankNo" placeholder="请输入开户行及账号" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-form-item label="备注" prop="remark">
+        <el-input
+          v-model="form.remark"
+          maxlength="500"
+          placeholder="请输入备注"
+          resize="none"
+          :rows="5"
+          show-word-limit
+          type="textarea" />
+      </el-form-item>
+    </el-form>
+    <span slot="footer">
+      <el-button v-show="form.id" type="primary" @click="edit">保存</el-button>
+      <el-button v-show="!form.id" type="primary" @click="save">保存</el-button>
+      <el-button @click="visible = false">取消</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import to from 'await-to-js'
+  import invoiceHeaderApi from '@/api/customer/invoiceHeader'
+
+  export default {
+    data() {
+      return {
+        title: '新增开票抬头',
+        visible: false,
+        form: {
+          id: 0,
+          custId: 0, // 关联客户
+          companyName: '', // 公司名称
+          taxNo: '', // 纳税人识别号
+          address: '', // 地址
+          telephone: '', // 电话
+          bankNo: '', // 开户行及账号
+          remark: '', // 备注
+        },
+        rules: {
+          custId: [{ required: true, trigger: 'blur', message: '请输入关联客户' }],
+          companyName: [{ required: true, trigger: 'blur', message: '请输公司名称' }],
+          taxNo: [{ required: true, trigger: 'blur', message: '请输入纳税人识别号' }],
+          address: [{ required: true, trigger: 'blur', message: '请输入地址' }],
+          telephone: [{ required: true, trigger: 'blur', message: '请输电话' }],
+          bankNo: [{ required: true, trigger: 'blur', message: '请输入开户行及账号' }],
+        },
+      }
+    },
+    methods: {
+      async init(id) {
+        this.visible = true
+
+        if (!id) {
+          this.title = '新建开票抬头'
+          return
+        }
+        this.title = '编辑开票抬头'
+        const [err, res] = await to(invoiceHeaderApi.get({ id: id }))
+        if (err) return
+        console.log(res)
+        this.form = res.data
+      },
+      async save() {
+        this.$refs.form.validate(async (valid) => {
+          if (valid) {
+            let params = { ...this.form }
+            const [err, res] = await to(invoiceHeaderApi.add(params))
+            if (err) return
+            this.$message.success(res.msg)
+            this.visible = false
+            this.$emit('save')
+          }
+        })
+      },
+      async edit() {
+        this.$refs.form.validate(async (valid) => {
+          if (valid) {
+            let params = { ...this.form }
+            const [err, res] = await to(invoiceHeaderApi.update(params))
+            if (err) return
+            this.$message.success(res.msg)
+            this.visible = false
+            this.$emit('save')
+          }
+        })
+      },
+      contactClose() {
+        this.form = {
+          id: 0,
+          custId: 0, // 关联客户
+          companyName: '', // 公司名称
+          taxNo: '', // 纳税人识别号
+          address: '', // 地址
+          telephone: '', // 电话
+          bankNo: '', // 开户行及账号
+          remark: '', // 备注
+        }
+        this.$refs.form.clearValidate()
+      },
+    },
+  }
+</script>
+
+<style></style>

+ 70 - 0
src/views/customer/detail.vue

@@ -304,6 +304,36 @@
               </el-table-column>
             </el-table>
           </el-tab-pane>
+          <el-tab-pane label="开票抬头" name="invoiceHeader">
+            <vab-query-form>
+              <vab-query-form-left-panel :span="12">
+                <el-input
+                  v-model="invoiceHeaderSearchText"
+                  placeholder="客户名称/公司名称/纳税人识别号"
+                  prefix-icon="el-icon-search"
+                  style="width: 50%"
+                  @blur="handleClick({ name: 'invoiceHeader' })"
+                  @keyup.enter.native="handleClick({ name: 'invoiceHeader' })" />
+              </vab-query-form-left-panel>
+              <vab-query-form-right-panel :span="12">
+                <el-button icon="el-icon-plus" @click="addInvoiceHeader">新建开票抬头</el-button>
+              </vab-query-form-right-panel>
+            </vab-query-form>
+            <el-table border :data="invoiceHeaderList" height="calc(100% - 42px)">
+              <el-table-column align="center" label="客户名称" prop="cuctName" width="120px" />
+              <el-table-column align="center" label="公司名称" prop="companyName" width="120px" />
+              <el-table-column align="center" label="纳税人识别号" prop="taxNo" width="120px" />
+              <el-table-column align="center" label="地址" prop="address" width="120px" />
+              <el-table-column align="center" label="开户行及账号" prop="bankNo" width="120px" />
+              <el-table-column align="center" label="备注" prop="remark" width="120px" />
+              <el-table-column align="center" fixed="right" label="操作" width="90px">
+                <template slot-scope="scope">
+                  <el-button type="text" @click="invoiceHeaderEdit(scope.row)">编辑</el-button>
+                  <el-button type="text" @click="invoiceHeaderDel(scope.row)">删除</el-button>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-tab-pane>
         </el-tabs>
       </div>
       <div class="info-side">
@@ -360,6 +390,7 @@
     <!-- 领取客户 -->
     <Pick ref="pick" />
     <Bid ref="bid" @bidSave="bidSave" />
+    <InvoiceHeader ref="invoiceHeader" @save="invoiceHeaderSave" />
   </div>
 </template>
 
@@ -372,6 +403,7 @@
   import businessApi from '@/api/proj/business'
   import contractApi from '@/api/contract'
   import bidApi from '@/api/customer/bid'
+  import invoiceHeaderApi from '@/api/customer/invoiceHeader'
   import Contact from './components/Contact'
   import Edit from './components/Edit'
   import Allocate from './components/Allocate'
@@ -381,6 +413,7 @@
   import Businessedit from '../proj/business/components/BusinessEdit'
   import Pick from './components/Pick'
   import Bid from './components/Bid'
+  import InvoiceHeader from './components/InvoiceHeader'
 
   export default {
     name: 'CustomerDetail',
@@ -391,6 +424,7 @@
       Shift,
       Pick,
       Bid,
+      InvoiceHeader,
       ToOpen,
       FollowDetail,
       Businessedit,
@@ -420,12 +454,14 @@
         activeName: 'detail',
         cuctName: '',
         bidSearchText: '',
+        invoiceHeaderSearchText: '',
         contactList: [],
         selectRows: [],
         records: [], //操作记录
         followList: [], //跟进记录
         belongs: [],
         bidlist: [],
+        invoiceHeaderList: [],
         items: [], //项目
         contracts: [], //合同
         appro: [],
@@ -529,6 +565,11 @@
         } else if (tab.name == 'bid') {
           ;[err, res] = await to(api.bidList({ custId: parseInt(this.id), searchText: this.bidSearchText }))
           this.bidlist = res.data.list || []
+        } else if (tab.name == 'invoiceHeader') {
+          ;[err, res] = await to(
+            invoiceHeaderApi.list({ custId: parseInt(this.id), searchText: this.invoiceHeaderSearchText })
+          )
+          this.invoiceHeaderList = res.data.list || []
         }
       },
       // 添加联系人
@@ -541,9 +582,35 @@
         this.$refs.bid.form.custId = this.detail.id
         this.$refs.bid.init()
       },
+      addInvoiceHeader() {
+        this.$refs.invoiceHeader.form.custId = this.detail.id
+        this.$refs.invoiceHeader.init()
+      },
       bidEdit(row) {
         this.$refs.bid.init(row.id)
       },
+      invoiceHeaderEdit(row) {
+        this.$refs.invoiceHeader.init(row.id)
+      },
+      invoiceHeaderDel(row) {
+        this.$confirm('确认删除?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+          .then(async () => {
+            const [err, res] = await to(invoiceHeaderApi.delete({ id: [row.id] }))
+            if (err) return
+            if (res.code == 200) {
+              this.$message({
+                type: 'success',
+                message: '删除成功!',
+              })
+              this.handleClick({ name: 'invoiceHeader' })
+            }
+          })
+          .catch((err) => console.log(err))
+      },
       // 删除联系人
       bidDel(row) {
         this.$confirm('确认删除?', '提示', {
@@ -572,6 +639,9 @@
       bidSave() {
         this.handleClick({ name: 'bid' })
       },
+      invoiceHeaderSave() {
+        this.handleClick({ name: 'invoiceHeader' })
+      },
       // 编辑客户
       handleEdit() {
         this.$refs.edit.title = '编辑客户'

+ 8 - 1
src/views/customer/list.vue

@@ -253,11 +253,18 @@
           },
           {
             label: '最后跟进人',
-            width: '100px',
+            width: '120px',
             prop: 'followUpMan',
             sortable: false,
             disableCheck: false,
           },
+          {
+            label: '所属销售',
+            width: '120px',
+            prop: 'salesName',
+            sortable: false,
+            disableCheck: false,
+          },
           {
             label: '创建时间',
             width: '150px',