zhangqi 1 år sedan
förälder
incheckning
b28fea604c
31 ändrade filer med 169 tillägg och 45 borttagningar
  1. 2 1
      src/DRP/HDrpManagement/agentManage/detail/tabs/ShopManage.vue
  2. 2 1
      src/DRP/HDrpManagement/agentManage/detail/tabs/agentGroup.vue
  3. 2 1
      src/DRP/HDrpManagement/depManage/detail/index.vue
  4. 2 2
      src/MAR/archivesMag/modules/workManage/index.vue
  5. 0 5
      src/MAR/assetsStore/detail/Edit.vue
  6. 1 1
      src/MAR/assetsStore/detail/fileUpload.vue
  7. 7 3
      src/MAR/assetsStore/detail/imgManage.vue
  8. 7 1
      src/MAR/assetsStore/index.vue
  9. 8 0
      src/MAR/commentManage/index.vue
  10. 1 0
      src/MAR/designManage/modules/addImg.vue
  11. 5 1
      src/MAR/effectImgManage/detail/index.vue
  12. 7 1
      src/MAR/effectImgManage/detail/modules/imgManage.vue
  13. 7 1
      src/MAR/effectImgManage/detail/modules/productManage.vue
  14. 13 2
      src/MAR/effectImgManage/index.vue
  15. 3 2
      src/MAR/eventsManage/detail/modules/setOptions.vue
  16. 8 0
      src/MAR/eventsManage/index.vue
  17. 0 5
      src/MAR/extendManage/detail/modules/extendList/Add.vue
  18. 0 5
      src/MAR/extendManage/detail/modules/extendList/Edit.vue
  19. 1 1
      src/MAR/extendManage/detail/modules/extendList/index.vue
  20. 10 2
      src/MAR/imgTextManage/detail/index.vue
  21. 5 1
      src/MAR/imgTextManage/detail/modules/imgManage.vue
  22. 8 0
      src/MAR/imgTextManage/index.vue
  23. 8 1
      src/MAR/itemsManage/index.vue
  24. 7 1
      src/MAR/productManage/index.vue
  25. 1 0
      src/MAR/productManage/modules/Add.vue
  26. 1 0
      src/MAR/productManage/modules/Edit.vue
  27. 3 3
      src/MAR/signManage/modules/Edit.vue
  28. 29 0
      src/components/copyText/index.vue
  29. 13 3
      src/stores/modules/auth.js
  30. 2 0
      src/utils/globalComponent.js
  31. 6 1
      src/utils/utils.js

+ 2 - 1
src/DRP/HDrpManagement/agentManage/detail/tabs/ShopManage.vue

@@ -54,7 +54,7 @@
               <span :style="{color:utils.statusAndColor(data.record.status)}">{{ data.record.status }}</span>
             </template>
             <template v-else-if="data.column.dataIndex == 'qrcord'">
-              <a-qrcode :value="baseUrl+'wechatBind?wechatBindUserid='+data.record.sys_enterprise_hrid+'&userName='+data.record.name" size="100" />
+              <a-qrcode :value="useAuthStore().qrCordBaseUrl+'wechatBind?wechatBindUserid='+data.record.sys_enterprise_hrid+'&userName='+data.record.name" size="100" />
             </template>
             <template v-else>
               {{ data.record[data.column.dataIndex] }}
@@ -72,6 +72,7 @@
 <script setup>
 import normalTable from '@/template/normalTable/index.vue'
 import SelectModel from '@/components/selectModel/index2.vue'
+import { useAuthStore } from '@/stores/modules/auth.js'
 import Api from '@/api/api'
 import utils from '@/utils/utils'
 

+ 2 - 1
src/DRP/HDrpManagement/agentManage/detail/tabs/agentGroup.vue

@@ -3,7 +3,7 @@
    <a-table :dataSource="dataSource" :columns="utils.TBLayout('agentGrouptable')" size="small" bordered>
     <template #bodyCell="{ column, record }">
       <template v-if="column.dataIndex == 'qrcord'">
