Browse Source

分支合并

luwenna 4 years ago
parent
commit
51608df2b2

File diff suppressed because it is too large
+ 0 - 0
qmx_page/css/app.d6d79839.css


+ 1 - 1
qmx_page/index.html

@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/favicon.ico><title>管理后台</title><link href=/css/app.b7573226.css rel=preload as=style><link href=/css/chunk-vendors.784fa8c1.css rel=preload as=style><link href=/js/app.b4e7c164.js rel=preload as=script><link href=/js/chunk-vendors.7f2b39e7.js rel=preload as=script><link href=/css/chunk-vendors.784fa8c1.css rel=stylesheet><link href=/css/app.b7573226.css rel=stylesheet></head><body><noscript><strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=loading><div class=spinner><div class=rect1></div><div class=rect2></div><div class=rect3></div><div class=rect4></div><div class=rect5></div></div></div><div id=app></div><script src=/js/chunk-vendors.7f2b39e7.js></script><script src=/js/app.b4e7c164.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/favicon.ico><title>管理后台</title><link href=/css/app.d6d79839.css rel=preload as=style><link href=/css/chunk-vendors.784fa8c1.css rel=preload as=style><link href=/js/app.4de2b756.js rel=preload as=script><link href=/js/chunk-vendors.c098ed88.js rel=preload as=script><link href=/css/chunk-vendors.784fa8c1.css rel=stylesheet><link href=/css/app.d6d79839.css rel=stylesheet></head><body><noscript><strong>We're sorry but doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=loading><div class=spinner><div class=rect1></div><div class=rect2></div><div class=rect3></div><div class=rect4></div><div class=rect5></div></div></div><div id=app></div><script src=/js/chunk-vendors.c098ed88.js></script><script src=/js/app.4de2b756.js></script></body></html>

File diff suppressed because it is too large
+ 0 - 0
qmx_page/js/app.4de2b756.js


File diff suppressed because it is too large
+ 0 - 0
qmx_page/js/chunk-vendors.c098ed88.js


+ 33 - 14
src/assets/css/common.css

@@ -101,18 +101,6 @@ a {
   -webkit-tap-highlight-color: transparent;
 }
 
