Browse Source

详情页改造

chris 3 years ago
parent
commit
e827fdcbb1

+ 144 - 0
src/views/modules/cus/communicate-detail.vue

@@ -0,0 +1,144 @@
+<template>
+  <el-dialog
+    title="查看"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <div style="margin-left: 20px;margin-right: 20px">
+      <e-desc title="基本信息" column="3">
+        <e-desc-item label="沟通编码">{{dataForm.coCode}}</e-desc-item>
+        <e-desc-item label="客户名称">{{dataForm.customerName}}</e-desc-item>
+        <e-desc-item label="联系人">{{dataForm.bizManagerName}}</e-desc-item>
+        <e-desc-item label="沟通类别">{{dataForm.coType}}</e-desc-item>
+        <e-desc-item label="备注说明" span="2">{{dataForm.notes}}</e-desc-item>
+      </e-desc>
+      <e-desc title="订单产品明细">
+        <el-table
+          :data="cusRCommProductVOS"
+          border
+          style="width: 100%;">
+          <el-table-column
+            label="序号"
+            type="index"
+            width="50"
+            align="center">
+          </el-table-column>
+          <el-table-column
+            prop="productName"
+            header-align="center"
+            align="center"
+            label="产品名称">
+          </el-table-column>
+          <el-table-column
+            prop="cnt"
+            header-align="center"
+            align="center"
+            label="数量">
+          </el-table-column>
+          <el-table-column
+            prop="price"
+            header-align="center"
+            align="center"
+            label="含税单价">
+          </el-table-column>
+          <el-table-column
+            prop="amount"
+            header-align="center"
+            align="center"
+            label="含税总价">
+            <template slot-scope="scope">
+              <span>{{ (scope.row.cnt*scope.row.price).toFixed(2) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="rate"
+            header-align="center"
+            align="center"
+            label="税率">
+            <template slot-scope="scope">
+              <span>
+                {{scope.row.rate}} %
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="notes"
+            header-align="center"
+            align="center"
+            label="备注">
+          </el-table-column>
+        </el-table>
+      </e-desc>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">返回</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  import { getCoDetail } from '@/api/cus'
+  export default {
+    name: 'communicate-detail',
+    components: {
+      EDesc, EDescItem
+    },
+    data () {
+      return {
+        visible: false,
+        id: 0,
+        dataForm: {},
+        cusRCommProductVOS: [],
+        fileList: []
+      }
+    },
+    methods: {
+      async init (id) {
+        this.visible = true
+        this.id = id || 0
+        this.cusRCommProductVOS = []
+        this.getDetails()
+      },
+      getDetails () {
+        getCoDetail(this.id).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataForm = data.data
+            // 附件显示
+            this.fileList = []
+            data.data.attachList.forEach((item) => {
+              this.fileList.push({
+                name: item.fileName,
+                url: item.url,
+                id: item.url
+              })
+            })
+            if (data.data.cusRCommProductVOS) {
+              data.data.cusRCommProductVOS.forEach((item) => {
+                this.cusRCommProductVOS.push({
+                  cnt: item.cnt,
+                  price: item.price,
+                  productId: item.productId,
+                  rate: item.rate,
+                  productName: item.productName,
+                  notes: item.notes
+                })
+              })
+            }
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
+.title{
+  padding: 10px 0 ;
+}
+</style>

+ 11 - 2
src/views/modules/cus/communicate.vue

@@ -85,7 +85,7 @@
         width="150"
         label="操作">
         <template slot-scope="scope">
-          <el-button v-if="isAuth('cus:communication:info')" type="text" size="small" @click="addOrUpdateHandle(scope.row.coId, true)">查看</el-button>
+          <el-button v-if="isAuth('cus:communication:info')" type="text" size="small" @click="detailHandle(scope.row.coId)">查看</el-button>
           <el-button v-if="isAuth('cus:communication:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.coId, false)">编辑</el-button>
           <el-button v-if="isAuth('cus:communication:delete')" style="color: red" type="text" size="small" @click="deleteHandle(scope.row.coId)">删除</el-button>
         </template>
@@ -102,21 +102,24 @@
     </el-pagination>
     <!-- 弹窗, 新增 / 修改 -->
     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
+    <detail v-if="detailVisible" ref="detail"/>
   </div>
 </template>
 
 <script>
   import AddOrUpdate from './communicate-add-or-update'
+  import Detail from './communicate-detail'
   import { getDictList } from '@/api/dict'
   import { downloadUrl } from '@/api/file'
   export default {
     name: 'communicate',
     components: {
-      AddOrUpdate
+      AddOrUpdate, Detail
     },
     data () {
       return {
         addOrUpdateVisible: false,
+        detailVisible: false,
         dataForm: {
           cusName: ''
         },
@@ -225,6 +228,12 @@
             return this.options[i].value
           }
         }
+      },
+      detailHandle (id) {
+        this.detailVisible = true
+        this.$nextTick(() => {
+          this.$refs.detail.init(id)
+        })
       }
     }
   }

+ 86 - 0
src/views/modules/cus/customer-detail.vue

@@ -0,0 +1,86 @@
+<template>
+  <el-dialog
+    title="查看"
+    width="70%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <div style="margin-left: 20px;margin-right: 20px">
+      <e-desc title="基本信息" column="3">
+        <e-desc-item label="公司名称">{{dataForm.customerName}}</e-desc-item>
+        <e-desc-item label="客户级别">{{dataForm.level}}</e-desc-item>
+        <e-desc-item label="所在区域">{{dataForm.unknown}}</e-desc-item>
+        <e-desc-item label="详细地址">{{dataForm.address}}</e-desc-item>
+        <e-desc-item label="邮编">{{dataForm.zipCode}}</e-desc-item>
+        <e-desc-item label="电话">{{dataForm.tel}}</e-desc-item>
+        <e-desc-item label="传真">{{dataForm.fax}}</e-desc-item>
+        <e-desc-item label="网址" span="2">
+          <a type="primary" :href="dataForm.url" target="_blank">{{ dataForm.url }}</a>
+        </e-desc-item>
+        <e-desc-item label="公司简介" span="3">{{dataForm.introduction}}</e-desc-item>
+      </e-desc>
+      <e-desc title="业务联系人" column="3">
+        <e-desc-item label="联系人">{{dataForm.contact}}</e-desc-item>
+        <e-desc-item label="职位">{{dataForm.contactPosition}}</e-desc-item>
+        <e-desc-item label="手机号码">{{dataForm.contactTel}}</e-desc-item>
+        <e-desc-item label="邮箱">{{dataForm.contactEmail}}</e-desc-item>
+        <e-desc-item label="对接业务员">{{dataForm.bizManagerName}}</e-desc-item>
+      </e-desc>
+      <e-desc title="财务信息" column="3">
+        <e-desc-item label="企业税号">{{dataForm.taxNumber}}</e-desc-item>
+        <e-desc-item label="发票抬头">{{dataForm.invoiceTitle}}</e-desc-item>
+        <e-desc-item label="开户银行">{{dataForm.bank}}</e-desc-item>
+        <e-desc-item label="银行账号">{{dataForm.account}}</e-desc-item>
+        <e-desc-item label="单位地址">{{dataForm.billingAddr}}</e-desc-item>
+      </e-desc>
+    </div>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">返回</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import EDesc from '../common/e-desc'
+  import EDescItem from '../common/e-desc-item'
+  export default {
+    name: 'customer-detail',
+    components: {
+      EDesc, EDescItem
+    },
+    data () {
+      return {
+        visible: false,
+        id: 0,
+        dataForm: {}
+      }
+    },
+    methods: {
+      async init (id) {
+        this.visible = true
+        this.id = id || 0
+        this.getDetails()
+      },
+      getDetails () {
+        this.$http({
+          url: this.$http.adornUrl(`/biz-service/cusCustomer/info/${this.id}`),
+          method: 'get',
+          params: this.$http.adornParams()
+        }).then(({data}) => {
+          if (data && data.code === '200') {
+            this.dataForm = data.data
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+.my-line{
+  border-bottom: 1px solid #c0c4cc;
+  margin-bottom: 10px;
+}
+.title{
+  padding: 10px 0 ;
+}
+</style>

+ 11 - 2
src/views/modules/cus/customer.vue

@@ -87,7 +87,7 @@
         width="150"
         label="操作">
         <template slot-scope="scope">
-          <el-button v-if="isAuth('cus:customer:info')" type="text" size="small" @click="addOrUpdateHandle(scope.row.customerId, true)">查看</el-button>
+          <el-button v-if="isAuth('cus:customer:info')" type="text" size="small" @click="detailHandle(scope.row.customerId)">查看</el-button>
           <el-button v-if="isAuth('cus:customer:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.customerId, false)">编辑</el-button>
         </template>
       </el-table-column>
@@ -103,20 +103,23 @@
     </el-pagination>
     <!-- 弹窗, 新增 / 修改 -->
     <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
+    <detail v-if="detailVisible" ref="detail"/>
   </div>
 </template>
 
 <script>
   import AddOrUpdate from './customer-add-or-update'
+  import Detail from './customer-detail'
   import { getLevel } from '@/api/cus'
   export default {
     name: 'customer',
     components: {
-      AddOrUpdate
+      AddOrUpdate, Detail
     },
     data () {
       return {
         addOrUpdateVisible: false,
+        detailVisible: false,
         dataForm: {
           customerName: '',
           level: ''
@@ -200,6 +203,12 @@
             return this.options[i].value
           }
         }
+      },
+      detailHandle (id) {
+        this.detailVisible = true
+        this.$nextTick(() => {
+          this.$refs.detail.init(id)
+        })
       }
     }
   }

+ 1 - 1
src/views/modules/msg-center/announcement-detail.vue

@@ -29,7 +29,7 @@
   import { getAnnouncementInfo } from '@/api/msg'
   import { downloadUrl } from '@/api/file'
   export default {
-    name: 'notice-add-or-update',
+    name: 'announcement-detail',
     components: {
       EDesc, EDescItem
     },