-        <a-qrcode :value="baseUrl+'wechatBind?wechatBindUserid='+record.sys_enterprise_hrid+'&userName='+record.name" size="100" />
+        <a-qrcode :value="useAuthStore().qrCordBaseUrl+'wechatBind?wechatBindUserid='+record.sys_enterprise_hrid+'&userName='+record.name" size="100" />
       </template>
       <template v-else>{{ record[column.dataIndex] }}</template>
     </template>
@@ -15,6 +15,7 @@ import Api from '@/api/api'
 import utils from '@/utils/utils'
 import {ref,defineProps,createVNode, defineComponent,defineEmits, inject} from 'vue'
 import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
+import { useAuthStore } from '@/stores/modules/auth.js'
 import { Modal } from 'ant-design-vue';
 let baseUrl = inject('baseUrl')
 const props = defineProps(['enterpriseid','dataSource'])

+ 2 - 1
src/DRP/HDrpManagement/depManage/detail/index.vue

@@ -5,7 +5,7 @@
         <a-popover trigger="click">
           <template #content>
             <div class="code">
-              <a-qrcode :value="`https://www.jiushengboard.cc/BindSalesman?hrid=${userData.hrid}&username=${userData.name}`" />
+              <a-qrcode :value="`${useAuthStore().qrCordBaseUrl}BindSalesman?hrid=${userData.hrid}&username=${userData.name}`" />
               <div class="descript">微信扫码绑定账号</div>
             </div>
           </template>
@@ -30,6 +30,7 @@ import detailTemplate from '@/components/detailTemplate/index.vue'
 import edit from './modules/edit.vue'
 import ceateAccount from './modules/ceateAccount.vue'
 import bindUserToAccount from './modules/bindUserToAccount.vue'
+import { useAuthStore } from '@/stores/modules/auth.js'
 import { useRouter } from "vue-router";
 import { onMounted,ref } from "vue";
 const router = useRouter()

+ 2 - 2
src/MAR/archivesMag/modules/workManage/index.vue

@@ -53,12 +53,12 @@
           />
           <SelectModel 
             ref="selectWork" 
-            :is-select="false"
+            :isSelect="false"
             @selectRowData="$event => {}" 
             rowKey="sat_coursewareid" 
             :param="{id:20240321093102,content:{pageNumber:1,pageSize:20,where:{}}}" 
             :columns="utils.TBLayout('selectWorkTable')" title="转移课件"
-            v-if="utils.hasPermission('workEdit') && rowData.status == '新建' && data.record.status == '下架'"
+            v-if="utils.hasPermission('workEdit') && rowData.status == '新建'"
           >
             <template #slot1>
               <a-button size="middle" type="link" @click="$refs.selectWork.modeVisible=true;currentWork=data.record">转移课件</a-button>

+ 0 - 5
src/MAR/assetsStore/detail/Edit.vue

@@ -26,11 +26,6 @@
               ></Upload>
             </a-form-item>
           </a-col>
-          <a-col :span="24">
-            <a-form-item label="排序" name="sequence">
-              <a-input v-model:value="form.sequence"></a-input>
-            </a-form-item>
-          </a-col>
         </a-row>
       </a-form>
       <template #footer>

+ 1 - 1
src/MAR/assetsStore/detail/fileUpload.vue

