Parcourir la source

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

qymljy il y a 2 ans
Parent
commit
82bb02b4af

+ 1 - 0
src/App.vue

@@ -46,6 +46,7 @@
 body{
   font:16px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
   font-family: "阿里巴巴普惠体 2.0 35 Thin";
+  min-width: 1200px;
 }
 .rightBar{
   width:60px;

+ 2 - 2
src/SDrpManagement/salerPrivatecustomer/detail/modules/detailedData.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="normal-panel">
     <div class=" normal-panel normal-margin">
-      <el-descriptions title="基本信息" border :column="2">
+      <el-descriptions title="基本信息" border :column="2" labelClassName="my-label" contentClassName="my-content">
         <el-descriptions-item label-class-name="my-label" label="客户名称">{{ basic.enterprisename?basic.enterprisename:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="客户编号">{{ basic.sa_customersid?basic.sa_customersid:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="企业简称">{{ basic.abbreviation?basic.abbreviation:"--"}}</el-descriptions-item>
@@ -18,7 +18,7 @@
     </div>
 
     <div class="normal-panel">
-      <el-descriptions title="系统信息" border :column="2">
+      <el-descriptions title="系统信息" border :column="2" labelClassName="my-label" contentClassName="my-content">
         <el-descriptions-item label-class-name="my-label" label="创建人">{{ system.createby?system.createby:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="创建时间">{{ system.createdate?system.createdate:"--" }}</el-descriptions-item>
         <el-descriptions-item label-class-name="my-label" label="最近跟进人">{{ system.followby?system.followby:"--" }}</el-descriptions-item>

+ 75 - 31
src/SDrpManagement/salerPrivatecustomer/index.vue

@@ -8,7 +8,7 @@
       :apiId="{query:20221012164402,del:''}"
       :autoQuery="false"
       :detailPath="{path:'/customerDetail',param:{tabIndex:tabIndex}}">
-      <template v-slot:tempChild="scope">
+      <!-- <template v-slot:tempChild="scope">
         <el-select v-if="scope.data === 'type'" class="inline-16" v-model="selectParam.type" size="mini" placeholder="请选择" @change="selectChange" clearable>
           <el-option
               v-for="item in option.typeData"
@@ -41,21 +41,65 @@
               :value="item.value">
           </el-option>
         </el-select>
-      </template>
-        <template #custom>
-          <div class="flex-align-center">
-            <div>
-              <label class="search__label">范围:</label>
-              <el-select class="inline-16" v-model="value" size="small" placeholder="请选择数据分类" @change="selectChange" clearable>
-                <el-option
-                  v-for="item in editableTabs"
-                  :key="item.index"
-                  :label="item.title"
-                  :value="item.name">
-                </el-option>
-              </el-select>
-            </div>
-            <div>
+      </template> -->
+      <template #custom>
+        <div class="flex-align-center">
+          <div>
+            <label class="search__label">范围:</label>
+            <el-select class="inline-16" v-model="value" size="small" placeholder="请选择数据分类" @change="selectChange" clearable>
+              <el-option
+                v-for="item in editableTabs"
+                :key="item.index"
+                :label="item.title"
+                :value="item.name">
+              </el-option>
+            </el-select>
+          </div>
+          <div>
+            <label class="search__label">客户类型:</label>
+            <el-select class="inline-16" v-model="selectParam.type" size="small" placeholder="请选择" @change="selectChange" clearable>
+              <el-option
+                  v-for="item in option.typeData"
+                  :key="item.value"
+                  :label="item.value"
+                  :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+          <div>
+            <label class="search__label">客户等级:</label>
+            <el-select v-model="selectParam.customergrade" size="small" placeholder="请选择" @change="selectChange" clearable>
+              <el-option
+                  v-for="item in option.gradeData"
+                  :key="item.value"
+                  :label="item.value"
+                  :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+          <div>
+            <label class="search__label">所属行业:</label>
+            <el-select v-model="selectParam.industry" size="small" placeholder="请选择" @change="selectChange" clearable>
+              <el-option
+                  v-for="item in option.industryData"
+                  :key="item.value"
+                  :label="item.value"
+                  :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+          <div>
+             <label class="search__label">合作状态:</label>
+            <el-select v-model="selectParam.status" size="small" placeholder="请选择" @change="selectChange" clearable>
+              <el-option
+                  v-for="item in option.status"
+                  :key="item.value"
+                  :label="item.value"
+                  :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+          <div>
             <label class="search__label" >创建时间:</label>
             <el-date-picker
                 style="margin-right: 24px !important;"
@@ -69,22 +113,22 @@
                 end-placeholder="结束日期"
                 clearable>
             </el-date-picker>
-            </div>
           </div>
-        </template>
-        <template v-slot:tbList="scope">
-          <div v-if="scope.data.column.columnname === 'isleader'">
-            <span v-if="scope.data.column.data['leader'].length !== 0">已分配</span>
-            <span v-else>未分配</span>
-          </div>
-          <div v-else-if="scope.data.column.columnname === 'contact'">
-            <span>{{scope.data.column.data['leader'][0]?scope.data.column.data['leader'][0].name:''}}</span>
-          </div>
-          <div v-else>
-            {{scope.data.column.data[[scope.data.column.columnname]]}}
-          </div>
-        </template>
-      </basicLayout>
+        </div>
+      </template>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'isleader'">
+          <span v-if="scope.data.column.data['leader'].length !== 0">已分配</span>
+          <span v-else>未分配</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'contact'">
+          <span>{{scope.data.column.data['leader'][0]?scope.data.column.data['leader'][0].name:''}}</span>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+    </basicLayout>
   </div>
 </template>
 

+ 1 - 0
src/assets/file_icons/file.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1668662718035" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6400" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M848.896 523.337143a20.918857 20.918857 0 0 0-2.925714-30.354286 23.917714 23.917714 0 0 0-32.914286 3.072l-316.928 317.001143a201.728 201.728 0 0 1-285.257143-285.257143l369.810286-369.883428a126.976 126.976 0 1 1 179.638857 179.638857L390.436571 707.291429a52.297143 52.297143 0 1 1-73.874285-73.874286L633.417143 316.342857a22.381714 22.381714 0 0 0-31.670857-31.670857L284.818286 601.746286a97.133714 97.133714 0 1 0 137.362285 137.362285l369.810286-369.883428a171.885714 171.885714 0 1 0-243.053714-243.053714L179.053714 495.908571a246.564571 246.564571 0 1 0 348.745143 348.745143l317.001143-317.001143z" fill="#1296db" p-id="6401"></path></svg>

+ 1 - 1
src/components/dynamic-table/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-table ref="table" :row-class-name="tableClassName" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" :height="height" @row-click="rowClick" style="width:100%"  border>
+    <el-table ref="table" :row-class-name="tableClassName" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" :height="height" @row-click="rowClick" style="width:100%;min-height:900px"  border>
       <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width" :fixed="col.columnname === fixedName?'right':false">
         <template slot-scope="scope">
           <!-- 自定义表格显示内容 -->

+ 6 - 6
src/components/normal-basic-layout/details/index.vue

@@ -3,8 +3,8 @@
     <div style="margin:10px 10px 0 10px;border-radius:5px" class="container normal-panel sticky">
       <div class="flex-align-center flex-between normal-margin">
         <div class="flex-align-center" style="flex:1 0 auto">
-          <p style="font-size:30px;font-weight:300">{{titleText?titleText:'##'}}</p>
-          &nbsp;<tagTemp v-if="acitveApp.isdatatag" style="flex:1" ref="tag" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></tagTemp>
+          <p style="font-size:30px;font-weight:300;margin-right:16px">{{titleText?titleText:'##'}}</p>
+          <tagTemp v-if="acitveApp.isdatatag" style="flex:1" ref="tag" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></tagTemp>
         </div>
         <div class="flex-align-center">
           <cpEdit v-if="tool.checkAuth($route.name,'update')" :formPath="formPath" :oldFormPath="oldFormPath" :data="editData" btnType="default" @onAddSuccess="onSuccess"></cpEdit>
@@ -25,8 +25,8 @@
       </div>
     </div>
     <div style="box-sizing: border-box;padding:10px">
-      <el-row :gutter="10">
-        <el-col :span="acitveApp.isdatateam?18:acitveApp.isdatafollowup?18:24">
+      <el-row class="flex-align-stretch" :gutter="10">
+        <el-col style="flex:1 0 auto" :span="acitveApp.isdatateam?18:acitveApp.isdatafollowup?18:24">
           <tabTemp :tabs="tabs" :editData="editData" :idname="idname" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)">
             <div :slot="'slot' + index" v-for="(tab,index) in tabs" :key="tab.index">
               <slot :name="'slot' + index"></slot>
@@ -34,7 +34,7 @@
           </tabTemp>
           <slot name="custom"></slot>
         </el-col>
-        <el-col :span="6">
+        <el-col style="width:400px;flex:1" :span="6">
           <group v-if="acitveApp.isdatateam" ref="group" style="margin-bottom:10px" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></group>
           <follow-up v-if="acitveApp.isdatafollowup" ref="follow" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)"></follow-up>
         </el-col>
@@ -130,7 +130,7 @@ export default {
         }
         const res = await this.$api.requested(param)
         this.tool.showMessage(res,()=>{
-          this.$store.dispatch('detailDeleleSuccess',true)
+          this.$store.dispatch('changeDetailDrawer',true)
         })
       }).catch((err) => {
         

+ 23 - 20
src/components/normal-basic-layout/details/modules/followUp/addLog.vue

@@ -2,15 +2,17 @@
   <div>
     <el-button type="default" size="mini" @click="dialogFormVisible = true">新 建</el-button>
     <el-dialog title="创建跟进日志" width="600px" append-to-body :visible.sync="dialogFormVisible">
-      <el-form :model="form" label-position="top" label-width="80px">
-        <el-form-item label="跟进日志">
-          <el-input type="textarea" :rows="3" v-model="form.content" placeholder="请输入跟进日志" autocomplete="off"></el-input>
+      <el-form :model="form" ref="form" label-position="top" label-width="80px">
+        <el-form-item label="跟进日志" prop="content">
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 18 }" v-model="form.content" placeholder="请输入跟进日志" autocomplete="off"></el-input>
         </el-form-item>
-        <el-form-item label="上传附件">
+        <el-form-item>
           <upload
+            ref="upload"
             :folderid="folderid"
             @onSuccess="onSuccess"
-            :hidemediastock="true">
+            :bindData="bindData"
+            type="button">
           </upload>
           <!-- <previewImage :image="{}" :deletebtn="true"></previewImage> -->
         </el-form-item>
@@ -18,14 +20,14 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" @click="dialogFormVisible = false">取 消</el-button>
-        <el-button type="warning" size="small" @click="ssubmitLog">保 存</el-button>
+        <el-button type="warning" size="small" @click="submitLog">保 存</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import upload from '@/components/upload/hw_obs_upload.vue'
+import upload from '@/components/upload/preview_upload.vue'
 import previewImage from '@/components/previewImage/index.vue'
 export default {
   props:['ownertable'],
@@ -39,6 +41,7 @@ export default {
       form:{
         content:''
       },
+      bindData:{},
       folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
       attachmentids:[]
     }
@@ -46,10 +49,9 @@ export default {
   
   methods:{
     onSuccess(res) {
-      console.log(res.data.attachmentids)
       this.attachmentids = [...this.attachmentids,...res.data.attachmentids]
     },
-    async ssubmitLog () {
+    async submitLog () {
       const res = await this.$api.requested({
         "id": 20220930121601,
         "content": {
@@ -61,27 +63,28 @@ export default {
         }
       })
       this.tool.showMessage(res,()=>{
-        this.form.content = ''
-        this.$store.dispatch('bindFileToData',{
+        this.bindData = {
           "ownertable": 'sys_datafollowup',
           "ownerid": res.data.sys_datafollowupid,
           "usetype": 'default',
-          "attachmentids": this.attachmentids
+        }
+        this.$refs['form'].resetFields();
           
-        }).then(rs=>{
-          this.attachmentids = []
-          this.dialogFormVisible = false
-          this.$emit('onSuccess')
-        })
-       
+        this.$refs['upload'].toUpload()
+
+        
       })
     },
-    bindFileToData () {
-      
+    onSuccess() {
+      this.$emit('onSuccess')
+      this.dialogFormVisible = false
     }
   }
 }
 
 </script>
 <style>
+</style>
+<style scoped>
+
 </style>

+ 2 - 2
src/components/normal-basic-layout/details/modules/followUp/editLog.vue

@@ -4,11 +4,11 @@
     <el-dialog title="编辑跟进日志" width="600px" append-to-body :visible.sync="dialogFormVisible">
       <el-form :model="form" label-position="top" label-width="80px">
         <el-form-item label="跟进日志">
-          <el-input type="textarea" :rows="3" v-model="form.content" placeholder="请输入跟进日志" autocomplete="off"></el-input>
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 18 }" v-model="form.content" placeholder="请输入跟进日志" autocomplete="off"></el-input>
         </el-form-item>
         <div class="flex-align-center flex-between pionter" v-for="file in data.attinfos" :key="file.index">
           <div class="flex-align-center">
-            <img width="30" :src="checkFileType(file.postfix) === 'file'?require('@/assets/file_icons/submit.png'):require('@/assets/file_icons/image.png')" class="inline-16" alt="">
+            <img width="30" :src="checkFileType(file.postfix) === 'file'?require('@/assets/file_icons/file.svg'):file.url" class="inline-16" alt="">
             <div class="file__link inline-16">
               <a :href="file.url">{{file.document}}</a>
               <p>{{(file.contentlength / 1024).toFixed(2)}}kb</p>

+ 31 - 10
src/components/normal-basic-layout/details/modules/followUp/followUp.vue

@@ -15,27 +15,38 @@
             :timestamp="i.createdate">
               <div slot="dot" class="dot"></div>
               <div class="step__panel normal-margin">
-                <div class="flex-align-stretch flex-between normal-margin">
-                  <p><small>跟进人:</small>{{i.changeby}}</p>
+                <div class="flex-align-center flex-between" style="margin-bottom:10px">
+                  <!-- <p><small>跟进人:</small>{{i.changeby}}</p> -->
+                  <img height="30" width="30" :src="i.headpic" alt="">
                   <small style="color:#999">{{i.createdate}}</small>
                 </div>
                 <div class="follow-progress">
                   <p>{{i.content}}</p>
-                  <div class="flex-align-center flex-wrap" style="margin-bottom:5px">
-                    <previewImage v-show="checkFileType(img.postfix) === 'img'" style="width:60px;height:60px;margin-left:5px" v-for="img in i.attinfos" :key="img.index" :image="img" :deletebtn="true" @onSuccess="queryLogs"></previewImage>
+                  <div>
+                    <!-- <previewImage v-show="checkFileType(img.postfix) === 'img'" style="width:60px;height:60px;margin-left:5px" v-for="img in i.attinfos" :key="img.index" :image="img" :deletebtn="true" @onSuccess="queryLogs"></previewImage> -->
+                    <div class="flex-align-center flex-between pionter" v-for="img in i.attinfos" :key="img.index" style="padding:10px;margin-bottom:5px">
+                      <div class="flex-align-center">
+                        <img width="30" :src="checkFileType(img.postfix) === 'file'?require('@/assets/file_icons/file.svg'):img.url" class="inline-16" alt="">
+                        <div class="file__link">
+                          <a :href="img.url">{{img.document}}</a>
+                          <p>{{(img.contentlength / 1024).toFixed(2)}}kb</p>
+                        </div>
+                      </div>
+                      <i style="color:red;" class="el-icon-delete" v-if="nowUserid === i.createuserid" @click="deleteFile(img)"></i>
+                    </div>
                   </div>
-                  <div v-show="checkFileType(file.postfix) === 'file'"  class="flex-align-center pionter" style="margin-bottom:10px;" v-for="file in i.attinfos" :key="file.index">
+                  <!-- <div v-show="checkFileType(file.postfix) === 'file'"  class="flex-align-center pionter" style="margin-bottom:10px;" v-for="file in i.attinfos" :key="file.index">
                     <a class="file__link" :href="file.url">{{file.document}}</a>
                     <i style="color:red;" class="el-icon-delete" @click="deleteFile(file)"></i>
-                  </div>
-                  <div style="text-align:right">
+                  </div> -->
+                  <div style="text-align:right" v-if="nowUserid === i.createuserid">
                     <upload class="inline-16" slot="upload" 
                       :folderid="folderid"
                       btntype="icon"
                       :bindData="{ ownertable: 'sys_datafollowup', ownerid: i.sys_datafollowupid,usetype: 'default' }"
                       @onSuccess="queryLogs">
                     </upload>
-                      <editLog :data="i" :ownertable="ownertable" @onSuccess="queryLogs"></editLog>
+                    <editLog :data="i" :ownertable="ownertable" @onSuccess="queryLogs"></editLog>
                     <el-button icon="el-icon-delete" size="mini" type="text" @click="deleteLogs(i)">删 除</el-button>
                   </div>
                 </div>
@@ -64,7 +75,8 @@ export default {
   data () {
     return {
       folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
-      logList:[]
+      logList:[],
+      nowUserid:''
     }
   },
   methods:{
@@ -112,6 +124,7 @@ export default {
   },
   mounted () {
     this.queryLogs()
+    this.nowUserid = JSON.parse(sessionStorage.getItem('active_account')).userid
   },
   watch: {
     $route () {
@@ -129,7 +142,7 @@ export default {
 <style scoped>
 .step__panel{
   background-color: #eff4ff;
-  padding: 16px;
+  padding: 10px;
   border-radius: 5px;
   color:#666
 }
@@ -150,7 +163,15 @@ export default {
   text-overflow: ellipsis;
 }
 .pionter{
+  margin:6px 0;
+  padding: 10px;
+  transition: .2s linear;
   cursor: pointer;
+  border-radius: 5px;
+  background: #ffff;
+}
+.pionter:hover{
+  box-shadow: 0 5px 10px rgb(0 0 0 / 10%);
 }
 .sticky{
   position: sticky;

+ 20 - 14
src/components/normal-basic-layout/details/modules/group/group.vue

@@ -3,18 +3,17 @@
   <div  v-for="item in list" :key="item.index" class="normal-panel">
     <div class="flex-align-center" style="border-bottom:1px solid #f1f2f3;padding:0 10px">
       <p style="flex:1;padding:10px 0;color:#999">负责人</p>
-      <!-- <accountDialog style="margin-left:10px" :ownertable="ownertable" @onSuccess="queryGroup"></accountDialog> -->
       <el-popover
         placement="right"
         trigger="manual"
         v-model="visible1"
         width="300">
-        <member ref="member" :param="param" :radio="true" @onSelect="setLeader"></member>
-        <el-button type="text" size="small" slot="reference" @click="showMenberSelect(item)">变更</el-button>
+        <member ref="member" :param="param" :radio="true" @onSelect="setLeader" @onCancel="visible1 = false"></member>
+        <el-button v-show="item.teamleader[0] && nowUserid === item.teamleader[0].userid" type="text" size="small" slot="reference" @click="showMenberSelect(item)">变更</el-button>
       </el-popover>
     </div>
     <div style="padding:10px">
-      <div class="flex-align-center" v-if="men.isleader === 1" v-for="men in item.teamleader" :key="men.index">
+      <div class="flex-align-center" v-for="men in item.teamleader" :key="men.index">
         <div class="avatar inline-16" :class="men.isleader === 1?'leader':''" >
           <img class="avatar__image" v-if="men.headpic" :src="men.headpic" alt="">
           <p v-else>{{men.name.substr(0, 1)}}</p>
@@ -25,7 +24,7 @@
         </div>
         <!-- <p>{{men.name}}</p> -->
         <div>
-					<p>{{ men.name }} &nbsp;</p>
+					<p>{{ men.name }} <small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
 					<small style="color:#999999ad;margin-top:10px">部门:{{ men.depname?men.depname:"未知部门" }}&emsp;职位:{{ men.position?men.position:"未知部门" }}</small>
 				</div>
       </div>
@@ -40,12 +39,12 @@
         trigger="manual"
         v-model="visible"
         width="300">
-        <member ref="member1" :param="param" :radio="false" :checked="item.team" @onSelect="onSubmit"></member>
-        <el-button type="text" size="small" slot="reference"  @click="showMenberSelect1(item)">变更</el-button>
+        <member ref="member1" :param="param" :radio="false" :checked="item.team" @onSelect="onSubmit" @onCancel="visible = false"></member>
+        <el-button v-show="item.teamleader[0] && nowUserid === item.teamleader[0].userid" type="text" size="small" slot="reference"  @click="showMenberSelect1(item)">添加</el-button>
       </el-popover>
     </div>
     <div style="padding:10px">
-      <div class="flex-align-center" style="margin-bottom:16px" v-if="men.isleader === 0" v-for="men in item.team" :key="men.index">
+      <div class="flex-align-center" style="margin-bottom:16px" v-show="men.isleader === 0" v-for="men in item.team" :key="men.index">
         <div class="avatar inline-16"  :class="men.isleader === 1?'leader':''" >
           <img class="avatar__image" v-if="men.headpic" :src="men.headpic" alt="">
           <p v-else>{{men.name.substr(0, 1)}}</p>
@@ -55,11 +54,11 @@
           </span> -->
         </div>
         <div>
-          <p>{{ men.name }}</p>
+          <p>{{ men.name }}&nbsp;<small style="color:#999999ad">&nbsp;账号:{{ men.username }}</small></p>
           <small style="color:#999999ad;margin-top:10px">部门:{{ men.depname?men.depname:"未知部门" }}&emsp;职位:{{ men.position?men.position:"未知部门" }}</small>
         </div>
       </div>
-      <div v-if="item.team.length === 0">
+      <div v-if="showEmpty(item.team)">
         <el-empty description="暂无成员" :image-size="40"></el-empty>
       </div>
     </div>
@@ -68,7 +67,6 @@
 </template>
 
 <script>
-// import tableLayout
 import accountDialog from './select_account.vue'
 import member from '@/template/menber/index.vue'
 import { settings } from 'nprogress'
@@ -103,7 +101,8 @@ export default {
           }
         }
       },
-      addType:''
+      addType:'',
+      nowUserid:''
     }
   },
   methods:{
@@ -159,9 +158,9 @@ export default {
             "ownertable":this.ownertable,
             "ownerid":this.$route.query.id,
             "justuserids":true,
-            "userids":data.map(e=>{
+            "userids":data?data.map(e=>{
               return e.userid
-            })
+            }):[]
         }
       })
       this.tool.showMessage(res,()=>{
@@ -181,10 +180,17 @@ export default {
       this.$refs['member1'][0].selected = item.team.filter(e=>{
         return e.isleader !== 1
       })
+    },
+    showEmpty (data) {
+      let team = data.filter(e=>{
+        return e.isleader !== 1
+      })
+      if (team.length === 0) return true
     }
   },
   mounted() {
     this.queryGroup()
+    this.nowUserid = JSON.parse(sessionStorage.getItem('active_account')).userid
   },
   watch: {
     $route () {

+ 6 - 3
src/components/normal-basic-layout/details/modules/tags/tag.vue

@@ -2,7 +2,8 @@
   <div>
     <!-- <p class="detail__head__label">标签展示:</p> -->
     <div v-if="showTag">
-      <el-tag style="margin-right:10px" v-for="item in datatag" :key="item.rowindex" size="small" type="warning" effect="dark">{{item}}</el-tag>
+      <el-tag style="margin-right:10px" color="#FA8C16" v-for="item in systemtag" :key="item.rowindex" size="small" type="warning" effect="dark">{{item}}</el-tag>
+      <el-tag style="margin-right:10px" color="#FAAB16" v-for="item in datatag" :key="item.rowindex" size="small" type="warning" effect="dark">{{item}}</el-tag>
       <el-button type="text" @click="showTag = false">+</el-button>
     </div>
     <el-select
@@ -12,7 +13,8 @@
       multiple
       placeholder="请选择文章标签"
       size="mini"
-      @visible-change="addTag">
+      @visible-change="addTag"
+      @change="addTag">
       <el-option
         v-for="item in option"
         :key="item.index"
@@ -33,6 +35,7 @@ export default {
       datatag:[],
       option:[],
       mutextag:[],
+      systemtag:[],
       showTag:true
     }
   },
@@ -48,7 +51,7 @@ export default {
 
       this.option = res.data.option
       this.datatag = res.data.datatag
-
+      this.systemtag = res.data.systemtag
       this.datatag.length > 0?this.option.forEach(e=>{
         this.setMutextag(e)
       }):''

+ 2 - 2
src/components/normal-basic-layout/drawerDetail/index.vue

@@ -45,13 +45,13 @@ export default {
     },
     closeDrawer () {
       this.$router.go(-1)
-      this.$store.dispatch('detailDeleleSuccess',false)
+      this.$store.dispatch('changeDetailDrawer',false)
       this.$emit('onSuccess')
     }
   },
   watch:{
     closeDrawerTemp (val) {
-      val?this.drawer = false:''
+      val?this.drawer = false:true
     }
   }
 }

+ 35 - 6
src/components/upload/preview_upload.vue

@@ -1,15 +1,34 @@
 <template>
   <div>
-    <div class="flex-align-stretch">
+    <div v-if="type === 'button'" class="picture_list">
+      <div class="flex-align-center flex-between pionter" v-for="(img,index) in fileLinkList" :key="img.index">
+        <div class="flex-align-center">
+          <img width="30" :src="img.type.split('/')[0] === 'image'?img.url:require('@/assets/file_icons/file.svg')" class="inline-16" alt="">
+          <div class="file__link inline-16">
+            <p>{{img.name}}</p>
+          </div>
+        </div>
+        <i style="color:red;" class="el-icon-delete" @click="handleRemove(index)"></i>
+      </div>
+      <el-upload
+        action="#"
+        :on-change="onChange"
+        :show-file-list="false"
+        :auto-upload="false"
+        multiple>
+        <el-button size="small" type="text" icon="el-icon-paperclip">点击上传</el-button>
+      </el-upload>
+    </div>
+    <div v-else class="flex-align-stretch">
       <div v-for="(img,index) in fileLinkList" :key="index" class="upload_image__panel">
-        <img :src="img.url" alt="">
+        <img :src="img.type.split('/')[0] === 'image'?img.url:require('@/assets/file_icons/file.svg')" alt="">
         <div class="upload_image__panel_mod flex-align-center flex-around">
           <i class="el-icon-delete" style="font-size:16px" @click="handleRemove(index)"></i>
         </div>
       </div>
       <el-upload
+        :accept="accept"
         action="#"
-        list-type="picture-card"
         :on-change="onChange"
         :show-file-list="false"
         :auto-upload="false"
@@ -22,7 +41,7 @@
 
 <script>
 export default {
-  props:['folderid','bindData'],
+  props:['folderid','bindData','type','accept'],
   data() {
     return {
       imageUrl:'',
@@ -45,7 +64,7 @@ export default {
       this.beforeUpload(file.raw)
     },
     beforeUpload (file) {
-      
+      console.log(file)
       var that = this
 
       var fileReader = new FileReader();
@@ -55,7 +74,7 @@ export default {
       fileReader.onload = function(e) {
 
         var result = e.target.result;
-        that.fileLinkList.push({url:result})
+        that.fileLinkList.push({url:result,type:file.type,name:file.name})
       }
     },
     handleRemove (index) {
@@ -155,4 +174,14 @@ export default {
 .upload_image__panel:hover .upload_image__panel_mod{
   opacity: 1;
 }
+.pionter{
+  margin:6px 0;
+  padding: 10px;
+  transition: .2s linear;
+  cursor: pointer;
+  border-radius: 5px;
+}
+.pionter:hover{
+  box-shadow: 0 5px 10px rgb(0 0 0 / 10%);
+}
 </style>

+ 3 - 3
src/store/index.js

@@ -88,7 +88,7 @@ export default new Vuex.Store({
     setAppMenu (state,data) {
       state.menuApp = data
     },
-    detailDeleleSuccess (state,bool) {
+    changeDetailDrawer (state,bool) {
       state.closeDrawerTemp = bool
     },
     DrawerShowChange (state,bool) {
@@ -225,8 +225,8 @@ export default new Vuex.Store({
     setActiveApp ({commit}, data) {
       commit('setActiveApp',data)
     },
-    detailDeleleSuccess ({commit}, bool) {
-      commit('detailDeleleSuccess',bool)
+    changeDetailDrawer ({commit}, bool) {
+      commit('changeDetailDrawer',bool)
     },
     DrawerShowChange ({commit},bool) {
       commit('DrawerShowChange',bool)

+ 0 - 1
src/style/style.css

@@ -11,7 +11,6 @@
 }
 body{
   color: #333333;
- 
 
 }
 

+ 5 - 1
src/template/menber/index.vue

@@ -32,7 +32,8 @@
 		</div>
 	</div>
   <el-empty v-if="tableData.length === 0" description="暂无数据" :image-size="40"></el-empty>
-	<el-button size="mini" type="primary" style="margin-top:16px;float:right" @click="onSelect">确 定</el-button>
+  <el-button size="mini" type="text" style="margin-top:16px;float:right" @click="onCancel">取 消</el-button>
+	<el-button size="mini" type="primary" style="margin-top:16px;float:right;margin-right:10px" @click="onSelect">确 定</el-button>
  	<div style="margin-top:16px;text-align:left">
     <el-pagination
     background
@@ -104,6 +105,9 @@ export default {
       this.selected = this.selected.filter(e=>{
         return e.userid !== item.userid
       })
+    },
+    onCancel () {
+      this.$emit('onCancel')
     }
   },
   mounted () {