Browse Source

代码上传

zhangqiOMG 3 năm trước cách đây
mục cha
commit
d91ee6b602

BIN
src/assets/wallhaven-0pq8gm.jpeg


+ 6 - 3
src/components/newLayout/index.vue

@@ -5,14 +5,14 @@
       <div style="flex:100" class="body__panel">
         <headeTemp></headeTemp>
         <div>
-          <menuTemp class="sticky" ref="menu"></menuTemp>
+          <menuTemp class="sticky normal-margin" ref="menu"></menuTemp>
           <div class="radius">
             <router-view></router-view>
           </div>
         </div>
       </div>
       <div style="width:60px;">
-        <div style="position:fixed;right:0;top:0;height:100%;width:60px;background:#333;z-index:9999;">
+        <div class="nav-right">
           <div v-for="i in 5" :key="i" style="height:40px;width:40px;text-align:center;line-height:40px;border:1px solid #f1f2f3;border-radius:100%;margin:20px 10px">
             <i class="el-icon-menu" style="color:#fff"></i>
           </div>
@@ -68,11 +68,14 @@ export default {
   position: sticky;
 }
 .radius{
-  margin: 16px 0;
+  /* margin: 16px 0; */
   border-radius:10px;
   overflow: hidden;
   box-shadow: 0 2px 5px rgb(0 0 0 / 10%);
   transform: translate3d(0,-2px,0);
   background: #fff;
 }
+.nav-right{
+  position:fixed;right:0;top:0;height:100%;width:60px;background:rgba(0, 0,0,.3);z-index:9999;
+}
 </style>

+ 89 - 25
src/components/newLayout/modules/aside.vue

@@ -1,31 +1,53 @@
 <template>
+<div>
   <div class="aside__panel" :class="!collapse?'width-160':'bg'">
-    <div  class="logo flex-align-center flex-around">
+    <div  class="logo flex-align-center">
+      <i class="el-icon-s-fold inline-16" @click="collapse = !collapse"></i>
       <img v-show="img.usetype === 'actionlogo' && !collapse" v-for="img in siteinfo.attinfos" :key="img.index" style="height:40px" :src="img.url" alt="">
-      <p v-show="collapse">班</p>
-      <i class="el-icon-s-fold" @click="collapse = !collapse"></i>
     </div>
-    <p style="padding:0 20px;font-size:12px;color:#eeeeee">系统</p>
+    <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">系统</p> -->
     <el-menu
      :collapse="collapse"
       style="background:none"
       text-color="#fff"
-      active-text-color="#000"
+      active-text-color="#fff"
       class="el-menu-vertical-demo">
-      <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')">
+      <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')" @mouseenter.native="selectStyle(item)">
         <p style="text-align:center" v-if="collapse">{{item.systemname.substr(0, 1)}}</p>
         <span slot="title">{{item.systemname}}</span>
       </el-menu-item>
-      <!-- <el-divider></el-divider> -->
-      <p style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p>
+      <el-divider class="divider"></el-divider>
+      <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
+      <!-- <el-divider content-position="left">应用</el-divider> -->
+      <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')" @mouseenter.native="selectStyle (item)">
+        <p class="" style="text-align:center" v-if="collapse">{{item.systemappname.substr(0, 1)}}</p>
+        <span slot="title">{{item.systemappname}}</span>
+        <i v-if="!collapse" style="float:right;line-height: 40px;" class="el-icon-error menuIconClose" @click.stop="deleteMenuApp(item)"></i>
+      </el-menu-item>
+    </el-menu>
+  </div>
+  <div v-if="collapse" :class="fixedMenu" class="aside__panel" @mouseenter="selectStyle" @mouseleave="outStyle()">>
+    <div  class="logo flex-align-center">
+      <img v-show="img.usetype === 'actionlogo'" v-for="img in siteinfo.attinfos" :key="img.index" style="height:40px" :src="img.url" alt="">
+    </div>
+    <el-menu
+      style="background:none"
+      text-color="#fff"
+      active-text-color="#fff"
+      class="el-menu-vertical-demo">
+      <el-menu-item :index="String(item.systemid)" v-for="item in systemList" :key="item.index" @click="handelMenuClick(item,'system')">
+        <span slot="title">{{item.systemname}}</span>
+      </el-menu-item>
+      <el-divider class="divider"></el-divider>
+      <!-- <p v-if="!collapse" style="padding:0 20px;font-size:12px;color:#eeeeee">应用</p> -->
       <!-- <el-divider content-position="left">应用</el-divider> -->
       <el-menu-item :index="String(index + 10)" v-for="(item,index) in menuApp" :key="index" @click="handelMenuAppClick(item,'app')">
