浏览代码

fix(bugs): 修改下午问题

tangning 3 年之前
父节点
当前提交
935a360ece

+ 1 - 1
src/api/scene/live.ts

@@ -59,7 +59,7 @@ export const bindAnchorListApi = (params: bindAnchorListParam) =>
       ignoreCancelToken: true,
     },
   });
-export const bindUserApi = (params: bindAnchorListParam[]) =>
+export const bindUserApi = (params: any) =>
   defHttp.post<RentListGetResultModel>({
     url: Api.bindUser,
     params: params,

+ 1 - 1
src/components/Upload/src/BasicUpload.vue

@@ -11,7 +11,7 @@
             {{ fileList.length }}
           </template>
         </template>
-        <a-button @click="openPreviewModal">
+        <a-button :disabled="fileList && !fileList.length" @click="openPreviewModal">
           <Icon icon="bi:eye" /> 预览
           <template v-if="fileList.length && showPreviewNumber">
             {{ fileList.length }}

+ 22 - 0
src/utils/cascaderData.ts

@@ -6034,3 +6034,25 @@ export const data = [
     ],
   },
 ];
+export const getCode = (location: string[]) => {
+  // data.find()
+  console.log('location', location);
+  const Address = [];
+  let cityData = {},
+    districtData = {};
+  const provinceData = codeNum();
+  Address.push(provinceData.code);
+  if (provinceData.children) {
+    cityData = codeNum(provinceData.children);
+    Address.push(cityData.code);
+  }
+  console.log('provinceData', provinceData);
+  if (provinceData) {
+    districtData = codeNum(cityData.children);
+    Address.push(districtData.code);
+  }
+  function codeNum(codeLIst = data) {
+    return codeLIst.find((item) => location.includes(item.name));
+  }
+  return Address;
+};

+ 5 - 0
src/views/advertisement/list.vue

