Selaa lähdekoodia

feat: 修改bug

tangning 2 vuotta sitten
vanhempi
commit
2aa5c94387

+ 5 - 5
src/components/Table/src/types/column.ts

@@ -6,7 +6,7 @@ export interface ColumnFilterItem {
   children?: any;
 }
 
-export declare type SortOrder = 'ascend' | 'descend';
+export declare type SortOrder = 'asc' | 'desc';
 
 export interface RecordProps<T> {
   text: any;
@@ -62,7 +62,7 @@ export interface ColumnProps<T> {
   defaultFilteredValue?: string[];
 
   /**
-   * Default order of sorted values: 'ascend' 'descend' null
+   * Default order of sorted values: 'asc' 'desc' null
    * @type string
    */
   defaultSortOrder?: SortOrder;
@@ -141,14 +141,14 @@ export interface ColumnProps<T> {
   sorter?: boolean | Function;
 
   /**
-   * Order of sorted values: 'ascend' 'descend' false
+   * Order of sorted values: 'asc' 'desc' false
    * @type boolean | string
    */
   sortOrder?: boolean | SortOrder;
 
   /**
-   * supported sort way, could be 'ascend', 'descend'
-   * @default ['ascend', 'descend']
+   * supported sort way, could be 'asc', 'desc'
+   * @default ['asc', 'desc']
    * @type string[]
    */
   sortDirections?: SortOrder[];

+ 1 - 1
src/components/Table/src/types/table.ts

@@ -10,7 +10,7 @@ import { ComponentType } from './componentType';
 import { VueNode } from '/@/utils/propTypes';
 import { RoleEnum } from '/@/enums/roleEnum';
 
-export declare type SortOrder = 'ascend' | 'descend';
+export declare type SortOrder = 'asc' | 'desc';
 
 export interface TableCurrentDataSource<T = Recordable> {
   currentDataSource: T[];

+ 1 - 1
src/views/account/details/OrderList.vue

@@ -43,7 +43,7 @@
               <TableImg style="margin: 0"
                 :size="120"
                 :simpleShow="true"
-                :imgList="[record.goodsPic || 'http://zfb-4dkankan.oss-cn-shenzhen.aliyuncs.com/sceneLogo/1653644220202_3ee8b3c006e74012a82f2b286b2f4914.png']"
+                :imgList="[record.goodsPic]"
               />
             </a-descriptions-item>
           </a-descriptions>

+ 163 - 146
src/views/order/cameraList.vue

@@ -1,158 +1,175 @@
 <template>
-    <BasicTable @register="registerTable" @row-click="handlerowClick" @expand="handleExpanded">
-      <template #toolbar>
-        <a-button type="primary" @click="exportExcel" v-if="getCheckPerm('camera-order-export')"> 导出</a-button>
-      </template>
-      <template #expandedRowRender="{ record }">
-        <div>
-          <a-descriptions title="商品信息" :column="2">
-            <!-- <a-descriptions-item label="商品名称">{{record.shipName}} </a-descriptions-item>
-            <a-descriptions-item label="角色码"> 1234567 </a-descriptions-item> -->
-            <a-descriptions-item label="套餐"> {{record.goodsName}}</a-descriptions-item>
-            <a-descriptions-item label="收件人"> {{record.shipName}} </a-descriptions-item>
-            <a-descriptions-item label="数量"> {{record.goodsCount}} </a-descriptions-item>
-            <a-descriptions-item label="手机号码"> {{record.shipMobile}} </a-descriptions-item>
-            <a-descriptions-item label="商品单价"> {{record.goodsPrice}} </a-descriptions-item>
-            <a-descriptions-item label="地址"> {{record.shipAreaPath}}{{record.shipAddress}} </a-descriptions-item>
-            <a-descriptions-item label="" :span="1">
-              <TableImg style="margin: 0"
+  <BasicTable @register="registerTable" @row-click="handlerowClick" @expand="handleExpanded">
+    <template #toolbar>
+      <a-button type="primary" @click="exportExcel" v-if="getCheckPerm('camera-order-export')">
+        导出</a-button
+      >
+    </template>
+    <template #expandedRowRender="{ record }">
+      <div>
+        <a-descriptions title="订单信息" :column="2">
+          <a-descriptions-item label="下单时间"> {{ record.orderTime }}</a-descriptions-item>
+          <a-descriptions-item label="订单号"> {{ record.orderSn }} </a-descriptions-item>
+          <a-descriptions-item label="用户账号"> {{ record.userName }} </a-descriptions-item>
+          <a-descriptions-item label="订单状态"> {{ record.paymentStatus }} </a-descriptions-item>
+          <a-descriptions-item label="手机号码"> {{ record.shipMobile }} </a-descriptions-item>
+          <a-descriptions-item label="地址">
+            {{ record.shipAreaPath }}{{ record.shipAddress }}
+          </a-descriptions-item>
+          <a-descriptions-item label="收件人"> {{ record.shipName }} </a-descriptions-item>
+        </a-descriptions>
+        <a-descriptions title="商品信息" :column="2">
+          <a-descriptions-item label="" :span="2" v-for="goods in record.itemGoods" :key="goods">
+            <div style="display: flex; align-items: center">
+              <TableImg 
+                style="margin: 0"
                 :size="120"
                 :simpleShow="true"
-                :imgList="[record.goodsPic || 'http://zfb-4dkankan.oss-cn-shenzhen.aliyuncs.com/sceneLogo/1653644220202_3ee8b3c006e74012a82f2b286b2f4914.png']"
+                :imgList="[goods.goodsPic]"
               />
-            </a-descriptions-item>
-          </a-descriptions>
-        </div>
-      </template>
-      <template #bodyCell="{ column, record }">
-        <template v-if="column.key === 'action'">
-          <TableAction
-            stopButtonPropagation
-            :actions="[
-              {
-                label: '删除',
-                //icon: 'ic:outline-delete-outline',
-                onClick: handleDelete.bind(null, record),
-              },
-            ]"
-            :dropDownActions="[
-              {
-                label: '启用',
-                popConfirm: {
-                  title: '是否启用?',
-                  confirm: handleOpen.bind(null, record),
-                },
+              <div style="margin-left: 30px">
+                <p>{{ goods.goodsName }}</p>
+                <p>{{ goods.goodsPrice }}* {{ goods.goodsCount }}</p>
+              </div>
+            </div>
+          </a-descriptions-item>
+        </a-descriptions>
+      </div>
+    </template>
+    <template #bodyCell="{ column, record }">
+      <template v-if="column.key === 'action'">
+        <TableAction
+          stopButtonPropagation
+          :actions="[
+            {
+              label: '删除',
+              //icon: 'ic:outline-delete-outline',
+              onClick: handleDelete.bind(null, record),
+            },
+          ]"
+          :dropDownActions="[
+            {
+              label: '启用',
+              popConfirm: {
+                title: '是否启用?',
+                confirm: handleOpen.bind(null, record),
               },
-            ]"
-          />
-        </template>
+            },
+          ]"
+        />
       </template>
-    </BasicTable>
+    </template>
+  </BasicTable>
 </template>
 <script lang="ts">
-  import { defineComponent, h ,reactive, ref } from 'vue';
-  import { BasicTable, useTable, TableAction, BasicColumn, TableImg, FormProps } from '/@/components/Table';
-  import { PageWrapper } from '/@/components/Page';
-  import { Time } from '/@/components/Time';
-  import { Descriptions } from 'ant-design-vue';
-  import { useI18n } from '/@/hooks/web/useI18n';
-  import { useMessage } from '/@/hooks/web/useMessage';
-  import { Switch } from 'ant-design-vue';
-  import {  downloadByData, } from '/@/utils/file/download';
-  import { CameraList,CameraItem, CameraExport } from '/@/api/order'
-  import { usePermissionStore } from '/@/store/modules/permission';
-  import { cameraColumns,equitySearchForm } from '../account/details/data'
+import { defineComponent, h, reactive, ref } from 'vue';
+import {
+  BasicTable,
+  useTable,
+  TableAction,
+  BasicColumn,
+  TableImg,
+  FormProps,
+} from '/@/components/Table';
+import { PageWrapper } from '/@/components/Page';
+import { Time } from '/@/components/Time';
+import { Descriptions } from 'ant-design-vue';
+import { useI18n } from '/@/hooks/web/useI18n';
+import { useMessage } from '/@/hooks/web/useMessage';
+import { Switch } from 'ant-design-vue';
+import { downloadByData } from '/@/utils/file/download';
+import { CameraList, CameraItem, CameraExport } from '/@/api/order';
+import { usePermissionStore } from '/@/store/modules/permission';
+import { cameraColumns, equitySearchForm } from '../account/details/data';
 
-  export default defineComponent({
-    components: { 
-      BasicTable, 
-      TableAction, 
-      PageWrapper,
-      TableImg,
-      [Descriptions.name]: Descriptions,
-      [Descriptions.Item.name]: Descriptions.Item,
-    },
-    setup() {
-      const { t } = useI18n();
-      const isSearch = ref(false)
-      const { createConfirm } = useMessage();
-      const permissionStore = usePermissionStore();
-      const { getCheckPerm } = permissionStore;
-      const expandedItem = reactive({
-
-      })
-      const [registerTable] = useTable({
-        api: CameraList,
-        title: '相机列表',
-        // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
-        columns: cameraColumns,
-        useSearchForm: true,
-        formConfig: equitySearchForm,
-        showIndexColumn:false,
-        showTableSetting: true,
-        canResize: true,
-        expandRowByClick: true,
-        rowKey: 'id',
-        beforeFetch:(T)=>{
-          const {ctivated,tradeNum,userName,orderSn} = T
-          if(ctivated||tradeNum||userName||orderSn){
-            isSearch.value = true
-          }else{
-            isSearch.value = false
-          }
-          if(T.ctivated){
-            T.startTime = T.ctivated[0]
-            T.endTime = T.ctivated[1]
-          }
-          return T
-        },
-        fetchSetting: {
-          pageField: 'pageNum',
-          sizeField: 'pageSize',
-          listField: 'list',
-          totalField: 'total',
+export default defineComponent({
+  components: {
+    BasicTable,
+    TableAction,
+    PageWrapper,
+    TableImg,
+    [Descriptions.name]: Descriptions,
+    [Descriptions.Item.name]: Descriptions.Item,
+  },
+  setup() {
+    const { t } = useI18n();
+    const isSearch = ref(false);
+    const { createConfirm } = useMessage();
+    const permissionStore = usePermissionStore();
+    const { getCheckPerm } = permissionStore;
+    const expandedItem = reactive({});
+    const [registerTable] = useTable({
+      api: CameraList,
+      title: '相机列表',
+      // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
+      columns: cameraColumns,
+      useSearchForm: true,
+      formConfig: equitySearchForm,
+      showIndexColumn: false,
+      showTableSetting: true,
+      canResize: true,
+      expandRowByClick: true,
+      rowKey: 'id',
+      beforeFetch: (T) => {
+        const { ctivated, tradeNum, userName, orderSn } = T;
+        if (ctivated || tradeNum || userName || orderSn) {
+          isSearch.value = true;
+        } else {
+          isSearch.value = false;
+        }
+        if (T.ctivated) {
+          T.startTime = T.ctivated[0];
+          T.endTime = T.ctivated[1];
+        }
+        return T;
+      },
+      fetchSetting: {
+        pageField: 'pageNum',
+        sizeField: 'pageSize',
+        listField: 'list',
+        totalField: 'total',
+      },
+    });
+    function handleDelete(record: Recordable) {
+      console.log('点击了删除', record);
+    }
+    function handleOpen(record: Recordable) {
+      console.log('点击了启用', record);
+    }
+    function handleExpanded(_, record: Recordable) {
+      handlerowClick(record);
+    }
+    function exportExcel() {
+      createConfirm({
+        iconType: 'warning',
+        title: () => h('span', '温馨提示'),
+        content: () => h('span', isSearch.value ? '确认导出搜索结果?' : '确认导出全部?'),
+        onOk: async () => {
+          CameraExport();
         },
       });
-      function handleDelete(record: Recordable) {
-        console.log('点击了删除', record);
-      }
-      function handleOpen(record: Recordable) {
-        console.log('点击了启用', record);
-      }
-      function handleExpanded(_,record: Recordable) {
-        handlerowClick(record)
-      }
-      function exportExcel() {
-        createConfirm({
-          iconType: 'warning',
-          title: () => h('span', '温馨提示'),
-          content: () => h('span', isSearch.value?'确认导出搜索结果?':'确认导出全部?'),
-          onOk: async () => {
-            CameraExport()
-          },
-        });
-      }
-      function handlerowClick(record: Recordable){
-        CameraItem({id:record.id}).then(res => {
-          if(res.length){
-            let item = res[0]
-            Reflect.set(record, 'goodsCount', item.goodsCount);
-            Reflect.set(record, 'goodsName', item.goodsName);
-            Reflect.set(record, 'goodsPic', item.goodsPic);
-            Reflect.set(record, 'goodsPrice', item.goodsPrice);
-          }
-        })
-      }
-      return {
-        registerTable,
-        handleDelete,
-        handleOpen,
-        exportExcel,
-        handlerowClick,
-        expandedItem,
-        handleExpanded,
-        getCheckPerm,
-      };
-    },
-  });
+    }
+    function handlerowClick(record: Recordable) {
+      CameraItem({ id: record.id }).then((res) => {
+        if (res.length) {
+          let itemGoods = res;
+          Reflect.set(record, 'itemGoods', itemGoods);
+          // Reflect.set(record, 'goodsName', item.goodsName);
+          // Reflect.set(record, 'goodsPic', item.goodsPic);
+          // Reflect.set(record, 'goodsPrice', item.goodsPrice);
+        }
+      });
+    }
+    return {
+      registerTable,
+      handleDelete,
+      handleOpen,
+      exportExcel,
+      handlerowClick,
+      expandedItem,
+      handleExpanded,
+      getCheckPerm,
+    };
+  },
+});
 </script>

+ 34 - 9
src/views/productOperation/cameraScene.vue

@@ -10,13 +10,13 @@
       </a-tabs>
     </template>
     <div class="desc-wrap-BasicTable">
-      <BasicTable  @register="registerTable">
+      <BasicTable  @register="registerTable" ref="tableRef">
         <template #toolbar>
           <!-- <a-button type="primary" @click="exportExcel"> 导出1</a-button> -->
         </template>
         
         <template #href="{ record }">
-          <a v-if="record.sceneName && isDev" target="_blank" :href="`/livestream/?m=${record.sceneNumList && record.sceneNumList[0]}lang=zh&isTour=1`">{{record.sceneName}}</a>
+          <a v-if="record.sceneName && record.thumb" target="_blank" :href="record.thumb">{{record.sceneName}}</a>
           <span v-else-if="record.sceneName">{{record.sceneName}}</span>
           <span v-else>-</span>
         </template>
@@ -84,12 +84,13 @@
   </PageWrapper>
 </template>
 <script lang="ts">
-  import { defineComponent, h, reactive, toRefs, ref } from 'vue';
+  import { defineComponent, h, reactive, toRefs, ref, unref } from 'vue';
   import {
     BasicTable,
     useTable,
     TableAction,
     BasicColumn,
+    TableActionType,
     TableImg,
     FormProps,
   } from '/@/components/Table';
@@ -115,6 +116,7 @@
   import { message } from 'ant-design-vue';
   import { usePermissionStore } from '/@/store/modules/permission';
   import { func } from 'vue-types';
+import { truncate } from 'fs/promises';
   export default defineComponent({
     components: {
       DownLoadModal,
@@ -134,10 +136,10 @@
       const permissionStore = usePermissionStore();
       const { getCheckPerm } = permissionStore;
       const loading = ref(false);
-      const isDev = window.location.hostname.includes('eur')
-      console.log('isDev',isDev)
+      const tableRef = ref<Nullable<TableActionType>>(null);
       const tableType = ref<Number>(0); //0看看 、1看见、2深时
-      const columns: BasicColumn[] = [
+      function columns(isobj): BasicColumn[] {
+        return [
         {
           title: '场景标题',
           dataIndex: 'sceneName',
@@ -153,6 +155,7 @@
         {
           title: '拍摄时间',
           dataIndex: 'createTime',
+          sorter: true,
           width: 180,
           customRender: ({ record }) => {
             return (
@@ -165,6 +168,16 @@
           },
         },
         {
+          title: '是否生成obj场景',
+          dataIndex: 'isObj ',
+          ellipsis: true,
+          ifShow:isobj,
+          width: 180,
+          customRender: ({ record }) => {
+            return record.isCopy == 0 ? '否' : '是';
+          },
+        },
+        {
           title: '计算完成时间',
           dataIndex: 'amount',
           width: 180,
@@ -224,6 +237,7 @@
         {
           title: '浏览量',
           dataIndex: 'viewCount',
+          sorter: true,
           width: 80,
         },
         {
@@ -259,6 +273,7 @@
           width: 250,
         },
       ];
+      }
       // const searchForm: Partial<FormProps> = {
       //   labelWidth: 100,
       //   schemas: [
@@ -378,10 +393,10 @@
       }
       const [registerDownModal, { openModal: openDownModal }] = useModal();
       const [registerMoveModal, { openModal: openMoveModal }] = useModal();
-      const [registerTable, { reload }] = useTable({
+      const [registerTable, { reload, setColumns }] = useTable({
         api: operateSceneList,
         title: `场景列表`,
-        columns: columns,
+        columns: columns(false),
         searchInfo: { type: tableType },
         useSearchForm: true,
         formConfig: searchFormSs,
@@ -403,8 +418,19 @@
         },
         canResize: true,
       });
+      function getTableAction() {
+        const tableAction = unref(tableRef);
+        if (!tableAction) {
+          console.log('tableAction',tableAction,tableRef)
+          throw new Error('tableAction is null');
+        }
+        return tableAction;
+      }
+
       function changeTable(val: string) {
         tableType.value = val;
+        setColumns(columns(val == 2));
+        // setColumns(columns)
         reload();
       }
       async function handleCopy(record: Recordable) {
@@ -541,7 +567,6 @@
         downloadOption,
         cancelDownload,
         getTypeCheckPerm,
-        isDev,
       };
     },
   });

+ 7 - 3
src/views/productOperation/livestream.vue

@@ -4,7 +4,8 @@
       <!-- <a-button type="primary" @click="exportExcel"> 导出1</a-button> -->
     </template>
     <template #href="{ record }">
-          <a v-if="record.roomTitle" target="_blank" :href="`/livestream/?m=${1}&lang=zh&isTour=1`">{{record.roomTitle}}</a>
+          <a v-if="record.roomTitle && isDev" target="_blank" :href="`/livestream/?m=${record.sceneNumList && record.sceneNumList[0]}lang=zh&isTour=1`">{{record.roomTitle}}</a>
+          <span v-if="record.roomTitle">{{record.roomTitle}}</span>
           <span v-else>-</span>
     </template>
     <template #action="{ record }">
@@ -54,6 +55,8 @@
       const { t } = useI18n();
       const { createMessage, createConfirm } = useMessage();
       const permissionStore = usePermissionStore();
+      const isDev = window.location.hostname.includes('eur')
+      console.log('{{ isDev }}',isDev)
       const { getCheckPerm } = permissionStore;
       const columns: BasicColumn[] = [
         {
@@ -67,7 +70,7 @@
         },
         {
           title: '房间编号',
-          dataIndex: 'roomHostName',
+          dataIndex: 'roomId',
           ellipsis: true,
           width: 180,
         },
@@ -185,7 +188,7 @@
             },
           },
           {
-            field: 'IsShow',
+            field: 'isShow',
             label: '是否显示',
             component: 'Select',
             defaultValue:' ',
@@ -274,6 +277,7 @@
         handleDownload,
         handleReset,
         getCheckPerm,
+        isDev
       };
     },
   });