@@ -193,7 +193,6 @@ const createFileRecord = async (obsfilename)=> {
     callback.value && callback.value()
     console.log('上传完成触发');
     emit('uploadOver')
-    currentIndex.value = 0
   }
   if (Object.keys(props.bindData).length) {
     let data = JSON.parse(res.attinfos)
@@ -273,6 +272,7 @@ const querySite_Parameter = async ()=> {
 
 let refresh = () => {
   fileList.value = []
+  currentIndex.value = 0
 }
 
 onMounted(() => {

+ 7 - 3
src/MAR/assetsStore/detail/imgManage.vue

@@ -7,7 +7,7 @@
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex === 'attinfos'">
           <a-image v-if="props.rowData.type == 1 && data.record.attinfos.length" :src="data.record.attinfos[0].url" style="width:100px;height: 100px;"></a-image>
-          <video :src="data.record.attinfos[0].url" controls v-else-if="data.record.attinfos.length" style="width:100px;height: 100px;"></video>
+          <video :src="data.record.attinfos[0].cover" :preview="{src:data.record.attinfos[0].url}" controls v-else-if="data.record.attinfos.length" style="width:100px;height: 100px;"></video>
         </template>
         <template v-else-if="data.column.dataIndex == 'operation'">
           <Edit class="inline-16" @onSuccess="$refs.table.listData()" :rowData="data.record" :detail="props.rowData" v-if="utils.hasPermission('fileManage') && rowData.status == '新建'"></Edit>
@@ -28,7 +28,7 @@
     <normalTable :sequence="true" v-else @listData="handleData" rowKey="sys_attachment_linksid" sequenceKey="linksid" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('imgManageTable1')" :param="param">
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex === 'attinfos'">
-          <a-image v-if="props.rowData.type == 1 && data.record.attinfos.length" :src="data.record.attinfos[0].url" width="100px" height="100px"></a-image>
+          <a-image v-if="props.rowData.type == 1 && data.record.attinfos.length" :src="data.record.attinfos[0].cover" :preview="{src:data.record.attinfos[0].url}" width="100px" height="100px"></a-image>
           <video :src="data.record.attinfos[0].url" controls v-else-if="data.record.attinfos.length" style="width:100px;height: 100px"></video>
         </template>
         <template v-else-if="data.column.dataIndex == 'operation'">
@@ -87,8 +87,12 @@ const search = () => {
 const handleData = (data) => {
   data.forEach(item => {
     item.attinfos = utils.fileList(item.attinfos)
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
   })
-  console.log(data,'数据');
+  console.log(data,'数据11');
 }
 
 </script>

+ 7 - 1
src/MAR/assetsStore/index.vue

@@ -9,7 +9,7 @@
         {{ data.record.type == 1?'图片':'视频' }}
       </template>
       <template v-if="data.column.dataIndex === 'attinfos'">
-        <a-image style="width:100px;height: 100px" :src="data.record.attinfos.filter(item => item.usetype=='avatar')[0].url" v-if="data.record.attinfos.filter(item => item.usetype=='avatar').length"></a-image>
+        <a-image style="width:100px;height: 100px" :src="data.record.attinfos.filter(item => item.usetype=='avatar')[0].cover" :preview="{src:data.record.attinfos.filter(item => item.usetype=='avatar')[0].url}" v-if="data.record.attinfos.filter(item => item.usetype=='avatar').length"></a-image>
       </template>
       <template v-else-if="data.column.dataIndex === 'readcount'">
         <useHistory :rowData="data.record" type="0"></useHistory>
@@ -70,6 +70,12 @@ let param = ref({
 const handleData = (data) => {
   let initID = useAuthStore().nowAccount.userid+'999'
   let deleteList = [];
+  data.data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
   data.data.forEach(v => (initID == v.sat_sharematerial_classids[0][0] && v.title == '') ? deleteList.push(v.sat_sharematerialid) : '')
   if (deleteList.length != 0) {
     Api.requested({

+ 8 - 0
src/MAR/commentManage/index.vue

@@ -9,6 +9,14 @@
             新消息
           </div>
         </template>
+        <div v-else-if="data.column.dataIndex === 'remarks'">
+          <a-tooltip>
+            <template #title>{{ data.record.remarks }}</template>
+            <div style="max-width: 200px;">{{ data.record.remarks }}</div>
+            
+          </a-tooltip>
+          
+        </div>
       </template>
     </listTemp>
 

+ 1 - 0
src/MAR/designManage/modules/addImg.vue

@@ -105,6 +105,7 @@ const submit = async () => {
 const uploadSuccess = async (res) => {
   form.value.attinfos = [JSON.parse(res.attinfos).data[0]]
   attachmentids.value.push(...res.data.attachmentids)
+  console.log();
 }
 
 onMounted(() => {

+ 5 - 1
src/MAR/effectImgManage/detail/index.vue

@@ -59,6 +59,10 @@
           <template #封面图>
             <a-image v-if="mainData.attinfos && mainData.attinfos.filter(item => item.usetype == 'sat_sharematerial').length" :src="mainData.attinfos.filter(item => item.usetype == 'sat_sharematerial')[0].url" style="width:100px;height: 100px;"></a-image>
           </template>
+          <template #小程序链接>
+            <span>{{ mainData.appleturl }}</span>
+            <CopyText :text="mainData.appleturl"></CopyText>
+          </template>
         </defaultInfo>
         <span class="normal-title" style="margin: 10px 0">系统信息</span>
         <defaultInfo :data="systemInfo"></defaultInfo>
@@ -110,7 +114,7 @@ const mianData = async ()=>{
     {label:'实际浏览量',value:mainData.value.readcount},
     {label:'排序',value:mainData.value.sequence},
     {label:'推荐',value:`${mainData.value.isapplet?'小程序首页推广、':''}${mainData.value.isbussinesspic?'招商精选美图':''}`},
-    {label:'小程序链接',value:mainData.value.appleturl},
+    {label:'小程序链接',value:'custom'},
     {label:'封面图',value:'custom'},
   ]
   systemInfo.value = [

+ 7 - 1
src/MAR/effectImgManage/detail/modules/imgManage.vue

@@ -6,7 +6,7 @@
     <normalTable :sequence="true" @listData="handleData" rowKey="sys_attachment_linksid" sequenceKey="linksid" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('imgManageTable')" :param="param">
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex === 'attinfos'">
-          <a-image v-if="data.record.attinfos.length" :src="data.record.attinfos[0].url" style="width:100px;height: 100px;"></a-image>
+          <a-image v-if="data.record.attinfos.length" :src="data.record.attinfos[0].cover" :preview="{src:data.record.attinfos[0].url}" style="width:100px;height: 100px;"></a-image>
         </template>
         <template v-else-if="data.column.dataIndex == 'operation'">
           <!-- <Edit class="inline-16" @onSuccess="$refs.table.listData()" :rowData="data.record" v-if="utils.hasPermission('imgManage') && rowData.status == '新建'"></Edit> -->
@@ -62,6 +62,12 @@ const search = () => {
 
 //是否需要删除空数据
 const handleData = (data) => {
+  data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
   let initID = useAuthStore().nowAccount.userid+'9999';
   let deleteList = [];
   data.forEach(v => {

+ 7 - 1
src/MAR/effectImgManage/detail/modules/productManage.vue

@@ -47,7 +47,7 @@
     <normalTable @listData="handleData" rowKey="sat_sharematerialid" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('productList')" :param="param">
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex === 'attinfos'">
-          <a-image v-if="data.record.attinfos.length" :src=" data.record.attinfos[0].url" style="width:100px"></a-image>
+          <a-image v-if="data.record.attinfos.length" :src="data.record.attinfos[0].cover" :preview="{src:data.record.attinfos[0].url}" style="width:100px;height: 100px;"></a-image>
         </template>
         <template v-else-if="data.column.dataIndex == 'operation'">
           <CustomButton
@@ -147,6 +147,12 @@ const handleDelApi = (delApi,data) =>  {
 let productTotal = ref(0)
 //是否需要删除空数据
 const handleData = (data,total) => {
+  data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
   productTotal.value = total
 }
 

+ 13 - 2
src/MAR/effectImgManage/index.vue

@@ -5,10 +5,15 @@
     </template>
     <template #tb_cell="{data}">
       <template v-if="data.column.dataIndex === 'attinfos'">
-        <a-image :src="data.record.attinfos.filter(item => item.usetype=='sat_sharematerial')[0].url" v-if="data.record.attinfos.filter(item => item.usetype=='sat_sharematerial').length" style="width:100px;height: 100px"></a-image>
+        <a-image :src="data.record.attinfos.filter(item => item.usetype=='sat_sharematerial')[0].cover" :preview="{src:data.record.attinfos.filter(item => item.usetype=='sat_sharematerial')[0].url}" v-if="data.record.attinfos.filter(item => item.usetype=='sat_sharematerial').length" style="width:100px;height: 100px"></a-image>
         
       </template>
-      <template v-if="data.column.dataIndex === 'ispanorama'">
+      <div v-else-if="data.column.dataIndex == 'appleturl'">
+        <span>{{ data.record.appleturl }}</span>
+        <CopyText :text="data.record.appleturl"></CopyText>
+      </div>
+      
+      <template v-else-if="data.column.dataIndex === 'ispanorama'">
         {{ data.record.ispanorama?'是':'否' }}
       </template>
     </template>
@@ -62,6 +67,12 @@ let param = ref({
 
 //是否需要删除空数据
 const handleData = (data) => {
+  data.data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
   let initID = useAuthStore().nowAccount.userid+'99999'
   let deleteList = [];
   data.data.forEach(v => (initID == v.sequence && v.title == '') ? deleteList.push(v.sat_sharematerialid) : '')

+ 3 - 2
src/MAR/eventsManage/detail/modules/setOptions.vue

@@ -19,7 +19,7 @@
       <Add class="inline-16" @onSuccess="$refs.table.listData()" :rowData="props.rowData" v-if="props.rowData && rowData.isonsale == 0 && utils.hasPermission('setoption')"></Add>
       <SelectModel 
         ref="selectOpton" 
-        :is-select="false"
+        :isSelect="false"
         rowKey="createuserid" 
         :param="optionParam" 
         :columns="utils.TBLayout('resultList')" title="中奖明细"
@@ -46,7 +46,8 @@
           <exportExcel :param="optionParam" type="button" tableName="resultList"></exportExcel>
         </template>
         <template #custom="{data}">
-          <template v-if="data.column.dataIndex == 'price'">{{utils.formatAmount(data.record.price)}}</template>
+          <template v-if="data.column.dataIndex == 'price'">{{data.record.type == '实物'?'--':utils.formatAmount(data.record.price)}}</template>
+          <template v-else-if="data.column.dataIndex == 'address'">{{data.record.province}}{{data.record.county}}{{data.record.city}}{{ data.record.address }}</template>
           <template v-else>{{ data.record[data.column.dataIndex] }}</template>
         </template>
         <template #footer>

+ 8 - 0
src/MAR/eventsManage/index.vue

@@ -7,6 +7,14 @@
       <template v-if="data.column.dataIndex === 'isonsale'">
         <span :style="{color:utils.statusAndColor(data.record.isonsale?'上架':'下架')}">{{ data.record.isonsale?'上架':'下架' }}</span>
       </template>
+      <div v-else-if="data.column.dataIndex == 'shareurl'">
+          <span>{{ data.record.shareurl }}</span>
+          <CopyText :text="data.record.shareurl"></CopyText>
+      </div>
+      <div v-else-if="data.column.dataIndex == 'noshareurl'">
+        <span>{{ data.record.noshareurl }}</span>
+        <CopyText :text="data.record.noshareurl"></CopyText>
+      </div>
     </template>
   </listTemp>
 

+ 0 - 5
src/MAR/extendManage/detail/modules/extendList/Add.vue

@@ -20,11 +20,6 @@
                         <a-input v-model:value="form.title"></a-input>
                       </a-form-item>
                     </a-col>
-                    <a-col :span="24">
-                      <a-form-item label="排序" name="sequence">
-                        <a-input v-model:value="form.sequence"></a-input>
-                      </a-form-item>
-                    </a-col>
                     <a-col :span="24">
                       <a-form-item label="跳转地址" name="hyperlink">
                         <a-input v-model:value="form.hyperlink"></a-input>

+ 0 - 5
src/MAR/extendManage/detail/modules/extendList/Edit.vue

@@ -20,11 +20,6 @@
                         <a-input v-model:value="form.title"></a-input>
                       </a-form-item>
                     </a-col>
-                    <a-col :span="24">
-                      <a-form-item label="排序" name="sequence">
-                        <a-input v-model:value="form.sequence"></a-input>
-                      </a-form-item>
-                    </a-col>
                     <a-col :span="24">
                       <a-form-item label="跳转地址" name="hyperlink">
                         <a-input v-model:value="form.hyperlink"></a-input>

+ 1 - 1
src/MAR/extendManage/detail/modules/extendList/index.vue

@@ -13,7 +13,7 @@
       <a-input style="width: 150px" class="inline-16" v-model:value="param.content.where.condition" @keyup.enter="search"  placeholder="请输入搜索内容" autocomplete="off"></a-input>
       <Add class="inline-16" :rowData="props.rowData" @back="$refs.table.listData()"></Add>
     </div>
-    <normalTable @listData="handleData" rowKey="sys_adid" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('extendimgTable')" :param="param">
+    <normalTable :sequence="true" @listData="handleData" rowKey="sys_adid" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('extendimgTable')" :param="param">
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex == 'status'">
           <span :style="data.record.isused ==0 ? 'color:red' : 'color:#646cff'">{{ data.record.status}}</span>

+ 10 - 2
src/MAR/imgTextManage/detail/index.vue

@@ -64,6 +64,14 @@
           <template #封面图>
             <a-image :src="mainData.attinfos.filter(item => item.usetype == 'avatar').length ? mainData.attinfos.filter(item => item.usetype == 'avatar')[0].url : ''" style="width:100px"></a-image>
           </template>
+          <template #可分享地址>
+            <span>{{ mainData.shareurl }}</span>
+            <CopyText :text="mainData.shareurl"></CopyText>
+          </template>
+          <template #不可分享地址>
+            <span>{{ mainData.noshareurl }}</span>
+            <CopyText :text="mainData.noshareurl"></CopyText>
+          </template>
         </defaultInfo>
         <span class="normal-title" style="margin: 10px 0">系统信息</span>
         <defaultInfo :data="systemInfo"></defaultInfo>
@@ -113,8 +121,8 @@ const mianData = async ()=>{
     {label:'状态',value:mainData.value.status},
     {label:'底部样式',value:mainData.value.sharepagecontrol.style_bottom},
     {label:'分类',value:mainData.value.sharepagecontrol.style_signup},
-    {label:'可分享地址',value:mainData.value.shareurl},
-    {label:'不可分享地址',value:mainData.value.noshareurl},
+    {label:'可分享地址',value:'custom',},
+    {label:'不可分享地址',value:'custom'},
     {label:'封面图',value:'custom'},
   ]
   systemInfo.value = [

+ 5 - 1
src/MAR/imgTextManage/detail/modules/imgManage.vue

@@ -6,7 +6,7 @@
     <normalTable @listData="handleData" rowKey="sys_attachment_linksid" sequenceKey="linksid" :sequence="true" :is-select="false" ref="table" size="small" :columns="utils.TBLayout('imgManageTable')" :param="param">
       <template #tb_cell="{data}">
         <template v-if="data.column.dataIndex === 'attinfos'">
-          <a-image v-if="data.record.attinfos.length" :src="data.record.attinfos[0].url" style="width:100px;height: 100px;"></a-image>
+          <a-image v-if="data.record.attinfos.length" :src="data.record.attinfos[0].cover" :preview="{src:data.record.attinfos[0].url}" style="width:100px;height: 100px;"></a-image>
         </template>
         <template v-else-if="data.column.dataIndex == 'operation'">
           <Edit class="inline-16" @onSuccess="$refs.table.listData()" :rowData="data.record" v-if="utils.hasPermission('imgManage') && rowData.status == '新建'"></Edit>
@@ -83,6 +83,10 @@ const handleData = (data) => {
   }
   data.forEach(item => {
     item.attinfos.forEach(item2 => item2.name = item2.document)
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
   })
   console.log(data,'数据');
 }

+ 8 - 0
src/MAR/imgTextManage/index.vue

@@ -10,6 +10,14 @@
       <template v-else-if="data.column.dataIndex == 'style_signup'">
           {{ data.record.sharepagecontrol.style_signup }}
       </template>
+      <div v-else-if="data.column.dataIndex == 'shareurl'">
+          <span>{{ data.record.shareurl }}</span>
+          <CopyText :text="data.record.shareurl"></CopyText>
+      </div>
+      <div v-else-if="data.column.dataIndex == 'noshareurl'">
+        <span>{{ data.record.noshareurl }}</span>
+        <CopyText :text="data.record.noshareurl"></CopyText>
+      </div>
     </template>
   </listTemp>
 

+ 8 - 1
src/MAR/itemsManage/index.vue

@@ -5,7 +5,7 @@
     </template>
     <template #tb_cell="{data}">
       <template v-if="data.column.dataIndex === 'attinfos'">
-        <a-image v-if="data.record.attinfos && data.record.attinfos.filter(item => item.usetype == 'sa_fad').length" :src=" data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].url"  style="width:100px;height: 100px;"></a-image>
+        <a-image v-if="data.record.attinfos && data.record.attinfos.filter(item => item.usetype == 'sa_fad').length" :src=" data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].cover" :preview="{src:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].url}" style="width:100px;height: 100px;"></a-image>
       </template>
       <template v-if="data.column.dataIndex === 'qrcode'">
         <a-popover placement="left">
@@ -69,6 +69,13 @@ let param = ref({
 
 //是否需要删除空数据
 const handleData = (data) => {
+  data.data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
+
   let initID = useAuthStore().nowAccount.userid+'99999'
   let deleteList = [];
   data.data.forEach(v => (initID == v.sequence && v.name == '') ? deleteList.push(v.sa_fadid) : '')

+ 7 - 1
src/MAR/productManage/index.vue

@@ -6,7 +6,7 @@
     </template>
     <template #tb_cell="{data}">
       <template v-if="data.column.dataIndex === 'attinfos'">
-        <a-image v-if="data.record.attinfos && data.record.attinfos.filter(item => item.usetype == 'sa_fad').length" :src=" data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].url" style="width:100px;height: 100px;"></a-image>
+        <a-image v-if="data.record.attinfos && data.record.attinfos.filter(item => item.usetype == 'sa_fad').length" :src=" data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].cover" :preview="{src:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].fileType=='video' ? data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].subfiles[0].url:data.record.attinfos.filter(item => item.usetype == 'sa_fad')[0].url}" style="width:100px;height: 100px;"></a-image>
       </template>
       <template v-if="data.column.dataIndex === 'qrcode'">
         <a-popover placement="left">
@@ -69,6 +69,12 @@ let param = ref({
 
 //是否需要删除空数据
 const handleData = (data) => {
+  data.data.forEach(item => {
+    item.attinfos = item.attinfos.map(v => {
+      v.cover = utils.getSpecifiedImage(v,'compressed')
+      return v
+    })
+  })
   let initID = useAuthStore().nowAccount.userid+'99999'
   let deleteList = [];
   data.data.forEach(v => (initID == v.sequence && v.name == '') ? deleteList.push(v.sa_fadid) : '')

+ 1 - 0
src/MAR/productManage/modules/Add.vue

@@ -256,6 +256,7 @@ let table = ref()
 const submit = async () => {
   const values = await formRef.value.validateFields()
   if (!table.value.data.length)return message.warning('图集至少上传一个!!')
+  if (form.value.contentstr == '<p><br></p>') form.value.contentstr = ''
   const res = await Api.requested({
     "id": "20240418140902",
     "content": form.value

+ 1 - 0
src/MAR/productManage/modules/Edit.vue

@@ -190,6 +190,7 @@ const addClass = async () => {
 //保存
 const submit = async () => {
   const values = await formRef.value.validateFields()
+  if (form.value.contentstr == '<p><br></p>') form.value.contentstr = ''
   const res = await Api.requested({
     "id": "20240418140902",
     "content": form.value

+ 3 - 3
src/MAR/signManage/modules/Edit.vue

@@ -80,7 +80,8 @@
                 <!-- <Upload :multiple="false" ref="upload" :bindData="bindData" accept="image/*,video/*" @fileChange="form.attinfos='1'"></Upload> -->
                 <Upload 
                   :bindData="bindData"
-                  @fileChange="form.attinfos='1'"  
+                  @uploadSuccess="loading=false"
+                  @fileChange="form.attinfos='1';loading=true"  
                   :multiple="true"
                   accept="image/* , video/*"
                   ref="upload"
@@ -145,7 +146,7 @@
     form.value.qrcodecontent = data.record.appleturl
     selectProduct.value.modeVisible = false
   }
-
+  let loading = ref(false)
   let upload = ref()
   let bindData = ref({})
   const showDrawer = async ()=>{
@@ -183,7 +184,6 @@
       }
       utils.message(res,'操作成功',() => {
         open.value = false
-        emit('onSuccess')
         refresh()
         loading.value = false
       })

+ 29 - 0
src/components/copyText/index.vue

@@ -0,0 +1,29 @@
+<template>
+    <div class="copy">
+        <CopyOutlined @click="copy" />
+    </div>
+</template>
+
+<script setup>
+import { CopyOutlined } from '@ant-design/icons-vue';
+import { message } from 'ant-design-vue';
+import {ref,defineProps} from 'vue'
+const props = defineProps(['text'])
+const copy = () => {
+    let input = document.createElement('input')
+    input.value = props.text
+    document.body.appendChild(input)
+    input.select()
+    document.execCommand('copy')
+    message.success('复制成功')
+    document.body.removeChild(input)
+}
+</script>
+
+<style scoped>
+.copy {
+    display: inline;
+    margin-left: 10px;
+    cursor: pointer;
+}
+</style>

+ 13 - 3
src/stores/modules/auth.js

@@ -17,7 +17,8 @@ export const useAuthStore = defineStore('auth', {
       current:[],
       tableConfigs:{},
       hiddenSensitiveFields:false,
-      fieldsParam:{}
+      fieldsParam:{},
+      qrCordBaseUrl:'',//二维码基本地址
     }
   },
   // 开启数据缓存
@@ -26,7 +27,7 @@ export const useAuthStore = defineStore('auth', {
     strategies: [
       {
         storage: localStorage,
-        paths: ['system', 'mods','app','accountList','nowAccount','actSystem','current','tableConfigs','hiddenSensitiveFields']
+        paths: ['system', 'mods','app','accountList','nowAccount','actSystem','current','tableConfigs','hiddenSensitiveFields','qrCordBaseUrl']
       }
     ]
   },
@@ -127,7 +128,16 @@ export const useAuthStore = defineStore('auth', {
      * 设置默认账号
      */
     async defaultAccount (account,fn) {
-
+      switch (account.siteid) {
+        case 'cucu':
+          this.qrCordBaseUrl = 'https://lsa.cnyunl.com/'
+          break;
+        case 'CCYOSG':
+          this.qrCordBaseUrl = 'https://www.jiushengboard.cc/'
+          break;
+        default:
+          break;
+      }
       account ? this.nowAccount = account : this.nowAccount
 
       sessionStorage.setItem('token',this.nowAccount.token)

+ 2 - 0
src/utils/globalComponent.js

@@ -1,7 +1,9 @@
 import CustomButton from '@/components/customHandleBtn/index.vue'
+import CopyText from '@/components/copyText/index.vue'
 //全局注册组件
 const install = (vue) => {
   vue.component('CustomButton',CustomButton)
+  vue.component('CopyText',CopyText)
 }
 
 export default install

+ 6 - 1
src/utils/utils.js

@@ -333,7 +333,12 @@ export default {
     }
     return list;
   },
-
+  //compressed压缩图;thumbnail缩略图,hls转码视频,cover封面
+  getSpecifiedImage (item, type = 'thumbnail') {
+    if (!item) return "";
+    let v = item.subfiles.find(v => v.type == type);
+    return v ? v.url : item.url;
+  },
   /**
  * 
  * @param {接口数组} urls