@@ -67,6 +67,11 @@
           width: 230,
         },
         {
+          title: '排序',
+          dataIndex: 'orderNum',
+          width: 100,
+        },
+        {
           title: '编辑时间',
           dataIndex: 'createTime',
           slots: { customRender: 'time' },

+ 1 - 1
src/views/advertisement/pads.vue

@@ -5,7 +5,7 @@
         <a-button type="primary" @click="handleCreate">新增</a-button>
       </template>
       <template #img="{ record }">
-        <TableImg :size="200" :simpleShow="true" :imgList="[record.image]" />
+        <TableImg :size="90" :simpleShow="true" :imgList="[record.image]" />
       </template>
       <template #action="{ record }">
         <TableAction

+ 39 - 38
src/views/advertisement/schemas.ts

@@ -1,7 +1,7 @@
 import { FormSchema } from '/@/components/Form';
 // import { uploadApi } from '/@/api/sys/upload';
-import { Tinymce } from '/@/components/Tinymce/index';
-import { h } from 'vue';
+// import { Tinymce } from '/@/components/Tinymce/index';
+// import { h } from 'vue';
 import { uploadApi } from '/@/api/advertisement/list';
 import { BrandListApi } from '/@/api/order/list';
 
@@ -80,6 +80,27 @@ export const padsSchemas: FormSchema[] = [
 ];
 export const schemas: FormSchema[] = [
   {
+    field: 'image',
+    component: 'Upload',
+    label: '封面图',
+    rules: [{ required: true, message: '请选择上传文件' }],
+    itemProps: {
+      validateTrigger: 'blur',
+    },
+    componentProps: {
+      api: uploadApi,
+      maxNumber: 1,
+      afterFetch(data) {
+        // console.log('afterFetch1', data);
+        // const covertData = [data.message];
+        Reflect.set(data, 'url', data.message);
+        // console.log('afterFetch2', data);
+        return data;
+      },
+    },
+    required: true,
+  },
+  {
     field: 'title',
     component: 'Input',
     label: '正文标题',
@@ -109,40 +130,20 @@ export const schemas: FormSchema[] = [
   //     placeholder: '链接',
   //   },
   // },
-  {
-    field: 'image',
-    component: 'Upload',
-    label: '封面图',
-    rules: [{ required: true, message: '请选择上传文件' }],
-    itemProps: {
-      validateTrigger: 'blur',
-    },
-    componentProps: {
-      api: uploadApi,
-      maxNumber: 1,
-      afterFetch(data) {
-        // console.log('afterFetch1', data);
-        // const covertData = [data.message];
-        Reflect.set(data, 'url', data.message);
-        // console.log('afterFetch2', data);
-        return data;
-      },
-    },
-    required: true,
-  },
-  {
-    field: 'content',
-    component: 'Input',
-    label: '正文内容',
-    defaultValue: '',
-    rules: [{ required: true }],
-    render: ({ model, field }) => {
-      return h(Tinymce, {
-        value: model[field],
-        onChange: (value: string) => {
-          model[field] = value;
-        },
-      });
-    },
-  },
+
+  // {
+  //   field: 'content',
+  //   component: 'Input',
+  //   label: '正文内容',
+  //   defaultValue: '',
+  //   rules: [{ required: true }],
+  //   render: ({ model, field }) => {
+  //     return h(Tinymce, {
+  //       value: model[field],
+  //       onChange: (value: string) => {
+  //         model[field] = value;
+  //       },
+  //     });
+  //   },
+  // },
 ];

+ 0 - 2
src/views/devices/AddModal.vue

@@ -119,13 +119,11 @@
           colProps: {
             span: 24,
           },
-          required: true,
         },
         {
           field: 'companyId',
           component: 'ApiSelect',
           label: t('routes.devices.companyId'),
-          required: true,
           itemProps: {
             validateTrigger: 'blur',
           },

+ 1 - 1
src/views/devices/list.vue

@@ -79,7 +79,7 @@
           title: t('routes.devices.childName'),
           dataIndex: 'childName',
           fixed: 'left',
-          width: 100,
+          width: 220,
         },
         {
           title: t('routes.devices.phoneName'),

+ 1 - 1
src/views/product/drawer.data.ts

@@ -42,7 +42,7 @@ export const formSchema: FormSchema[] = [
     component: 'Input',
     required: true,
     componentProps: {
-      maxLength: 25,
+      maxLength: 15,
     },
   },
   // {

+ 0 - 4
src/views/product/goodsSpecs.vue

@@ -344,10 +344,6 @@
               uuid: `${index}-${element}`,
             });
             productList.push({
-              goodsNumber: '',
-              goodsSn: '',
-              marketPrice: '',
-              retailPrice: '',
               uuidLink: `${index}_${element}`,
             });
           });

+ 24 - 8
src/views/product/productDrawer.vue

@@ -15,7 +15,7 @@
       <template #detailed>
         <table class="detailed">
           <thead>
-            <tr style="">
+            <tr style="" v-show="editData.productList.length > 0">
               <th style="min-width: 60px">{{ editData.categoryName }}</th>
               <th>库存</th>
               <th>规格编码</th>
@@ -187,29 +187,45 @@
         resetFields();
         setDrawerProps({ confirmLoading: false });
         isUpdate.value = !!data?.isUpdate;
-        console.log('setFieldsValue', data.record);
+        editData.value = {
+          categoryName: '',
+          productList: [],
+          id: 0,
+        };
         if (unref(isUpdate)) {
           let res = await InfoApi(data.record.id);
           editData.value = res;
-          console.log('setFieldsValueres', res);
           setFieldsValue({
             ...res,
             isOnSale: res.isOnSale === 1,
-            listPicUrl: [encodeURI(res.listPicUrl.split('?')[0])],
-            primaryPicUrl: [encodeURI(res.primaryPicUrl.split('?')[0])],
+            listPicUrl:
+              res.listPicUrl && res.listPicUrl.split('#$#').map((ele) => ele.split('?')[0]),
+            primaryPicUrl: res.primaryPicUrl && [encodeURI(res.primaryPicUrl.split('?')[0])],
             steamRoom: data.record?.steamRoom?.name,
           });
         }
       });
       function setEditData(value) {
+        let productList = editData.value.productList || [];
+        value.productList.map((ele) => {
+          if (!productList.some((element) => ele.uuidLink == element.uuidLink)) {
+            productList.push({
+              uuidLink: ele.uuidLink,
+              goodsNumber: '',
+              goodsSn: '',
+              marketPrice: '',
+              retailPrice: '',
+            });
+          }
+        });
         editData.value = {
           ...editData.value,
           ...value,
+          productList,
         };
         setFieldsValue({
-          productList: value.productList,
+          productList: productList,
         });
-        console.log('setEditData', value);
       }
       const getTitle = computed(() => (!unref(isUpdate) ? '新增商品' : '编辑商品'));
 
