Browse Source

feat(组件): 修改bug

tangning 2 years ago
parent
commit
39f19bac0b

+ 46 - 3
src/views/account/details/OrderList.vue

@@ -27,19 +27,42 @@
       <BasicTable @register="registerDown"></BasicTable>
     </a-tab-pane>
     <a-tab-pane key="3" tab="相机订单">
-      <BasicTable @register="registerCamera"></BasicTable>
+      <BasicTable @register="registerCamera"  @expand="handleExpanded">
+      <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"
+                :size="120"
+                :simpleShow="true"
+                :imgList="[record.goodsPic || 'http://zfb-4dkankan.oss-cn-shenzhen.aliyuncs.com/sceneLogo/1653644220202_3ee8b3c006e74012a82f2b286b2f4914.png']"
+              />
+            </a-descriptions-item>
+          </a-descriptions>
+        </div>
+      </template>
+      </BasicTable>
     </a-tab-pane>
   </a-tabs>
 </template>
 <script lang="ts">
 import { defineComponent, reactive, computed } from 'vue';
-import { BasicTable, useTable, FormProps, TableAction } from '/@/components/Table';
+import { BasicTable, useTable, FormProps, TableAction, TableImg } from '/@/components/Table';
 import { PageWrapper } from '/@/components/Page';
 import { Divider, Card, Empty, Descriptions, Steps, Tabs } from 'ant-design-vue';
 import { DelAndUpload } from '/@/api/product';
 import { IncrementList } from '/@/api/order'
 import { DownList,CameraList } from '/@/api/order'
 import { useModal } from '/@/components/Modal';
+  import { CameraItem } from '/@/api/order'
 import { useI18n } from '/@/hooks/web/useI18n';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { cameraColumns, dowmColumns, equityColumns,orderSearchForm } from './data'