-        <p style="text-align:center" v-if="collapse">{{item.systemappname.substr(0, 1)}}</p>
         <span slot="title">{{item.systemappname}}</span>
         <i v-if="!collapse" style="float:right;line-height: 40px;" class="el-icon-error menuIconClose" @click.stop="deleteMenuApp(item)"></i>
       </el-menu-item>
     </el-menu>
   </div>
+</div>
 </template>
 
 <script>
@@ -36,7 +58,8 @@ export default {
     return {
       systemList:[],
       active:"0",
-      collapse:false
+      collapse:true,
+      fixedMenu:'no__panel'
     }
   },
   computed:{
@@ -84,7 +107,17 @@ export default {
         }
       })
       this.$store.dispatch('setAppMenu')
+    },
+    selectStyle (item) {
+      var _this=this;
+      this.$nextTick(()=>{
+        _this.fixedMenu = 'pos__panel'
+      })
+    },
+    outStyle (item) {
+      this.fixedMenu = 'no__panel'
     }
+    
   },
   mounted () {
     this.systemList = JSON.parse(sessionStorage.getItem('module_info'))
@@ -102,18 +135,13 @@ export default {
 
 </script>
 <style>
-.el-menu{
+.aside__panel .el-menu{
   background: none;
 }
 .width-160{
-  width: 140px !important;
-}
-.bg{
-  /* background-color: rgba(255 ,255,255,.1) !important; */
-  /* box-shadow: 0 15px 30px rgb(0 0 0 / 10%); */
+  width: 160px !important;
 }
 .aside__panel {
-  font-weight: bold;
   transition: linear .3s;
   height:100vh;
   flex: 1 0 auto ;
@@ -122,17 +150,20 @@ export default {
   transition: .2s linear;
   /* background-color: rgba(255 ,255,255,.1) !important; */
 }
+.aside__panel .el-divider--horizontal {
+  margin:6px 0;
+}
 .aside__panel .el-menu-item{
   height: 40px;
   line-height: 40px;
-  border-radius: 0 10px 10px 0;
-  margin: 5px 0;
+  /* border-radius: 0 10px 10px 0; */
+  /* margin: 16px 0; */
   padding-left:30px !important;
 }
 .aside__panel .el-menu-item:hover{
   background-color: rgba(255 ,255,255,.2) !important;
   /* border-radius: 0 40px 40px 0; */
-  color:#333 !important;
+  /* color:#333 !important; */
 }
 .el-menu-item:focus, .el-menu-item:hover{
   background: none;
@@ -144,9 +175,7 @@ export default {
 </style>
 <style scoped>
 .is-active{
-  background-color: rgba(255 ,255,255,1) !important;
-  /* border-radius: 0 40px 40px 0; */
-  color:#333 !important;
+  background-color: rgba(255 ,255,255,.2) !important;
   box-shadow: 0 15px 30px rgb(0 0 0 / 10%);
   transition: .5 linear;
 }
@@ -157,14 +186,49 @@ export default {
   height: 62px;
   line-height: 62px;
   color:#fff;
-  /* padding-left:20px; */
+  padding-left:30px;
   /* border-right: 1px solid #f1f2f3; */
 }
+.bg{
+  margin-right: 10px;
+}
+.bg .logo{
+  margin-left: -10px;
+}
+.bg p{
+  height:30px;
+  width: 30px;
+  line-height: 30px;
+  margin-top:5px;
+  border-radius: 100%;
+  background-color: rgba(255 ,255,255,.2)
+}
+.is-active p{
+  background:none !important;
+}
 .menuIconClose{
   display: none;
-  color:#333
+  opacity: .5;
 }
 .menuItem:hover .menuIconClose{
   display: block;
 }
+.divider{opacity: .2;}
+.pos__panel{
+  position: absolute;
+  width: 200px;
+  left:0;
+  top:0;
+  background: rgba(32, 30, 30, 0.9);
+  box-shadow: 0 15px 30px rgb(0 0 0 / 10%);
+  z-index: 999;
+}
+.no__panel{
+  position: absolute;
+  width: 200px;
+  left:-200px;
+  top:0;
+  background: rgba(32, 30, 30, 0.8);
+  z-index: 999;
+}
 </style>

+ 36 - 20
src/components/newLayout/modules/header.vue

@@ -1,24 +1,21 @@
 <template>
 <div class="flex">
-  <div class="flex-align-center">
-    <el-popover
-        placement="top"
-        width="300">
-        <div class="app-flex">
-          <p class="appLink" v-for="app in menuApp" :key="app.index" @click="handelMenuAppClick(app,'app')">{{app.systemappname}}</p>
-        </div>
-        <div slot="reference" class="search_panel">
-          <input placeholder="输入搜索内容" v-model="searchValue"/>
-          <i class="el-icon-search"></i>
-        </div>
-      </el-popover>
-    
+  <el-popover
+    placement="top"
+    width="300">
+    <div class="app-flex">
+      <p class="appLink" v-for="app in menuApp" :key="app.index" @click="handelMenuAppClick(app,'app')">{{app.systemappname}}</p>
+    </div>
+    <div slot="reference" class="search_panel">
+      <input placeholder="输入搜索内容" v-model="searchValue"/>
+      <i class="el-icon-search"></i>
+    </div>
+  </el-popover>
+  <div class="right-operation flex-align-center">
     <div class="weather">
       <p>今日天气:{{weather.daily?weather.daily[0].dayText:""}}</p>
-      <p>{{weather.daily?weather.daily[0].low:""}}℃~{{weather.daily?weather.daily[0].high:""}}℃</p>
+      <p>{{weather.daily?weather.daily[0].low:""}}℃ ~ {{weather.daily?weather.daily[0].high:""}}℃</p>
     </div>
-  </div>
-  <div class="right-operation">
     <el-dropdown>
       <span class="el-dropdown-link">
         <div class="flex">
@@ -164,8 +161,6 @@ export default {
   background: none;
   color:#fff
 }
-.logo{
-}
 .right-operation{
   padding: 0 20px;
 }
@@ -174,8 +169,20 @@ export default {
 }
 .weather{
   font-size: 12px;
-  margin-left:16px;
-  color:#f1f2f3
+  margin-right:16px;
+  color:#f1f2f3;
+  transition: .2s linear;
+  border-radius: 4px;
+  padding: 5px 40px;
+  -webkit-animation-timing-function: ease-in-out;
+  -webkit-animation-name: breathe;
+  -webkit-animation-duration: 1500ms;
+  -webkit-animation-iteration-count: infinite;
+  -webkit-animation-direction: alternate;
+}
+.weather:hover{
+  background-color: rgba(255 ,255,255,.2) !important;
+ 
 }
 .appLink{
   padding:2px 5px;
@@ -191,4 +198,13 @@ export default {
   align-items: center;
   flex-wrap: wrap;
 }
+@-webkit-keyframes breathe {
+    0% {
+        background-color: rgba(255 ,255,255,0);
+    }
+
+    100% {
+        background-color: rgba(255 ,255,255,.2);
+    }
+}
 </style>

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

@@ -4,7 +4,7 @@
       <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 style="flex:1" ref="tag" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></tagTemp>
+          &nbsp;<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>
@@ -26,7 +26,7 @@
     </div>
     <div style="box-sizing: border-box;padding:20px">
       <el-row :gutter="20">
-        <el-col :span="19">
+        <el-col :span="acitveApp.isdatateam?19:acitveApp.isdatafollowup?19: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>
@@ -35,8 +35,8 @@
           <slot name="custom"></slot>
         </el-col>
         <el-col :span="5">
-          <group ref="group" class="normal-margin" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)" @onSuccess="onSuccess"></group>
-          <follow-up ref="follow" :ownertable="ownertable?ownertable:idname.slice(0, this.idname.length - 2)"></follow-up>
+          <group v-if="acitveApp.isdatateam" ref="group" class="normal-margin" :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>
         
       </el-row>
@@ -52,7 +52,7 @@ import tagTemp from './modules/tags/tag.vue'
 import tabTemp from './modules/tabs/tab.vue'
 
 import group from './modules/group/group.vue'
-
+import {mapGetters} from 'vuex'
 export default {
   props:['titleText','mainAreaData','turnPageId','delApiId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs'],
   data () {
@@ -73,6 +73,11 @@ export default {
       }
     }
   },
+  computed:{
+    ...mapGetters({
+      acitveApp:"acitveApp"
+    })
+  },
   components:{
     cpEdit,
     followUp,

+ 38 - 4
src/components/normal-basic-layout/details/modules/followUp/addLog.vue

@@ -6,6 +6,15 @@
         <el-form-item label="跟进日志">
           <el-input type="textarea" :rows="3" v-model="form.content" placeholder="请输入跟进日志" autocomplete="off"></el-input>
         </el-form-item>
+        <el-form-item label="上传附件">
+          <upload
+            :folderid="folderid"
+            @onSuccess="onSuccess"
+            :hidemediastock="true">
+          </upload>
+          <previewImage :image="{}" :deletebtn="true"></previewImage>
+        </el-form-item>
+        
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" @click="dialogFormVisible = false">取 消</el-button>
@@ -16,18 +25,30 @@
 </template>
 
 <script>
-
+import upload from '@/components/upload/hw_obs_upload.vue'
+import previewImage from '@/components/previewImage/index.vue'
 export default {
   props:['ownertable'],
+  components:{
+    upload,
+    previewImage
+  },
   data () {
     return {
       dialogFormVisible:false,
       form:{
         content:''
-      }
+      },
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      attachmentids:[]
     }
   },
+  
   methods:{
+    onSuccess(res) {
+      console.log(res.data.attachmentids)
+      this.attachmentids = [...this.attachmentids,...res.data.attachmentids]
+    },
     async ssubmitLog () {
       const res = await this.$api.requested({
         "id": 20220930121601,
@@ -40,9 +61,22 @@ export default {
         }
       })
       this.tool.showMessage(res,()=>{
-        this.$emit('onSuccess')
-        this.dialogFormVisible = false
+        this.form.content = ''
+        this.$store.dispatch('bindFileToData',{
+          "ownertable": 'sys_datafollowup',
+          "ownerid": res.data.sys_datafollowupid,
+          "usetype": 'default',
+          "attachmentids": this.attachmentids
+          
+        }).then(rs=>{
+            this.dialogFormVisible = false
+            this.$emit('onSuccess')
+        })
+       
       })
+    },
+    bindFileToData () {
+      
     }
   }
 }

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

@@ -0,0 +1,136 @@
+<template>
+  <div class="inline-16">
+    <el-button icon="el-icon-edit" type="text" size="mini" @click="onShow(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-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="">
+            <div class="file__link inline-16">
+              <a :href="file.url">{{file.document}}</a>
+              <p>{{(file.contentlength / 1024).toFixed(2)}}kb</p>
+            </div>
+          </div>
+          <i style="color:red;" class="el-icon-delete" @click="deleteFile(file)"></i>
+        </div>
+        <upload
+          :folderid="folderid"
+          btntype="icon"
+          @onSuccess="onSuccess"
+          :hidemediastock="false"
+          :bindData=" {ownertable: 'sys_datafollowup', ownerid: data.sys_datafollowupid,usetype: 'default'}">
+        </upload>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false">取 消</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 previewImage from '@/components/previewImage/index.vue'
+export default {
+  props:['data','ownertable'],
+  components:{
+    upload,
+    previewImage
+  },
+  data () {
+    return {
+      dialogFormVisible:false,
+      form:{
+        content:''
+      },
+      folderid:JSON.parse(sessionStorage.getItem('folderid')).appfolderid,
+      attachmentids:[]
+    }
+  },
+  
+  methods:{
+    onShow () {
+      this.form = Object.assign({},this.form,this.data)
+    },
+    onSuccess(res) {
+      this.attachmentids = [...this.attachmentids,...res.data.attachmentids]
+    },
+
+    // 更新接口
+    async submitLog () {
+      const res = await this.$api.requested({
+        "id": 20220930121601,
+        "content": {
+          "sys_datafollowupid":0,
+            "ownertable":this.ownertable,
+            "ownerid":this.$route.query.id,
+            "type":"",
+            "content":this.form.content
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.form.content = ''
+        this.$store.dispatch('bindFileToData',{
+          "ownertable": 'sys_datafollowup',
+          "ownerid": res.data.sys_datafollowupid,
+          "usetype": 'default',
+          "attachmentids": this.attachmentids
+          
+        }).then(rs=>{
+            this.dialogFormVisible = false
+            this.$emit('onSuccess')
+        })
+       
+      })
+    },
+    checkFileType (type) {
+      let arr = ['JPG','JPEG','PNG']
+      if (arr.includes(type.toUpperCase())) {
+        return 'img'
+      } else {
+        return 'file'
+      }
+    },
+    async deleteFile (row) {
+      const res = await this.$api.requested({
+        "classname": "system.attachment.Attachment",
+        "method": "deleteFileLink",
+        "content": {
+          "linksids":[row.linksid]
+        }
+      })
+      this.tool.showMessage(res,()=>{
+        this.queryLogs()
+      })
+    }
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.file__link,.file__link > a{
+  color:#999;
+  font-size: 12px;
+  display:block;
+  width: 100%;
+  white-space: nowrap; 
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.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>

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

@@ -20,7 +20,7 @@
                   <small style="color:#999">{{i.createdate}}</small>
                 </div>
                 <div class="follow-progress">
-                  <p style="margin-bottom:5px;font-size:14px">{{i.content}}</p>
+                  <p>{{i.content}}</p>
                   <div class="flex-align-center" style="margin-bottom:5px">
                     <previewImage v-show="checkFileType(img.postfix) === 'img'" style="width:80px;height:80px;margin-left:5px" v-for="img in i.attinfos" :key="img.index" :image="img" :deletebtn="true" @onSuccess="queryLogs"></previewImage>
                   </div>
@@ -35,7 +35,8 @@
                       :bindData="{ ownertable: 'sys_datafollowup', ownerid: i.sys_datafollowupid,usetype: 'default' }"
                       @onSuccess="queryLogs">
                     </upload>
-                    <el-button size="small" type="text" @click="deleteLogs(i)">删 除</el-button>
+                      <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>
               </div>
@@ -51,10 +52,12 @@ import upload from '@/components/upload/hw_obs_upload.vue'
 import previewImage from '@/components/previewImage/index.vue'
 
 import addLog from './addLog.vue'
+import editLog from './editLog.vue'
 export default {
   props:['ownertable'],
   components:{
     addLog,
+    editLog,
     upload,
     previewImage
   },
@@ -130,7 +133,11 @@ export default {
   border-radius: 5px;
   color:#666
 }
-.follow-progress{
+.follow-progress p{
+  width:100%;
+  margin-bottom:5px;
+  font-size:14px;
+  word-wrap: break-word;
 }
 .file__link{
   color:#999;

+ 1 - 1
src/components/normal-basic-layout/modules/table.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-table border stripe ref="tables" :row-class-name="tableClassName" v-loading="loading" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" @row-click="rowClick" height="calc(100vh - 340px)" style="width:100%;" @selection-change="handleSelectionChange" >
+    <el-table border stripe ref="tables" :row-class-name="tableClassName" v-loading="loading" highlight-current-row :data="data" :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini" @row-click="rowClick" height="calc(100vh - 330px)" style="width:100%;" @selection-change="handleSelectionChange" >
       <div slot="empty">
         <el-empty :image="require('../../../assets/empty.svg')" :image-size="250">
         </el-empty>

+ 1 - 1
src/components/upload/hw_obs_upload.vue

@@ -14,7 +14,7 @@
     </div>
     <!-- 图标类型 -->
     <div v-else-if="btntype === 'icon'" >
-      <el-button icon="el-icon-paperclip" type="text" size="mini" @click="dialogUploadVisible = true">添加附件</el-button>
+      <el-button icon="el-icon-paperclip" type="text" size="mini" @click="dialogUploadVisible = true">附件上传</el-button>
     </div>
     <!-- 按钮类型 -->
     <el-button v-else type="primary" size="small" @click="dialogUploadVisible = true" icon="el-icon-upload">上 传</el-button>

+ 18 - 0
src/store/index.js

@@ -209,6 +209,24 @@ export default new Vuex.Store({
     },
     DrawerShowChange ({commit},bool) {
       commit('DrawerShowChange',bool)
+    },
+
+    //数据绑定附件媒体
+    bindFileToData ({commit},data) {
+      return new Promise(async (reslove,reject)=>{
+        let obj = {
+          "classname": "system.attachment.Attachment",
+          "method": "createFileLink",
+          "content": {
+            "ownertable": data.ownertable,
+            "ownerid": data.ownerid,
+            "usetype": data.usetype,
+            "attachmentids": data.attachmentids
+          }
+        }
+        const res = await api.requested(obj)
+        reslove(res)
+      })
     }
   },
   modules: {

+ 2 - 2
src/views/login/login.vue

@@ -3,8 +3,8 @@
     <div class="login-wrap">
       <div>
         <div class="logo">
-          <span>YOS后端管理平台</span><br>
-          <small>YOS-MANAGE-SYSTEM</small>
+          <span> 营销管理平台</span><br>
+          <small>SALE-MANAGE-SYSTEM</small>
         </div>
         <div class="login-form">
           <h4 class="title">登录</h4>