@@ -231,7 +247,7 @@
           let subData = await requresApi({
             ...apiData,
             primaryPicUrl: apiData.primaryPicUrl[0],
-            listPicUrl: apiData.listPicUrl[0],
+            listPicUrl: apiData.listPicUrl.join('#$#'),
           });
           console.log('setFieldsValue', subData);
           setDrawerProps({ confirmLoading: true });

+ 1 - 0
src/views/product/ref.vue

@@ -84,6 +84,7 @@
         // rowSelection: { type: 'checkbox' },
         rowKey: 'id',
         bordered: true,
+        showIndexColumn: true,
         fetchSetting: {
           pageField: 'page',
           sizeField: 'limit',

+ 11 - 8
src/views/scenes/bindModal.vue

@@ -130,11 +130,11 @@
         registerTable,
         {
           reload,
-          // getSelectRows,
+          getSelectRows,
           getSelectRowKeys,
           clearSelectedRowKeys,
           setSelectedRowKeys,
-          getRawDataSource,
+          // getRawDataSource,
         },
       ] = useTable({
         title: t('routes.scenes.anchorList'),
@@ -181,10 +181,10 @@
       }
       const handleSubmit = async () => {
         try {
-          const rows = getSelectRowKeys();
-          const rawData = getRawDataSource();
+          const rows = getSelectRows();
+          // const rawData = getRawDataSource();
           let paramsRow: bindAnchorListParam[];
-          console.log('rawData', rawData, 'rows', rows, rows?.length);
+          console.log('rawData', 'rows', rows, rows?.length);
           // if (rows?.length > 0) {
           //   paramsRow = rows.map((row) => {
           //     return {
@@ -197,16 +197,19 @@
           //   await bindUserApi(paramsRow);
           //   createMessage.success(t('common.optSuccess'));
           // } else {
-          paramsRow = rawData.list.map((item) => {
+          paramsRow = rows.map((item) => {
             let param: bindAnchorListParam = {};
             param.canShow = item.canShow ? 1 : 0;
-            param.type = rows.includes(item.id) ? 1 : -1;
+            param.type = 1;
             param.brandId = searchInfo.brandId;
             param.userId = String(item.id);
             return param;
           });
           console.log('paramsRow', paramsRow);
-          await bindUserApi(paramsRow);
+          await bindUserApi({
+            brandList: paramsRow,
+            brandId: searchInfo.brandId,
+          });
           createMessage.success(t('common.optSuccess'));
           // }
           closeModal();

+ 1 - 0
src/views/scenes/editorModal.vue

@@ -118,6 +118,7 @@
         setFieldsValue({
           ...data,
           sceneNum: data.num,
+          picList: [data.appListPicUrl],
         });
         // 方式1;
       }

+ 11 - 9
src/views/scenes/list.vue

@@ -68,7 +68,7 @@
   // import { h } from 'vue';
   import {
     ListApi,
-    generateSceneEditTokenApi,
+    // generateSceneEditTokenApi,
     downloadSceneDataAPi,
     generateDefaultLiveRoomApi,
   } from '/@/api/scene/list';
@@ -91,7 +91,8 @@
       const [registerDownloadModal, { openModal: openDownloadModal }] = useModal();
       const [registerEditorModal, { openModal: openEditorModal }] = useModal();
       const { t } = useI18n();
-
+      const userStore = useUserStore();
+      const { getCheckRole } = userStore;
       const columns: BasicColumn[] = [
         {
           title: 'ID',
@@ -166,6 +167,7 @@
           title: t('common.operation'),
           dataIndex: '',
           slots: { customRender: 'action' },
+          ifShow: !getCheckRole('tourist'),
           width: 330,
           fixed: 'right',
         },
@@ -237,13 +239,13 @@
       });
       async function openSceneEditor(record: Recordable) {
         try {
-          const url = record.webSite.replace('smobile', 'epc') + '&menu=business&token=';
-          const userStore = useUserStore();
-          const data = await generateSceneEditTokenApi({
-            sceneNum: record.num,
-            userName: userStore.getUserInfo?.userName,
-          });
-          window.open(url + data);
+          const url = record.webSite.replace('smobile', 'epc') + '&menu=business';
+          // const userStore = useUserStore();
+          // const data = await generateSceneEditTokenApi({
+          //   sceneNum: record.num,
+          //   userName: userStore.getUserInfo?.userName,
+          // });
+          window.open(url);
         } catch (error) {
           console.log('error', error);
         }

+ 7 - 7
src/views/scenes/liveDrawer.vue

@@ -45,6 +45,7 @@
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { useUserStore } from '/@/store/modules/user';
+  import { data as CascaderData, getCode } from '/@/utils/cascaderData';
 
   import {
     brandTypeListApi,
@@ -56,7 +57,6 @@
     brandUpdateApi,
     // LiveSceneDeleteApi,
   } from '/@/api/scene/live';
-  import { data as CascaderData } from '/@/utils/cascaderData';
 
   import { useScript } from '/@/hooks/web/useScript';
   const A_MAP_URL = 'https://webapi.amap.com/maps?v=2.0&key=e661b00bdf2c44cccf71ef6070ef41b8';
@@ -115,7 +115,7 @@
         // address: '权晖花园21栋',
         lng: 120.262337,
         lat: 30.178285,
-        location: ['33', '3301', '330109'],
+        location: ['浙江省', '杭州市', '滨江区'],
         province: '浙江省',
         city: '杭州市',
         district: '萧山区',
@@ -231,8 +231,9 @@
             isLeaf: (record) => {
               return !(record.levelType < 3);
             },
-            onChange: (data) => {
+            onChange: (data, a, b, c, d, e, f) => {
               try {
+                console.log('data', data, 'a,b,c', a, b, c, d, e, f);
                 let location: string[] = data;
                 // [a,b,c].map(ele => {
                 //   return ele && ele.code
@@ -490,15 +491,14 @@
       const getTitle = computed(() => (!unref(isUpdate) ? '新增直播间' : '编辑直播间'));
 
       async function handleMapSearch() {
+        console.log('detailAddr', detailAddr.value, defaultAddress);
         if (detailAddr.value?.length > 0) {
+          let searchCity = getCode(defaultAddress.location);
           const AMap = (window as any).AMap;
           AMap.plugin('AMap.Geocoder', function () {
             const geocoder = new AMap.Geocoder({
               // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
-              city:
-                defaultAddress.location[2] ||
-                defaultAddress.location[1] ||
-                defaultAddress.location[0],
+              city: searchCity[2] || searchCity[1] || searchCity[0],
               // adcode: defaultAddress.location[2],
               // citycode: '0571',
             });

+ 20 - 2
src/views/staff/detailsModal.vue

@@ -76,13 +76,31 @@
           field: 'nickName',
           component: 'Input',
           label: '员工名称',
-          required: true,
           colProps: {
             span: 22,
           },
           componentProps: {
-            maxLength: 25,
+            maxLength: 15,
           },
+          rules: [
+            {
+              required: true,
+              // @ts-ignore
+              validator: async (rule, value) => {
+                var reg_tel = /^[a-zA-Z0-9\u4e00-\u9fa5()]+$/;
+                // var reg = /\S+@\S+\.\S+/;
+                if (!value) {
+                  return Promise.reject('请输入员工名称');
+                }
+                if (!reg_tel.test(value)) {
+                  /* eslint-disable-next-line */
+                  return Promise.reject('请输入正确的员工名称');
+                }
+                return Promise.resolve();
+              },
+              trigger: 'change',
+            },
+          ],
         },
         {
           field: 'companyId',