@@ -48,6 +71,7 @@ import { usePermissionStore } from '/@/store/modules/permission';
 export default defineComponent({
   components: {
     BasicTable,
+    TableImg,
     TableAction,
     PageWrapper,
     [Divider.name]: Divider,
@@ -132,8 +156,11 @@ export default defineComponent({
       columns: cameraColumns,
       useSearchForm: true,
       formConfig: orderSearchForm,
-      showIndexColumn: false,
+      showIndexColumn:false,
       showTableSetting: true,
+      canResize: true,
+      expandRowByClick: true,
+      rowKey: 'id',
       searchInfo,
       beforeFetch:(T)=>{
           if(T.ctivated){
@@ -196,6 +223,21 @@ export default defineComponent({
     function handleOpen(record: Recordable) {
       console.log('点击了启用', record);
     }
+    
+    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);
+          }
+        })
+      }
+    function handleExpanded(_,record: Recordable) {
+        handlerowClick(record)
+      }
     function handleEdit(record: Recordable) {
       console.log('record', record);
       openEditModal(true, {
@@ -203,6 +245,7 @@ export default defineComponent({
       });
     }
     return {
+      handleExpanded,
       registerTimeTable,
       registerCamera,
       registerDown,

+ 2 - 1
src/views/account/overview/AddModal.vue

@@ -2,7 +2,7 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
-    title="开票登记"
+    :title="fileFlow.type=='equity'?'新增权益':'新增下载'"
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
     @ok="handleSubmit"
@@ -58,6 +58,7 @@
             field: 'counts',
             component: 'InputNumber',
             label: '新增权益数',
+            required: true,
             componentProps: {
               min:1,
             },

+ 1 - 1
src/views/account/overview/index.vue

@@ -20,7 +20,7 @@
             <div class="lable">权益数量</div>
             <div class="value">
               <div class="text">{{overviewInfo.incrementCount}}个</div>              
-              <Button type="primary" v-if="getCheckPerm('account-equityDetails')" size="small" @click="openInteresModal(true)"> 权益详情 </Button>
+              <Button type="primary" v-if="getCheckPerm('account-equityDetails')" size="small" @click="openInteresModal(true,{})"> 权益详情 </Button>
               <Button type="primary" v-if="getCheckPerm('increment-add')" size="small" @click="handleAddEquity('equity')"> 新增权益 </Button>
             </div>
           </div>

+ 2 - 1
src/views/account/overview/interesModal.vue

@@ -121,12 +121,13 @@
         showIndexColumn: false,
         bordered: true,
         canResize: true,
-        pagination: false,
+        // pagination: false,
       });
 
       onMounted(() => {});
       let addListFunc = () => {};
       const [register, { closeModal }] = useModalInner((data) => {
+        reload()
         data && onDataReceive(data);
       });
       function onDataReceive(data) {

+ 41 - 23
src/views/account/product/data.tsx

@@ -104,24 +104,24 @@ export const columns:  BasicColumn[] = [
     title: '状态',
     dataIndex: 'statusString',
     width: 80,
-    customRender: ({ record }) => {
-      let str;
-      switch (record.status - 0) {
-        case 0:
-          str = '计算中';
-          break;
-        case 1:
-          str = '计算成功';
-          break;
-        case -2:
-          str = '计算成功';
-          break;
-        case -1:
-          str = '计算失败';
-          break;
-      }
-      return record.payStatus == 1 ? '封存' : str;
-    },
+    // customRender: ({ record }) => {
+    //   let str;
+    //   switch (record.status - 0) {
+    //     case 0:
+    //       str = '计算中';
+    //       break;
+    //     case 1:
+    //       str = '计算成功';
+    //       break;
+    //     case -2:
+    //       str = '计算成功';
+    //       break;
+    //     case -1:
+    //       str = '计算失败';
+    //       break;
+    //   }
+    //   return record.payStatus == 1 ? '封存' : str;
+    // },
   },
   {
     title: '操作',
@@ -139,7 +139,7 @@ export const searchForm: Partial<FormProps> = {
   schemas: [
     {
       field: 'sceneName',
-      label: '作品标题',
+      label: '场景标题',
       component: 'Input',
       componentProps: {
         maxLength: 100,
@@ -263,16 +263,34 @@ export const cameraSearchForm: Partial<FormProps> = {
         xxl: 7,
       },
     },
+  ],
+};
+
+export const quanjSearchForm: Partial<FormProps> = {
+  labelWidth: 100,
+  schemas: [
+    {
+      field: 'sceneName',
+      label: '作品标题',
+      component: 'Input',
+      componentProps: {
+        maxLength: 100,
+      },
+      colProps: {
+        xl: 7,
+        xxl: 7,
+      },
+    },
     // {
-    //   field: 'userName',
-    //   label: '绑定账号',
+    //   field: 'snCode',
+    //   label: '作品码',
     //   component: 'Input',
     //   componentProps: {
     //     maxLength: 100,
     //   },
     //   colProps: {
-    //     xl: 6,
-    //     xxl: 6,
+    //     xl: 7,
+    //     xxl: 7,
     //   },
     // },
   ],

+ 4 - 4
src/views/account/product/index.vue

@@ -6,7 +6,7 @@
         <a-tab-pane :key="1" tab="四维看见" />
         <a-tab-pane :key="2" tab="四维深时" />
         <a-tab-pane :key="3" tab="四维双目Lite" /> 
-        <a-tab-pane :key="4" tab="全景看看" /> 
+        <a-tab-pane :key="4" tab="四维全景" /> 
       </a-tabs
     ></template>
     <div class="desc-wrap-BasicTable">
@@ -104,7 +104,7 @@
   import { Descriptions, Tabs, } from 'ant-design-vue';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { useMessage } from '/@/hooks/web/useMessage';
-  import { columns,searchForm,cameraScene,cameraSearchForm} from './data'
+  import { columns,searchForm,cameraScene,cameraSearchForm, quanjSearchForm } from './data'
   import { useModal } from '/@/components/Modal';
   import { usePermissionStore } from '/@/store/modules/permission';
   import { otherInfoStore } from '/@/store/modules/other'
@@ -150,12 +150,12 @@
       const [registerMoveModal, { openModal: openMoveModal }] = useModal();
       const [registerTableViewKankan, { reload:ViewReload }] = useTable({
         api: overallList,
-        title: `全景看看作品列表`,
+        title: `作品列表`,
         // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
         columns: cameraScene,
         searchInfo: { type: tableType,userName },
         useSearchForm: true,
-        formConfig: cameraSearchForm,
+        formConfig: quanjSearchForm,
         showTableSetting: true,
         showIndexColumn:false,
         rowKey: 'num',

+ 1 - 1
src/views/device/index.vue

@@ -14,7 +14,7 @@
               {
                 label: '删除',
                 color: 'error',
-                ifShow: getCheckPerm('device-delete') && (!Boolean(record.outType) || Boolean(record.userName)),
+                ifShow: getCheckPerm('device-delete') && !(Boolean(record.outType) || Boolean(record.userName)),
                 onClick: handleDelete.bind(null, record),
               },{
                 label: '出库',

+ 6 - 0
src/views/product/app/AddModal.vue

@@ -4,6 +4,7 @@
     @register="register"
     title="新增APP"
     @visible-change="handleVisibleChange"
+    :confirmLoading="loading"
     @cancel="resetFields"
     @ok="handleSubmit"
   >
@@ -35,6 +36,7 @@
     emits: ['update', 'register'],
     setup(props, { emit }) {
       const modelRef = ref({});
+      const loading = ref(false)
       const uploadData = reactive({
         md5:'',
         name:'',
@@ -243,6 +245,7 @@
         });
       }
       const handleSubmit = async () => {
+        loading.value = true
         try {
           const params = await validate();
           if('version.json' != uploadData.versionName ){
@@ -264,8 +267,10 @@
           closeModal();
           resetFields();
           createMessage.success(t('common.optSuccess'));
+          loading.value = false
           emit('update');
         } catch (error) {
+          loading.value = false
           console.log('not passing', error);
         }
       };
@@ -284,6 +289,7 @@
         addListFunc,
         resetFields,
         uploadData,
+        loading,
         t,
       };
     },

+ 7 - 1
src/views/product/firmware/AddModal.vue

@@ -2,6 +2,7 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
+    :confirmLoading="loading"
     title="新增版本"
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
@@ -34,6 +35,7 @@
     emits: ['update', 'register'],
     setup(props, { emit }) {
       const modelRef = ref({});
+      const loading = ref(false)
       const fileFlow = reactive({
         file:null
       })
@@ -69,7 +71,7 @@
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
-                if (!value.trim()) {
+                if (!value?.trim()) {
                   return Promise.reject(t('common.inputText')+t('routes.product.version'));
                 }
                 if(/.*[\u4e00-\u9fa5]+.*$/.test(value)){
@@ -244,6 +246,7 @@
         });
       }
       const handleSubmit = async () => {
+        loading.value = true
         try {
           const params = await validate();
           const apiData = {
@@ -259,7 +262,9 @@
           resetFields();
           createMessage.success(t('common.optSuccess'));
           emit('update');
+          loading.value = false
         } catch (error) {
+          loading.value = false
           console.log('not passing', error);
         }
       };
@@ -274,6 +279,7 @@
         registerForm,
         model: modelRef,
         fileFlow,
+        loading,
         handleVisibleChange,
         handleSubmit,
         addListFunc,

+ 7 - 1
src/views/product/firmware/EditModal.vue

@@ -4,6 +4,7 @@
     @register="register"
     title="编辑版本"
     @visible-change="handleVisibleChange"
+    :confirmLoading="loading"
     @cancel="resetFields"
     @ok="handleSubmit"
   >
@@ -38,6 +39,7 @@
     emits: ['update', 'register'],
     setup(props, { emit }) {
       const modelRef = ref({});
+      const loading = ref(false)
       const fileFlow = reactive({
         file:null
       })
@@ -74,7 +76,7 @@
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
-                if (!value.trim()) {
+                if (!value?.trim()) {
                   return Promise.reject(t('common.inputText')+t('routes.product.version'));
                 }
                 if(/.*[\u4e00-\u9fa5]+.*$/.test(value)){
@@ -219,6 +221,7 @@
         });
       }
       const handleSubmit = async () => {
+        loading.value = true
         try {
           const params = await validate();
           console.log('modelRef',params)
@@ -233,8 +236,10 @@
           resetFields();
           createMessage.success(t('common.optSuccess'));
           emit('update');
+          loading.value = false
         } catch (error) {
           console.log('not passing', error);
+          loading.value = false
         }
       };
       function handleVisibleChange(v) {
@@ -245,6 +250,7 @@
         rendercameraTypeLabel,
         renderOwnTypeLabel,
         schemas,
+        loading,
         registerForm,
         fileFlow,
         handleVisibleChange,

+ 7 - 1
src/views/product/sdk/AddModal.vue

@@ -3,6 +3,7 @@
     v-bind="$attrs"
     @register="register"
     title="新增版本"
+    :confirmLoading="loading"
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
     @ok="handleSubmit"
@@ -33,6 +34,7 @@
     emits: ['update', 'register'],
     setup(props, { emit }) {
       const modelRef = ref({});
+      const loading = ref(false)
       const fileFlow = reactive({
         file:null
       })
@@ -61,7 +63,7 @@
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
-                if (!value.trim()) {
+                if (!value?.trim()) {
                   return Promise.reject(t('common.inputText')+t('routes.product.version'));
                 }
                 if(/.*[\u4e00-\u9fa5]+.*$/.test(value)){
@@ -226,6 +228,7 @@
         });
       }
       const handleSubmit = async () => {
+        loading.value = true
         try {
           const params = await validate();
           const apiData = {
@@ -243,7 +246,9 @@
           resetFields();
           createMessage.success(t('common.optSuccess'));
           emit('update');
+          loading.value = false
         } catch (error) {
+          loading.value = false
           console.log('not passing', error);
         }
       };
@@ -260,6 +265,7 @@
         fileFlow,
         handleVisibleChange,
         handleSubmit,
+        loading,
         addListFunc,
         resetFields,
         t,

+ 7 - 1
src/views/product/sdk/EditModal.vue

@@ -2,6 +2,7 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
+    :confirmLoading="loading"
     title="编辑版本"
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
@@ -40,6 +41,7 @@
     emits: ['update', 'register'],
     setup(props, { emit }) {
       const modelRef = ref({});
+      const loading = ref(false)
       const fileFlow = reactive({
         file:null
       })
@@ -91,7 +93,7 @@
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
-                if (!value.trim()) {
+                if (!value?.trim()) {
                   return Promise.reject(t('common.inputText')+t('routes.product.version'));
                 }
                 if(/.*[\u4e00-\u9fa5]+.*$/.test(value)){
@@ -207,6 +209,7 @@
         setFieldsValue(setData);
       }
       const handleSubmit = async () => {
+        loading.value = true
         try {
           const params = await validate();
           console.log('modelRef',params)
@@ -222,7 +225,9 @@
           resetFields();
           createMessage.success(t('common.optSuccess'));
           emit('update');
+          loading.value = false
         } catch (error) {
+          loading.value = false
           console.log('not passing', error);
         }
       };
@@ -241,6 +246,7 @@
         handleSubmit,
         addListFunc,
         resetFields,
+        loading,
         t,
       };
     },

+ 1 - 1
src/views/productOperation/viewKankan.vue

@@ -163,7 +163,7 @@
       };
       const [registerTable, { reload }] = useTable({
         api: overallList,
-        title: '全景看看作品列表',
+        title: '作品列表',
         // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
         columns: columns,
         searchInfo: { type: 1 },