-/* 图片自适应 */
-img {
-  width: 100%;
-  height: auto;
-  width: auto\9;
-  /* ie8 */
-  display: block;
-  border: none;
-  -ms-interpolation-mode: bicubic;
-  /*为了照顾ie图片缩放失真*/
-}
-
 em,
 i,
 strong {
@@ -370,6 +358,9 @@ textarea:-ms-input-placeholder {
 .jie-suan .ivu-table-tbody tr,.ding-dan .ivu-table-tbody tr,.user-list .ivu-table-tbody tr,.user-detail .ding-table .ivu-table-tbody tr {
   cursor: pointer;
 }
+.exa-list .ivu-table-tbody tr {
+  cursor: pointer;
+}
 .shen-model .ivu-modal-body p {
   font-size: 20px;
   text-align:center;
@@ -647,14 +638,42 @@ textarea:-ms-input-placeholder {
 .order-model .order-spin {
   height: 36px;
 }
-.order-model .ivu-form .ivu-select-selection, .ivu-form .ivu-select-selection div .ivu-select-selected-value{
+.sel-table .ivu-table .ivu-select-selection, .sel-table .ivu-table .ivu-select-selection div .ivu-select-selected-value  {
   height: 30px;
   line-height: 30px;
 }
-.order-model .ivu-form .ivu-select-selection .ivu-select-placeholder {
+.sel-table .ivu-table .ivu-select-selection .ivu-select-placeholder {
   height: 30px;
   line-height: 30px;
 }
 .combo-model .ivu-select {
   width: 94%;
+}
+
+.guide-modal .ivu-modal {
+  width: 690px!important;
+}
+.guide-modal .ivu-form-item {
+  display: flex;
+}
+.guide-modal .item1 .ivu-form-item-content {
+  width: 84%;
+}
+.guide-modal .item2 .ivu-form-item-content {
+  width: 100%;
+}
+.dels-model .ivu-form .ivu-form-item-label {
+  min-width: 100px;
+}
+.distr-logs .ivu-modal-body textarea {
+  width: 100%;
+  height: 36px;
+  line-height: 34px;
+  padding-left: 10px;
+  border-color: #eee;
+  border-radius: 4px;
+}
+.distr-logs .ivu-modal-body textarea:focus {
+  outline: none !important;
+  border-color: #eee;
 }

+ 6 - 1
src/components/LeftMenu.vue

@@ -6,7 +6,7 @@
         </MenuItem>
         <div v-for="menu in menus" :key="menu.id">
             <MenuItem :name="menu.id" v-if="menu.url">
-                <Icon type="menu.icon"></Icon>
+                <Icon :type="menu.icon"></Icon>
                 <span>{{menu.name}}</span>
             </MenuItem>
             <Submenu :name="menu.id" v-else>
@@ -66,6 +66,7 @@
                 return config('SITE_NAME');
             },
             menus() {
+                console.log(tree(_.cloneDeep(this.$store.getters.getAdminMenu), 0))
                 return tree(_.cloneDeep(this.$store.getters.getAdminMenu), 0);
             },
             pageMenus() {
@@ -120,6 +121,10 @@
         display: none;
         transition: display .2s ease;
     }
+
+    .ivu-layout-sider-children .ivu-menu .ivu-menu-item {
+        display: flex;
+    }
 </style>
 <style scoped>
     .menu-item span {

+ 2 - 0
src/components/tableLists.vue

@@ -182,6 +182,8 @@
 <style lang="scss" scoped>
 .table-lists {
     min-height: calc(100vh - 210px);
+    background:#fff;
+    padding: 10px;
    .top-bar {
         padding: 10px 0;
         button {

+ 2 - 1
src/router.js

@@ -23,7 +23,8 @@ const routes = [
     {
         path: '/sales/partnerList/partnerDetail',
         name: 'partnerDetail',
-        component: () => import('./views/sales/partnerDetail.vue')
+        component: () => import('./views/sales/partnerDetail.vue'),
+        alias: ['/sales/examineList/examineDetail']
     },
     {
         path: '/sales/withdrawList/withdrawDetail',

+ 0 - 1
src/views/bigMenber/bigCombo.vue

@@ -8,7 +8,6 @@
             :filterType="2" 
             :filterReset="0"
             requestApi="/order/getCombo" 
-            style="background:#fff;padding:10px" 
             @loading="load"
         >
             <template slot="filterTitle">

+ 0 - 212
src/views/bigMenber/components/comboModel.vue

@@ -1,212 +0,0 @@
-<template>
-    <div class="combo-list">
-        <Modal :title="editData.tips=='1'?'新增套餐':'编辑套餐'" v-model="cShow" class-name="order-model combo-model" :mask-closable="false" @on-visible-change="visibleChange">
-            <Form ref="combo" :model="combo" :show-message="false" :label-width="240">
-                <FormItem label="名称" prop="name" class="table-form1">
-                    <Input 
-                        v-model="names" 
-                        type="text" 
-                        :maxlength="4" 
-                        placeholder="请输入套餐名称(最多4个中文)" 
-                    ></Input>
-                </FormItem>
-                <FormItem class="table-form2">
-                    <Table 
-                        class="sel-table"
-                        border 
-                        ref="selection" 
-                        :columns="columns" 
-                        :data="editData.lists" 
-                        @on-selection-change="selChage"
-                        :summary-method="handleSummary"
-                        show-summary
-                    ></Table>
-                </FormItem>
-            </Form>
-            <div slot="footer">
-                <div class="tips">此套餐与xxx套餐内容一样,请重新选择</div>
-                <Button type="primary" size="large" @click="comConfirm()">提交</Button>
-                <!-- <Button type="primary" size="large" disabled v-else>提交</Button> -->
-                <Button type="error" size="large" @click="comCancel()">取消</Button>
-            </div>
-        </Modal>
-    </div>
-</template>
-
-<script>
-export default {
-    props: {
-        editData: {}
-    },
-    // computed: {
-    //     names: {
-    //         get() {
-    //             if (this.editData.length == 0) {
-    //                 return ''
-    //             } else {
-    //                 return this.editData.rows.s_name
-    //             }
-    //         },
-    //         set(val) {
-    //             return val
-    //         }
-    //     }
-    // },
-    methods: {
-        wordReg(e) {
-            console.log(e.target.value)
-            e.target.value = e.target.value.replace(/[^\u4e00-\u9fa5]+/g,'')
-            // this.comNames = e.target.value
-        },
-        initialized() {
-            this.names = ''
-            this.zPrice = 0
-            this.$refs.selection.selectAll(false)
-        },
-        visibleChange(val) {
-            this.initialized()  
-        },
-        // 合计
-        handleSummary ({ columns, data }) {
-            const sums = {}
-            columns.forEach((column, index) => {
-                const key = column.key
-                if (index === 0) {
-                    sums[key] = {
-                        key,
-                        value: '合计'
-                    }
-                    return
-                }
-                const values = this.sumSel.map(item => Number(item[key]))
-                if (!values.every(value => isNaN(value))) {
-                    const v = values.reduce((prev, curr) => {
-                        const value = Number(curr);
-                        if (!isNaN(value)) {
-                            return prev + curr;
-                        } else {
-                            return prev;
-                        }
-                    }, 0)
-                    sums[key] = {
-                        key,
-                        value: v
-                    }
-                    this.zPrice = sums.i_price_year.value
-                } else {
-                    if (key == 's_name') {
-                        sums[key] = {
-                            key,
-                            value: 'N/A'
-                        }
-                    } else {
-                        sums[key] = {
-                            key,
-                            value: 0
-                        }
-                    }
-                }
-            })
-            return sums;
-        },
-        // 多选
-        selChage(selection) {
-            console.log(selection)
-            let arrs = []
-            selection.map(v => {
-                arrs.push(v)
-            })
-            // if (this.editData.length == 0) {
-            //     this.sumSel = arrs
-            // } else {
-            //     let cArr = []
-            //     this.editData.lists.forEach(k => {
-            //         if (k._checked) {
-            //             cArr.push(k)
-            //         }
-            //     })
-            //     console.log(cArr)
-            //     this.sumSel = Object.assign(cArr,arrs)
-            // }
-            //     console.log(this.sumSel)
-            this.sumSel = arrs
-            // console.log(this.names)
-        },
-        comConfirm() {
-            console.log(this.names)
-            if (!this.names) {
-                this.$Notice.warning({
-                    title: "套餐名称不能为空"
-                })
-                return
-            }
-            let serverId = []
-            this.sumSel.forEach(v => {
-                serverId.push(v.id)
-            })
-            console.log(this.editData)
-            let str = {
-                id: this.editData.tips == 1 ? '' : this.editData.rows.id,
-                name: this.names,
-                price: this.zPrice,
-                serverids: String(serverId)
-            }
-            console.log(str)
-            // this.$request('/order/updateCombo').data(str).success(() => {
-            //     this.cShow = false
-            //     this.initialized()
-            //     this.$parent.reload()
-            // }).post()
-        },
-        comCancel() {
-            this.cShow = false
-            this.initialized()
-        }
-    },
-    data() {
-        return {
-            cShow: false,
-            combo: {},
-            sumSel: [],
-            names: '',
-            zPrice: 0,
-            columns: [
-                {
-                    type: 'selection',
-                    width: 40,
-                    align: 'center'
-                },
-                {
-                    title: '服务名称',
-                    key: 's_name',
-                    width: 240,
-                    align: 'center',
-                    render: (h, {row}) => {
-                        return h('span', row.s_name ? row.s_name : '-')
-                    }
-                },
-                {
-                    title: '年价格',
-                    key: 'i_price_year',
-                    align: 'center',
-                    render: (h, {row}) => {
-                        return h('span', row.i_price_year ? row.s_count_year ? row.s_count_year + '个/' + row.i_price_year : row.i_price_year : '-')
-                    }
-                },
-                {
-                    title: '月价格',
-                    key: 'i_price_month',
-                    align: 'center',
-                    render: (h, {row}) => {
-                        return h('span', row.i_price_month ? row.s_count_month ? row.s_count_month + '个/' + row.i_price_month : row.i_price_month : '-')
-                    }
-                }
-            ]
-        }
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-
-</style>

+ 1 - 1
src/views/error.vue

@@ -17,7 +17,7 @@ export default {
     flex-direction: column;
     justify-content: center;
     align-items: center;
-    padding-top: 180px;
+    margin-top: 100px;
     img {
         width: 200px;
     }

+ 145 - 0
src/views/guideWords/components/modal.vue

@@ -0,0 +1,145 @@
+<template>
+  <div class="guide-class">
+    <!-- 新增 -->
+    <Modal title="新增" v-model="adds.show" class-name="guide-modal" :mask-closable="false" @on-visible-change="visibleChange">
+      <Form>
+        <FormItem label="选择场景" class="item1">
+          <Select placeholder="请选择场景" v-model="adds.scene">
+              <Option v-for="item in lists.service" :value="JSON.stringify(item)" :key="item.id">{{ item.name }}</Option>
+          </Select>
+        </FormItem>
+        <FormItem label="公告类型" class="item1">
+          <Select multiple placeholder="请选择公告类型" v-model="adds.entType">
+              <Option v-for="(item, index) in lists.subtype" :value="item" :key="index">{{ item }}</Option>
+          </Select>
+        </FormItem>
+        <FormItem class="item2">
+          <Input v-model="adds.conts" type="textarea" size="large" :autosize="{minRows: 4,maxRows: 5}" placeholder="请填写引导语,内容不超过50个字"></Input>
+        </FormItem>
+      </Form>
+      <div slot="footer">
+          <Button type="primary" size="large" @click="addSave">确定</Button>
+          <Button size="large" @click="adds.show = false">取消</Button>
+      </div>
+    </Modal>
+    <!-- 编辑 -->
+    <Modal title="编辑" v-model="edits.show" class-name="guide-modal" :mask-closable="false" @on-visible-change="visibleChange">
+      <Form>
+        <FormItem label="场景:" class="item1">
+          <div>{{edits.chang}}</div>
+        </FormItem>
+        <FormItem label="公告类型" class="item1">
+          <Select multiple placeholder="请选择公告类型" v-model="edits.entType">
+              <Option v-for="(item, index) in lists.subtype" :value="item" :key="index">{{ item }}</Option>
+          </Select>
+        </FormItem>
+        <FormItem class="item2">
+          <Input v-model="edits.conts" type="textarea" size="large" :autosize="{minRows: 4,maxRows: 5}" placeholder="请填写引导语,内容不超过50个字"></Input>
+        </FormItem>
+      </Form>
+      <div slot="footer">
+          <Button type="primary" size="large" @click="editSave">确定</Button>
+          <Button size="large" @click="edits.show = false">取消</Button>
+      </div>
+    </Modal>
+    <!-- 删除 -->
+    <Modal title="删除" v-model="dels.show" class-name="guide-modal dels-model" :mask-closable="false" @on-visible-change="visibleChange">
+      <Form>
+        <FormItem label="场景:" class="item1">
+          <div>{{dels.ser}}</div>
+        </FormItem>
+        <FormItem label="公告类型:" class="item2">
+          <div>{{dels.type}}</div>
+        </FormItem>
+        <FormItem label="引导语:">
+          <div>{{dels.conts}}</div>
+        </FormItem>
+      </Form>
+      <div slot="footer">
+          <Button type="primary" size="large" @click="delSave">确定</Button>
+          <Button size="large" @click="dels.show = false">取消</Button>
+      </div>
+    </Modal>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    lists: {}
+  },
+  data() {
+    return {
+      adds: {
+        show: false,
+        scene: '',
+        entType: '',
+        conts: ''
+      },
+      edits: {
+        show: false,
+        id:'',
+        serId: '',
+        chang: '',
+        entType: '',
+        conts: ''
+      },
+      dels: {
+        id: '',
+        show: false,
+        ser: '',
+        type: '',
+        conts: ''
+      },
+      guideType: []
+    }
+  },
+  methods: {
+    inited() {
+      this.adds.scene = ''
+      this.adds.entType = ''
+      this.adds.conts = ''
+    },
+    addSave() {
+      let obj = {
+        serviceId: JSON.parse(this.adds.scene).id,
+        serviceName: JSON.parse(this.adds.scene).name,
+        subType: this.adds.entType.toString(),
+        content: this.adds.conts
+      }
+      this.$request('/contentConfig/update').data(obj).success(() => {
+        this.adds.show = false
+        this.$parent.guideD()
+      }).post()
+    },
+    editSave() {
+      let obj = {
+        id: this.edits.id,
+        serviceId: this.edits.serId,
+        serviceName: this.edits.chang,
+        subType: String(this.edits.entType),
+        content: this.edits.conts
+      }
+      this.$request('/contentConfig/update').data(obj).success(() => {
+        this.edits.show = false
+        this.$parent.guideD()
+      }).post()
+    },
+    delSave() {
+      this.$request('/contentConfig/del').data({
+        id: this.dels.id
+      }).success(() => {
+        this.dels.show = false
+        this.$parent.guideD()
+      }).post()
+    },
+    visibleChange() {
+      this.inited()
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 98 - 0
src/views/guideWords/guiding.vue

@@ -0,0 +1,98 @@
+<template>
+  <div class="guide-word">
+    <h1>标讯详情引导语配置<Button size="small" type="primary" @click="added">新增</Button></h1>
+    <div class="conts">
+      <div class="g-list" v-for="(item, index) in guideData.res" :key="index">
+        <h3>{{index + 1}}. {{item.name}}</h3>
+        <ul>
+          <li v-for="(lis,indx) in item.list" :key="indx">
+            {{lis.s_content}}
+            <Button size="small" type="primary" @click="edited(lis)" style="margin:0 10px">编辑</Button>
+            <Button size="small" type="primary" @click="deled(lis)">删除</Button>
+          </li>
+        </ul>
+      </div>
+    </div>
+    <g-modal ref="guideRef" :lists="guideData"></g-modal>
+  </div>
+</template>
+
+<script>
+import gModal from './components/modal.vue'
+export default {
+  components: {
+    gModal
+  },
+  data() {
+    return {
+      guideData: []
+    }
+  },
+  created() {
+    this.guideD()
+  },
+  methods: {
+    guideD() {
+      this.$request('/contentConfig/list').data().success((res) => {
+        console.log(res)
+        this.guideData = res.data
+        this.guideData.subtype = Object.assign({},res.data.subtype)
+      }).get()
+    },
+    added() {
+      this.$refs.guideRef.adds.show = true
+    },
+    edited(row) {
+      let eRef = this.$refs.guideRef
+      eRef.edits.show = true
+      eRef.edits.id = row.id
+      eRef.edits.serId = row.s_serviceid
+      eRef.edits.chang = row.s_servicename
+      eRef.edits.entType = row.s_subtype.split(',')
+      eRef.edits.conts = row.s_content
+    },
+    deled(row) {
+      let eRef = this.$refs.guideRef
+      eRef.dels.show = true
+      eRef.dels.id = row.id
+      eRef.dels.ser = row.s_servicename
+      eRef.dels.type = row.s_subtype
+      eRef.dels.conts = row.s_content
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+.guide-word {
+    h1 {
+      display: flex;
+      align-items: center;
+      font-size:24px;
+      color:#3f4047;
+      padding: 10px 0 20px 10px;
+      button {
+        margin-left: 50px;
+      }
+    }
+    .conts {
+      min-height: calc(100vh - 210px);
+      background: #fff;
+      padding: 10px;
+      .g-list {
+        padding: 10px 0;
+        h3 {
+          font-size: 16px;
+          line-height: 30px;
+        }
+        ul {
+          padding-left: 20px;
+          li {
+            font-size: 14px;
+            line-height: 24px;
+          }
+        }
+      }
+    }
+}
+</style>

+ 10 - 3
src/views/msgCollect/msgList.vue

@@ -6,7 +6,6 @@
         v-model="list" 
         :filter="filter" 
         requestApi="/userMsg/msgList" 
-        style="background:#fff;padding:10px" 
         @loading="load"
         @emptyFilter="emptyFilter"
     >
@@ -107,7 +106,10 @@ export default {
                     title: '姓名',
                     key: 's_name',
                     width: '170',
-                    align: 'center'
+                    align: 'center',
+                    render: (h, {row}) => {
+                        return h('span', row.s_name ? row.s_name : '-')
+                    }
                 },
                 {
                     title: '手机号',
@@ -150,13 +152,18 @@ export default {
                             return h('span','超级订阅')
                         } else if (row.s_source.indexOf('member') > -1) {
                             return h('span','大会员')
+                        } else {
+                            return h('span', '-')
                         }
                     }
                 },
                 {
                     title: '收集日期',
                     key: 'i_time',
-                    align: 'center'
+                    align: 'center',
+                    render: (h, {row}) => {
+                        return h('span', row.i_time ? row.i_time : '-' )
+                    }
                 }
             ],
             list: []

+ 0 - 1
src/views/order/orderList.vue

@@ -12,7 +12,6 @@
         requestApi="/order/orderList" 
         @loading="load" 
         @emptyFilter="emptyFilter"
-        style="background:#fff;padding:10px"
     >
         <template slot="filterTitle">
             <div class="shai_xuan">

+ 32 - 0
src/views/sales/commissionList.vue

@@ -30,6 +30,9 @@
             <v-date ref="dateRef" :placeholder1="'起始时间'" :placeholder2="'截止时间'" @startsData="startsData" @endsData="endsData"></v-date>
         </FormItem>
       </template>
+      <template slot="exportData">
+            <Button type="primary" @click="exportd" style="height: 36px;margin-left: 10px">导出</Button>
+      </template>
       <template slot="filterRight">
           <Input suffix="md-search" type="text" v-model="sear.keyword" placeholder="搜索单号或手机号" clearable class="ser-ipt"/>
       </template>
@@ -72,6 +75,34 @@ export default {
         },
         endsData(val) {
             this.filter.orderTimeMax = val
+        },
+        exportd() {
+            let obj = {
+                export: true,
+                product: this.filter.product,
+                salesMin: this.filter.salesMin,
+                salesMax: this.filter.salesMax,
+                orderTimeMin: this.filter.orderTimeMin?this.filter.orderTimeMin:'',
+                orderTimeMax: this.filter.orderTimeMax?this.filter.orderTimeMax:'',
+                commissionMin: this.filter.commissionMin,
+                commissionMax: this.filter.commissionMax,
+            }
+            this.$Modal.confirm({
+                title: "确定导出该列表吗?",
+                onOk: () => {
+                    this.$request('/sales/commissionList').data(obj).success((res) => {
+                        if (res.data) {
+                            window.location.href = res.data.path
+                        } else {
+                            this.$Notice.warning({
+                                title: '警告提示',
+                                desc: "暂无相应数据",
+                                duration: 5
+                            })
+                        }
+                    }).get()
+                }
+            })
         }
     },
     data () {
@@ -87,6 +118,7 @@ export default {
                 {v: '3', n: '数据报告'}
             ],
             filter: {
+                export: false,
                 product: '',
                 salesMin: '',
                 salesMax: '',

+ 114 - 0
src/views/sales/distribution.vue

@@ -0,0 +1,114 @@
+<template>
+  <div class="distri-bution">
+    <h1>商品分销管理</h1>
+      <table-lists 
+          ref="tableLists" 
+          v-model="list" 
+          :filter="filter" 
+          :filterType="2" 
+          :filterReset="0" 
+          requestApi="/sales/partnerList/commodityList" 
+          @loading="load"
+      >
+          <template slot="filterContent">
+              <FormItem label="选择企业:" :label-width="70">
+                <Select placeholder="请选择企业" clearable v-model="filter.partnerId" style="width:150px">
+                  <Option v-for="item in entMsg" :value="item.id" :key="item.id">{{ item.name }}</Option>
+                </Select>
+              </FormItem>
+          </template>
+          <Table
+              ellipsis 
+              :loading="loading" 
+              :columns="columns" 
+              :data="list.lists" 
+              stripe
+          >
+            <template slot-scope="{ row }" slot="op">
+                <Button size="small" @click.stop="copyLink(row)">复制链接</Button>
+            </template>
+          </Table>
+          <template slot="options">
+              <div style="color:#d7d7d7;font-size:14px">共计{{list.lists?list.lists.length:0}}个商品</div>
+          </template>
+      </table-lists>
+      <!-- 复制链接弹框 -->
+      <Modal
+        v-model="modal1"
+        class-name="distr-logs"
+        title="链接"
+        ok-text="复制">
+        <textarea id="txts" v-model="distrMsg" :rows="1" readonly editable="false"></textarea>
+        <div slot="footer">
+            <Button type="primary" size="large" @click="copy">复制</Button>
+        </div>
+      </Modal>
+  </div>
+</template>
+<script>
+  export default {
+    created() {
+      this.entData()
+    },
+    methods: {
+      load (val) {
+        this.loading = val
+      },
+      entData() {
+        this.$request('/sales/partnerList/enterpriseList').data().success(r => {
+          this.entMsg = r.data.data
+        }).post()
+      },
+      copyLink(row) {
+        this.modal1 = true
+        this.distrMsg = row.link
+      },
+      copy() {
+        let text = document.getElementById('txts')
+        text.select()
+        document.execCommand('Copy')
+        setTimeout(() => {
+          this.$Message.success({content: '已复制'})
+          this.modal1 = false
+        }, 700)
+      }
+    },
+    data() {
+      return {
+        loading: false,
+        modal1: false,
+        distrMsg: '',
+        entMsg: [],
+        filter: {
+          partnerId: ""
+        },
+        columns: [
+            {
+                title: '产品',
+                key: 'commodity',
+                align: 'center',
+                render: (h, {row}) => {
+                    return h('span', row.commodity ? row.commodity : '-')
+                }
+            },
+            {
+                title: '操作',
+                slot: 'op',
+                align: 'center'
+            },
+        ],
+        list: []
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.distri-bution {
+  h1 {
+    font-size:24px;
+    color:#3f4047;
+    padding: 10px 0 20px 10px;
+  }
+}
+</style>

+ 210 - 0
src/views/sales/examineList.vue

@@ -0,0 +1,210 @@
+<template>
+  <div class="exa-list">
+    <h1>企业审核</h1>
+      <table-lists 
+          ref="tableLists" 
+          v-model="list" 
+          :filter="filter" 
+          :filterType="2" 
+          :filterReset="0" 
+          requestApi="/sales/examineList" 
+          @loading="load"
+      >
+          <template slot="filterContent">
+              <FormItem>
+                  <Input type="text" suffix="md-search" v-model="filter.search" placeholder="搜索名称或手机号" clearable/>
+              </FormItem>
+          </template>
+          <Table
+              ellipsis 
+              :loading="loading" 
+              :columns="columns" 
+              :data="list.lists" 
+              @on-row-click="rowClick"
+              stripe
+          >
+            <template slot-scope="{ row }" slot="_status">
+                <field-map :class="aStatus(row.is_adopt)" :value="row.is_adopt" :map="map.status"></field-map>
+            </template>
+            <template slot-scope="{ row }" slot="op">
+                <Button size="small" @click.stop="examined(row)" v-if="row.is_adopt == 0||row.is_adopt == null">审核</Button>
+                <Button size="small" type="primary" @click.stop="checkFind(row)" v-else>查看</Button>
+            </template>
+          </Table>
+          <template slot="options">
+              <div style="color:#d7d7d7;font-size:14px">共计{{list.total}}家企业</div>
+          </template>
+      </table-lists>
+      <!-- 审核弹框 -->
+      <Modal v-model="examine.show" title="审核" :width="500" :mask-closable="false" @on-visible-change="visibled">
+        <div class="conts">
+          <RadioGroup v-model="examine.radios">
+            <Radio label="通过" style="marginRight:60px"></Radio>
+            <Radio label="不通过"></Radio>
+          </RadioGroup>
+          <h3 style="margin: 20px 0 5px 0;fontSize: 14px">原因</h3>
+          <Input v-model="examine.vals" type="textarea" :rows="3" placeholder="请填写原因" />
+        </div> 
+        <div slot="footer">
+            <Button type="primary" size="large" @click="exaSave" v-show="adopts.is_adopt == 0||adopts.is_adopt == null">提交</Button>
+        </div>
+      </Modal>
+  </div>
+</template>
+<script>
+  export default {
+    methods: {
+      load (val) {
+        this.loading = val
+      },
+      reload() {
+          this.$refs.tableLists.reload(true)
+      },
+      inited() {
+        this.examine.show = false
+        this.examine.radios = ''
+        this.examine.vals = ''
+      },
+      examined(row) {
+        this.adopts = row
+        this.exaId = row.id
+        this.examine.show = true
+      },
+      rowClick(row) {
+        const hrefs = this.$router.resolve({path: '/sales/examineList/examineDetail',query: {uid: row.uid, id: row.id, type: row.type, ents: 1}})
+        window.open(hrefs.href, '_blank')
+      },
+      checkFind(row) {
+        this.adopts = row
+        this.exaId = row.id
+        const datas = this.examine
+        datas.show = true
+        datas.id = row.id
+        datas.radios = row.is_adopt == 1?'通过':row.is_adopt == 2?'不通过':''
+        datas.vals = row.reason
+      },
+      exaSave() {
+        if (this.examine.radios == '') {
+          this.$Message.warning('请选择审核类型')
+          return
+        }
+        if (this.examine.radios == '不通过'&&this.examine.vals == '') {
+          this.$Message.warning('请填写原因')
+          return
+        }
+        const obj = {
+          id: this.exaId,
+          adopt: this.examine.radios=='通过'?1:this.examine.radios=='不通过'?2:'',
+          reason: this.examine.vals
+        }
+        this.$request('/sales/partnerList/partnerExamine').data(
+          obj
+        ).showSuccessTip().success(() => {
+          this.inited()
+          this.reload()
+        }).post()
+      },
+      visibled(val) {
+        if (val == false) {
+          this.inited()
+        }
+      },
+      aStatus(val) {
+        if (val == 1) {
+          return 'primary'
+        } else if (val == 0) {
+          return 'warn'
+        } else if (val == 2) {
+          return 'fail'
+        }
+      }
+    },
+    data() {
+      return {
+        loading: false,
+        exaId: '',
+        adopts: '',
+        examine: {
+          show: false,
+          radios: '',
+          vals: ''
+        },
+        map: {
+            status: [
+              {v: 0, n: '待审核'},
+              {v: 1, n: '审核通过'},
+              {v: 2, n: '审核不通过'},
+              {v: null, n: '-'}
+            ]
+        },
+        filter: {
+          search: ""
+        },
+        columns: [
+            {
+                title: '伙伴名称',
+                key: 'name',
+                align: 'center',
+                render: (h, {row}) => {
+                    return h('span', row.name ? row.name : '-')
+                }
+            },
+            {
+                title: '手机号',
+                key: 'phone',
+                align: 'center',
+                render: (h, {row}) => {
+                    return h('span', row.phone ? row.phone == '0'?'-':row.phone : '-')
+                }
+            },
+            {
+                title: '申请时间',
+                key: 'createtime',
+                align: 'center',
+                render: (h, {row}) => {
+                    return h('span', row.createtime ? row.createtime : '-')
+                }
+            },
+            {
+                title: '状态',
+                slot: '_status',
+                align: 'center'
+            },
+            {
+                title: '审核时间',
+                key: 'adopt_time',
+                align: 'center',
+                render: (h, {row}) => {
+                    return h('span', row.adopt_time ? row.adopt_time : '-')
+                }
+            },
+            {
+                title: '操作',
+                slot: 'op',
+                align: 'center'
+            },
+        ],
+        list: []
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+.exa-list {
+    h1 {
+      font-size:24px;
+      color:#3f4047;
+      padding: 10px 0 20px 10px;
+    }
+    .primary {
+      color: #34bfa3;
+    }
+    .warn {
+      color: #ffb822;
+    }
+    .fail {
+      color: #f4516c;
+    }
+}
+</style>

+ 10 - 3
src/views/sales/partnerDetail.vue

@@ -68,9 +68,16 @@
                 <Card v-else-if="infor == 2">
                     <div slot="title" class="right-fund">基本信息</div>
                     <div class="infor-card">
-                        <div class="con" v-if="types == '2'">
-                            <span>企业名称</span>
-                            <span class="spa2">{{parDetail.name?parDetail.name:'-'}}</span>
+                        <div v-if="types == '2'">
+                            <div class="con">
+                                <span>企业名称</span>
+                                <span class="spa2">{{parDetail.name?parDetail.name:'-'}}</span>
+                            </div>
+                            <Divider />
+                            <div class="con">
+                                <span>联系人</span>
+                                <span class="spa2">{{parDetail.contacts?parDetail.contacts:'-'}}</span>
+                            </div>
                         </div>
                         <div class="con" v-else>
                             <span>用户名</span>

+ 0 - 1
src/views/sales/partnerList.vue

@@ -10,7 +10,6 @@
       requestApi="/sales/partnerList" 
       @loading="load" 
       @emptyFilter="emptyFilter" 
-      style="background:#fff;padding:10px"
     >
       <template slot="filterContent">
         <FormItem label="类型:" :label-width="50">

+ 0 - 1
src/views/sales/settleList.vue

@@ -9,7 +9,6 @@
         :filterSear="2" 
         @emptyFilter="emptyFilter"
         requestApi="/sales/settleList" 
-        style="background:#fff;padding:10px"
         @loading="load"
     >
       <template slot="filterContent">

+ 0 - 1
src/views/sales/withdrawList.vue

@@ -8,7 +8,6 @@
         :sear="sear"
         :filterSear="2"
         requestApi="/sales/withdrawList" 
-        style="background:#fff;padding:10px" 
         @loading="load"
         @emptyFilter="emptyFilter"
         @serachBtn="serachBtn"

+ 0 - 4
src/views/system/listsConst.js

@@ -1,4 +0,0 @@
-export const userStatus = [
-    {v: 1, n: '启用'},
-    {v: 2, n: '禁用'}
-];

+ 5 - 3
src/views/system/user.vue

@@ -80,7 +80,6 @@
     </div>
 </template>
 <script>
-    import {userStatus} from './listsConst.js'
     import _ from "lodash";
     export default {
         computed: {
@@ -131,7 +130,7 @@
             send() {
                 this.current.data.loginType = '2'
                 console.log(this.current.data)
-                this.$request("/system/user/save").data(this.current.data).success((r) => {// 发送验证码
+                this.$request("/system/user/save").data(this.current.data).success(() => {// 发送验证码
                     this.$Message.success({content: '发送成功'})
                     if (this.current.data.username) {
                         this.codeWord = 60 + ' s'
@@ -202,7 +201,10 @@
                 changes: false,
                 timer: null,
                 map: {
-                    status: userStatus
+                    status: [
+                        {v: 1, n: '启用'},
+                        {v: 2, n: '禁用'}
+                    ]
                 },
                 filter: {
                     keyword: ""

+ 0 - 1
src/views/userManage/mergeUserList.vue

@@ -10,7 +10,6 @@
       class="user-class"
       requestApi="/users/mergeUserList"
       @loading="load"
-      style="background: #fff; padding: 10px"
     >
       <template slot="filterTitle">
         <div class="shai_xuan">

+ 0 - 1
src/views/userManage/userList.vue

@@ -13,7 +13,6 @@
       requestApi="/users/userList"
       @loading="load"
       @emptyFilter="emptyFilter"
-      style="background: #fff; padding: 10px"
     >
       <template slot="filterTitle">
         <div class="shai_xuan">

Some files were not shown because too many files changed in this diff