瀏覽代碼

合并分支

wxy 3 月之前
父節點
當前提交
9a3c5a345f

+ 1 - 1
src/App.vue

@@ -96,7 +96,7 @@ body {
 .boldTxt{
   color: rgb(@blue_0);
 }
-.txtPointer{
+.txtPointer{ 
   cursor: pointer;
 }
 </style>

+ 1 - 1
src/i18n/zh/order.js

@@ -30,7 +30,7 @@ export default {
     ViewTheContract:'查看合同',
     UploadAmount:'制卡费',
     view:'查看',
-    ChangeValidity:'变更有效期',
+    ChangeValidity:'续费',
     SalesContract:'销售合同',
     PurchaseAmount:'采购金额',
     SerialNumber:'序号',

+ 6 - 44
src/views/order/BuyCard/detaile.vue

@@ -48,7 +48,7 @@
             <div class="detail-item-box">
                 <div class="detail-item">
                     <div class="item-label">{{ $t('order.CardNum') }}</div>
-                    <div class="item-content">{{ tableDataList.length == 0 ? dataDetail.length : tableDataList.length }}
+                    <div class="item-content">{{ dataDetail.length }}
                         <a-button type="primary" :disabled="show" @click="showCard = true" style="margin-left:10px;"
                             v-if="userType == 1 && FormDataList.moderationStatus == 2">{{
                                 $t('order.AllocationCardNumber') }}</a-button>
@@ -57,8 +57,7 @@
             </div>
         </div>
         <div class="detail-table" v-if="!show">
-            <a-table :columns="columnsDetail" @page-change="evChangePage" :data="dataDetail"
-                :pagination="dataDetail.length == 10 ? pagination : false" />
+            <a-table :columns="columnsDetail" :data="dataDetail" />
         </div>
 
         <div class="progress" v-if="show">
@@ -92,7 +91,7 @@
 
 <script setup>
 import { ref, onMounted, toRefs, toRef, watch } from 'vue';
-import { AcquireOrdertariff, DistributionCard, ReturntheOrderCard,GuideCardProgress } from '@/api/path/order'
+import { AcquireOrdertariff, DistributionCard, ReturntheOrderCard, GuideCardProgress } from '@/api/path/order'
 import { Message } from '@arco-design/web-vue';
 import Upload from "@/components/upload/index.vue";
 import { Getdictionary } from '@/mixins/index.js'
@@ -125,16 +124,7 @@ const state = ref({
 const { tariffForm, showCard, res1, res2, res3, userType, show, schedule } = toRefs(state.value)
 const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' }, { title: t('order.CardStatus'), dataIndex: 'status' }, { title: t('order.CreationTime'), dataIndex: 'createdAt' }
 ]
-// 初始数据
-const tableDataList = ref([])
-// 处理后的数据
 const dataDetail = ref([])
-const pagination = ref({
-    current: 1,
-    pageSize: 10,
-    total: 0
-})
-
 // 定时器ID
 let timer;
 
@@ -162,11 +152,6 @@ const closeModal = () => {
 
 watch(() => FormDataList.value, val => {
     if (Object.keys(val).length === 0) return
-    tableDataList.length = []
-    dataDetail.value = []
-    pagination.value.total = 0
-    pagination.value.current = 1
-    pagination.value.pageSize = 10
     AcquireOrdertariff({ id: val.trafficId }).then(res => {
         tariffForm.value = res.data
         tariffForm.value.billingcycleName = res1.value.filter(val => val.value == res.data.billingCycle)[0]?.label;
@@ -174,34 +159,11 @@ watch(() => FormDataList.value, val => {
         tariffForm.value.TariffInfomr = res.data.trafficBilling + '/' + res.data.trafficBillingType
         tariffForm.value.pricingName = tariffForm.value.pricing !== '' ? tariffForm.value.pricing + '/' + res3.value.filter(val => val.value == res.data.currency)[0]?.label : '';
     })
-    dataDetail.value = []
     ReturntheOrderCard({ id: val.id }).then(res => {
-        if (res.data.length <= 10) {
-            dataDetail.value.push(...res.data.map(val => ({ ...val, status: val.status == 1 ? t('order.normal') : t('order.unsubscribe') })))
-        } else {
-            // 更新完整数据
-            tableDataList.value = res.data;
-
-            // 更新总条目数
-            pagination.value.total = res.data.length;
-
-            updatePageData();
-        }
+        dataDetail.value = (res.data || []).map(res => ({ ...res, status: res.status == 1 ? t('order.normal') : t('order.unsubscribe') }))
     })
 }, { immediate: true })
 
-const evChangePage = (page) => {
-    pagination.value.current = page
-    updatePageData();
-}
-
-// 更新分页数据方法
-const updatePageData = () => {
-    const startIndex = (pagination.value.current - 1) * pagination.value.pageSize;
-    const endIndex = startIndex + pagination.value.pageSize; // 每次切 10 条
-    dataDetail.value = tableDataList.value.slice(startIndex, endIndex);
-};
-
 const DownloadSampleFile = () => {
     // 下载示例文件
     downloadFile(['ICCID'], [['8968099000011939']])
@@ -225,8 +187,8 @@ watch(() => modelValue.value, val => {
 }, { immediate: true })
 
 watch(() => schedule.value, val => {
-     // 清除旧的定时器(如果存在)
-     if (timer) {
+    // 清除旧的定时器(如果存在)
+    if (timer) {
         clearInterval(timer);
     }
     timer = setInterval(() => {

+ 40 - 56
src/views/order/BuyCard/index.vue

@@ -3,7 +3,7 @@
   <div class="silent-expire-alarm">
     <!-- 搜索条件区 -->
     <div class="search-section">
-      <Search :SearchForm="SearchFormBuyOrder" @query="intData" @reset="reset"/>
+      <Search :SearchForm="SearchFormBuyOrder" @query="intData" @reset="reset" />
     </div>
     <div class="audit-btn" v-if="userType == 2">
       <a-button @click="showAudit = true" type="text">
@@ -14,7 +14,7 @@
       </a-button>
     </div>
     <!-- 数据表格 -->
-    <a-table :data="tableData" :pagination="pageData" :columns="columns" @page-change="evChangePage"
+    <a-table :data="tableData" :pagination="pageData" :columns="BuyOrdercolumns" @page-change="evChangePage"
       :scroll="{ x: 'auto' }">
       <template #image="{ record }">
         <a-image width="60" height="60" :src="record.contractImg" :preview-props="{
@@ -26,31 +26,33 @@
         <div class="line_heis" @click="openDetail(record)">{{ record.id }}</div>
       </template>
       <template #statusType="{ record }">
-        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{$t('order.TobeReviewed')}}</a-tag>
+        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{ $t('order.TobeReviewed') }}</a-tag>
         <a-tag color="#00b42a" v-if="record.moderationStatus == 2">{{ $t('order.PassTheExamination') }}</a-tag>
-        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{$t('order.rejected')}}</a-tag>
+        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{ $t('order.rejected') }}</a-tag>
       </template>
       <template #LogisticsStatus="{ record }">
-        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{$t('order.unshipped')}}</a-tag>
-        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{$t('order.shipped')}}</a-tag>
+        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{ $t('order.unshipped') }}</a-tag>
+        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{ $t('order.shipped') }}</a-tag>
       </template>
       <template #operate="{ record }">
         <div class="setting">
           <div v-if="userType == 1">
             <a-button type="text" v-if="record.moderationStatus == 1 && record.status == 1"
-              @click="statusOrder(record)">{{$t('order.examine')}}</a-button>
-            <a-button @click="uploadModal(record)" type="text">{{ record.contractImg == '' ? $t('order.UploadContract') : $t('order.ViewTheContract')
+              @click="statusOrder(record)">{{ $t('order.examine') }}</a-button>
+            <a-button @click="uploadModal(record)" type="text">{{ record.contractImg == '' ? $t('order.UploadContract')
+              : $t('order.ViewTheContract')
               }}</a-button>
           </div>
           <div v-if="userType == 2">
-            <a-button type="text" @click="adminCancel(record)"
-              v-if="record.moderationStatus == 2 && userType !== 1">{{ $t('order.unsubscribe') }}</a-button>
+            <a-button type="text" @click="adminCancel(record)" v-if="record.moderationStatus == 2 && userType !== 1">{{
+              $t('order.unsubscribe') }}</a-button>
           </div>
-          <a-button @click="openPriceing(record)" type="text"
-            v-if="record.moderationStatus == 2 && userType == 1 ">{{ $t('order.UploadAmount') }}</a-button>
+          <a-button @click="openPriceing(record)" type="text" v-if="record.moderationStatus == 2 && userType == 1">{{
+            $t('order.UploadAmount') }}</a-button>
           <!-- <a-button @click="openDetail(record)" type="text" v-if="userType !== 1">套餐</a-button>
           <a-button @click="openDetail(record)" type="text" v-if="userType !== 1">资费</a-button> -->
-          <a-button @click="openEndDate(record)" type="text" v-if="userType==1 && record.moderationStatus == 2">{{ $t('order.ChangeValidity') }}</a-button>
+          <a-button @click="openEndDate(record)" type="text" v-if="userType == 2 && record.moderationStatus == 2">{{
+            $t('order.ChangeValidity') }}</a-button>
           <a-button @click="openDetail(record)" type="text">{{ $t('order.view') }}</a-button>
 
         </div>
@@ -59,7 +61,8 @@
 
 
     <a-modal v-model:visible="uploadContract" width="600px" :title="$t('order.UploadContract')"
-      @cancel="closeModal(uploadContract, formContract)" @ok="handleBeforeOk" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+      @cancel="closeModal(uploadContract, formContract)" @ok="handleBeforeOk" :okText="$t('form.Confirm')"
+      :cancelText="$t('form.Cancel')">
       <a-form :model="formContract" auto-label-width>
         <a-form-item field="customerName" :label="$t('lotCard.userName')">
           <div class="audit-txt" style="color:#418035;">{{ FormDataList.userName }}</div>
@@ -73,17 +76,19 @@
       </a-form>
     </a-modal>
 
-    <a-modal v-model:visible="showPrning" :title="$t('order.UploadAmount')" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
-    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+    <a-modal v-model:visible="showPrning" :title="$t('order.UploadAmount')" @cancel="closeModal(showPrning, formPreing)"
+      @ok="handelPriceing" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
       <a-form :model="formPreing" auto-label-width>
         <a-form-item :label="$t('order.PurchaseAmount')">
-          <a-input v-model="formPreing.amount" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('order.PurchaseAmount')" />
+          <a-input v-model="formPreing.amount"
+            :placeholder="$t('form.datapoolForm.pleaseSelect') + $t('order.PurchaseAmount')" />
         </a-form-item>
       </a-form>
     </a-modal>
 
-    <a-modal v-model:visible="showEndDate" :title="$t('order.ChangeValidity')" @cancel="closeModal(showEndDate, formEndDate)"
-      @ok="handelEndDate" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+    <a-modal v-model:visible="showEndDate" :title="$t('order.ChangeValidity')"
+      @cancel="closeModal(showEndDate, formEndDate)" @ok="handelEndDate" :okText="$t('form.Confirm')"
+      :cancelText="$t('form.Cancel')">
       <a-form :model="formEndDate" auto-label-width>
         <a-form-item :label="$t('lotCard.validity')">
           <a-date-picker v-model="formEndDate.endDate" style="width: 100%;" />
@@ -94,7 +99,7 @@
     <Card v-model:modelValue="showAudit" @submit="intData()" />
     <Status v-model:modelValue="showStatus" @submit="intData()" :FormDataList="FormDataList" />
     <Detaile v-model:modelValue="showDetail" @submit="intData()" :FormDataList="FormDataList" />
-    <returnCard v-model:modelValue="showReturn" :ReturnData="ReturnData" :id="id" @submit="intData()"></returnCard>
+    <returnCard v-model:modelValue="showReturn" :ReturnData="ReturnData"  @submit="intData()"></returnCard>
   </div>
 </template>
 
@@ -102,8 +107,8 @@
 import { ref, onMounted, toRefs } from 'vue';
 import { Message } from '@arco-design/web-vue';
 import { purchaseOrderList } from '@/api/path/purchase';
-import {tariiffManageDate} from '@/api/path/tariffManagement.api'
-import { UploadOrderCardContract, TariffOrderCard, SettingPricing } from '@/api/path/order'
+import { tariiffManageDate } from '@/api/path/tariffManagement.api'
+import { UploadOrderCardContract, SettingPricing } from '@/api/path/order'
 import { Getdictionary } from '@/mixins/index.js'
 import Upload from "@/components/upload/index.vue";
 import Card from './Card.vue'
@@ -111,9 +116,9 @@ import Status from './status.vue'
 import Detaile from './detaile.vue'
 import Search from '@/components/Search/index.vue'
 import returnCard from './returnCard.vue'
-import {useI18n} from 'vue-i18n'
-const {t} = useI18n();
-import {SearchFormBuyOrder} from '../config'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n();
+import { SearchFormBuyOrder,BuyOrdercolumns } from '../config'
 // 数据层
 const state = ref({
   userName: localStorage.getItem('user_login_information')?.username,
@@ -135,8 +140,7 @@ const state = ref({
   showDetail: false,
   uploadContract: false,
   showReturn: false,
-  ReturnData: [],
-  id: null,
+  ReturnData: {},
   showPrning: false,
   formPreing: {
     id: '',
@@ -147,8 +151,8 @@ const state = ref({
     id: '',
     endDate: ''
   },
-  SearchForm:{},
-  orderTypeStatus:[]
+  SearchForm: {},
+  orderTypeStatus: []
 });
 
 const {
@@ -163,7 +167,6 @@ const {
   uploadContract,
   showReturn,
   ReturnData,
-  id,
   showPrning,
   formPreing,
   showEndDate,
@@ -172,27 +175,11 @@ const {
   orderTypeStatus
 } = toRefs(state.value);
 
-const columns = [
-  { title: t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
-  { title: t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
-  { title: t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
-  { title: t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
-  { title: t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
-  { title: t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
-  { title: t('order.SilentPeriod')+(t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
-  { title: t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
-  { title: t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
-  { title: t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
-  { title: t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
-  { title: t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
-  { title: t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
-  { title: t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
-  { title: t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true }
-];
+
 
 // 订单列表
 const intData = async (item) => {
-  if(item){
+  if (item) {
     SearchForm.value = item
   }
   const param = {
@@ -218,17 +205,14 @@ const intData = async (item) => {
   })
 }
 
-const reset = (item)=>[
+const reset = (item) => {
   SearchForm.value = item,
   pageData.value.current = 1,
   intData()
-]
+}
 // 用户退订
 const adminCancel = (data) => {
-  TariffOrderCard({ id: data.trafficId }).then(res => {
-    ReturnData.value = res.data || []
-  })
-  id.value = data.id
+  ReturnData.value = data
   showReturn.value = true
 }
 // 分页
@@ -305,9 +289,9 @@ const openEndDate = (data) => {
   showEndDate.value = true;
 }
 
-const handelEndDate = async()=>{
+const handelEndDate = async () => {
   let res = await tariiffManageDate(formEndDate.value)
-  if(res.code === 200) {
+  if (res.code === 200) {
     Message.success(res.message)
     closeModal(showEndDate.value, formEndDate.value)
     intData();

+ 45 - 23
src/views/order/BuyCard/returnCard.vue

@@ -1,51 +1,73 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.ReturnTheCard')" @cancel="cancel" @ok="submitStatus" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.ReturnTheCard')" @cancel="cancel"
+        @ok="submitStatus" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+        <a-space>
+            <a-input :style="{ width: '320px' }" placeholder="请输入ICCID查询" allow-clear v-model="inputValue">
+                <template #suffix>
+                    <icon-search />
+                </template>
+            </a-input>
+            <a-button type="primary" @click="getDetaileICCID(form.trafficId)">搜索</a-button>
+            <a-button>重置</a-button>
+        </a-space>
+        <p></p>
         <a-table row-key="iccid" :columns="columns" :data="data" :row-selection="rowSelection"
-             v-model:selectedKeys="selectedKeys" :pagination="pagination" />
+            v-model:selectedKeys="selectedKeys" />
     </a-modal>
 </template>
 
 <script setup>
-import { ref, defineProps, toRef, defineEmits,watch} from 'vue';
+import { ref, defineProps, toRef, defineEmits, watch } from 'vue';
 import { Message } from '@arco-design/web-vue';
-import {ReturntheCard} from '@/api/path/order'
-import {useI18n} from 'vue-i18n'
-const {t} = useI18n();
+import { ReturntheCard,TariffOrderCard } from '@/api/path/order'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
         default: false
     },
-    ReturnData:Array,
-    id:String,
+    ReturnData: [Array, Object],
+    id: String,
 })
 const modelValue = toRef(props, 'modelValue')
 const emit = defineEmits(['update:modelValue', 'submit'])
 const selectedKeys = ref([])
-const columns = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: t('order.CardStatus'), dataIndex: 'status' },{ title: t('order.CreationTime'), dataIndex: 'expireTime' }]
+const inputValue = ref()
+const form = ref({})
+const columns = [{ title: 'ICCID', dataIndex: 'iccid' }, { title: t('order.CardStatus'), dataIndex: 'status' }, { title: t('order.CreationTime'), dataIndex: 'expireTime' }]
 const data = ref()
 const rowSelection = ref({
-      type: 'checkbox',
-      showCheckedAll: true,
-      onlyCurrent: false,
-    });
-const cancel = ()=>{
+    type: 'checkbox',
+    showCheckedAll: true,
+    onlyCurrent: false,
+});
+const cancel = () => {
     emit('update:modelValue', false)
     data.value = []
 }
 const submitStatus = async () => {
-    if(selectedKeys.value.length === 0){
-        Message.warning($t('form.pleaseSelect')+'ICCID')
+    if (selectedKeys.value.length === 0) {
+        Message.warning($t('form.pleaseSelect') + 'ICCID')
         return
     }
-    await ReturntheCard({iccids:selectedKeys.value,id:props.id})
+    await ReturntheCard({ iccids: selectedKeys.value, id: props.id })
     emit('update:modelValue', false)
-    emit('submit',true)
+    emit('submit', true)
     data.value = []
 }
-watch(()=>props.ReturnData,val=>{
-  data.value = val
-},{deep: true})
+
+const getDetaileICCID = async (traaid) => {
+  const res = await TariffOrderCard({ id: traaid,iccid:inputValue.value })
+  if(res.code==200){
+    data.value = (res.data || []).map(res=>({ ...res, status: res.status == 1 ? t('order.normal') : t('order.unsubscribe') }))
+  }
+}
+watch(() => props.ReturnData, val => {
+  if(val.id){
+    form.value = val
+    getDetaileICCID(val.trafficId)
+  }
+}, { immediate: true })
 </script>
-<style scoped>
-</style>
+<style scoped></style>

+ 27 - 55
src/views/order/ChangeOrder/detaile.vue

@@ -24,16 +24,6 @@
                     <div class="item-content">{{ tariffForm.label }}</div>
                 </div>
             </div>
-            <div class="detail-item-box">
-                <div class="detail-item">
-                    <div class="item-label">{{  $t('order.MinimumSubscriptionPeriod') }}</div>
-                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[0] }} {{ $t('order.Months') }}</div>
-                </div>
-                <div class="detail-item">
-                    <div class="item-label">{{  $t('order.MaximumSubscriptionPeriod') }}</div>
-                    <div class="item-content">{{ tariffForm.settlementCycle?.split('~')[1] }} {{ $t('order.Months') }}</div>
-                </div>
-            </div>
             <div class="detail-item-box">
                 <div class="detail-item">
                     <div class="item-label">{{ $t('order.BillingMode') }}</div>
@@ -46,23 +36,18 @@
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">{{  $t('order.CardType') }}</div>
+                    <div class="item-label">{{ $t('order.CardType') }}</div>
                     <div class="item-content">{{ FormDataList.cardType }}</div>
                 </div>
                 <div class="detail-item">
-                    <div class="item-label">{{  $t('order.StandardPrice') }}</div>
-                    <div class="item-content">{{ tariffForm.pricingName }}</div>
+                    <div class="item-label">{{ $t('order.FlowPool') }}</div>
+                    <div class="item-content">{{ FormDataList.isTrafficPool == 1 ? $t('lotCard.Yes') : $t('lotCard.No')
+                        }}</div>
                 </div>
             </div>
             <div class="detail-item-box">
                 <div class="detail-item">
-                    <div class="item-label">{{  $t('order.FlowPool') }}</div>
-                    <div class="item-content">{{ FormDataList.isTrafficPool == 1 ?  $t('lotCard.Yes') : $t('lotCard.No') }}</div>
-                </div>
-            </div>
-            <div class="detail-item-box">
-                <div class="detail-item">
-                    <div class="item-label">{{  $t('order.CardNum') }}</div>
+                    <div class="item-label">{{ $t('order.CardNum') }}</div>
                     <div class="item-content">{{ dataDetail.length }}</div>
                 </div>
             </div>
@@ -72,26 +57,21 @@
         </div>
 
         <template #footer>
-            <a-button @click="cancel">{{ $t('form.Cancel')}}</a-button>
+            <a-button @click="cancel">{{ $t('form.Cancel') }}</a-button>
         </template>
     </a-modal>
 
-    <!-- 分配卡号 -->
-    <a-modal v-model:visible="showCard" :title="$t('order.AllocationCardNumber')" @cancel="closeModal(showCard, FormDataList)"
-        @before-ok="showCard = false" :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
-        <Upload listType="" minx="1" accept=".xlsx" :handelUpload="customRequest" :showRemoveButton="false">
-        </Upload>
-    </a-modal>
 </template>
 
 <script setup>
-import { ref, onMounted, toRefs, toRef ,watch} from 'vue';
-import { AcquireOrdertariff, DistributionCard,ReturntheOrderCard } from '@/api/path/order'
+import { ref, onMounted, toRefs, toRef, watch } from 'vue';
+import { AcquireOrdertariff, DistributionCard, ReturntheOrderCard, GuideCardProgress } from '@/api/path/order'
 import { Message } from '@arco-design/web-vue';
 import Upload from "@/components/upload/index.vue";
 import { Getdictionary } from '@/mixins/index.js'
-import {useI18n} from 'vue-i18n'
-const {t} = useI18n();
+import { downloadFile } from '@/utils/xlsx.js'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n();
 const props = defineProps({
     modelValue: {
         type: Boolean,
@@ -107,35 +87,21 @@ const FormDataList = toRef(props, 'FormDataList')
 const emit = defineEmits(['update:modelValue', 'submit'])
 const state = ref({
     tariffForm: {},
-    showCard: false,
-    res1:[],
-    res2:[],
-    res3:[],
+    res1: [],
+    res2: [],
+    res3: [],
     userType: JSON.parse(localStorage.getItem('user_login_information'))?.userType, // 1平台 2用户
 })
-const { tariffForm, showCard,res1,res2,res3,userType } = toRefs(state.value)
-const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' },{ title: t('order.CardStatus'), dataIndex: 'status' },{ title: t('order.CreationTime'), dataIndex: 'createdAt' }
+const { tariffForm,  res1, res2, res3, userType } = toRefs(state.value)
+const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' }, { title: t('order.CardStatus'), dataIndex: 'status' }, { title: t('order.CreationTime'), dataIndex: 'createdAt' }
 ]
 const dataDetail = ref([])
 
-// 分配卡号
-const customRequest = (options) => {
-    const formData = new FormData();
-    formData.append('file', options.fileItem.file);  // 这里将文件添加到 FormDataList 中
-    formData.append('orderId', FormDataList.value.id);
-    DistributionCard(formData).then(res => {
-        Message.success(res.message)
-        res.data[0].forEach(val=>[
-            dataDetail.value.push({iccid:val})
-        ])
-    })
-}
-
 const cancel = () => {
     emit('update:modelValue', false)
 }
 
-const closeModal = ()=>{
+const closeModal = () => {
     showCard.value = false
 }
 
@@ -148,11 +114,11 @@ watch(() => FormDataList.value, val => {
         tariffForm.value.TariffInfomr = res.data.trafficBilling + '/' + res.data.trafficBillingType
         tariffForm.value.pricingName = tariffForm.value.pricing !== '' ? tariffForm.value.pricing + '/' + res3.value.filter(val => val.value == res.data.currency)[0]?.label : '';
     })
-    dataDetail.value = []
-    ReturntheOrderCard({id:val.id}).then(res=>{
-        dataDetail.value = res.data.map(val=>({...val,status:val.status==1?t('order.normal'):t('order.unsubscribe')}))
+    ReturntheOrderCard({ id: val.id }).then(res => {
+        dataDetail.value = (res.data || []).map(res => ({ ...res, status: res.status == 1 ? t('order.normal') : t('order.unsubscribe') }))
     })
-},{deep: true})
+}, { immediate: true })
+
 
 onMounted(async () => {
     res1.value = await Getdictionary('Billingcycle')
@@ -161,6 +127,12 @@ onMounted(async () => {
 })
 </script>
 <style scoped lang="less">
+.progress {
+    margin: 30px auto;
+    display: flex;
+    justify-content: center;
+}
+
 .detail-box {
     .detail-item-box {
         display: flex;

+ 67 - 20
src/views/order/ChangeOrder/index.vue

@@ -3,84 +3,119 @@
   <div class="silent-expire-alarm">
     <!-- 搜索条件区 -->
     <div class="search-section">
-      <Search />
+      <Search :SearchForm="SearchFormBuyOrder" @query="intData" @reset="reset" />
     </div>
     <!-- 数据表格 -->
-    <a-table :data="tableData" :pagination="pageData" :columns="columns" @page-change="evChangePage"
+    <a-table :data="tableData" :pagination="pageData" :columns="ChangeOrdercolumns" @page-change="evChangePage"
       :scroll="{ x: 'auto' }">
       <template #image="{ record }">
         <a-image width="60" height="60" :src="record.contractImg" :preview-props="{
           actionsLayout: ['rotateRight', 'zoomIn', 'zoomOut'],
-        }">
+        }" style="cursor: pointer;">
         </a-image>
       </template>
       <template #id="{ record }">
         <div class="line_heis" @click="openDetail(record)">{{ record.id }}</div>
       </template>
+      <template #statusType="{ record }">
+        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{ $t('order.TobeReviewed') }}</a-tag>
+        <a-tag color="#00b42a" v-if="record.moderationStatus == 2">{{ $t('order.PassTheExamination') }}</a-tag>
+        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{ $t('order.rejected') }}</a-tag>
+      </template>
+      <template #LogisticsStatus="{ record }">
+        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{ $t('order.unshipped') }}</a-tag>
+        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{ $t('order.shipped') }}</a-tag>
+      </template>
+      <template #operate="{ record }">
+        <div class="setting">
+          <a-button type="text" v-if="record.moderationStatus == 1 && record.status == 1 && userType == 1"
+            @click="statusOrder(record)">{{ $t('order.examine') }}</a-button>
+          <a-button @click="openDetail(record)" type="text">{{ $t('order.view') }}</a-button>
+        </div>
+      </template>
     </a-table>
+
+    <Status v-model:modelValue="showStatus" @submit="intData()" :FormDataList="FormDataList" />
+    <Detaile v-model:modelValue="showDetail" @submit="intData()" :FormDataList="FormDataList" />
   </div>
 </template>
 
 <script setup>
 import { ref, onMounted, toRefs } from 'vue';
+import { Message } from '@arco-design/web-vue';
 import { purchaseOrderList } from '@/api/path/purchase';
+import { tariiffManageDate } from '@/api/path/tariffManagement.api'
+import { UploadOrderCardContract, TariffOrderCard, SettingPricing } from '@/api/path/order'
 import { Getdictionary } from '@/mixins/index.js'
+import Upload from "@/components/upload/index.vue";
+import Status from './status.vue'
+import Detaile from './detaile.vue'
 import Search from '@/components/Search/index.vue'
 import { useI18n } from 'vue-i18n'
 const { t } = useI18n();
+import { SearchFormBuyOrder,ChangeOrdercolumns } from '../config'
 // 数据层
 const state = ref({
+  userName: localStorage.getItem('user_login_information')?.username,
+  userType: JSON.parse(localStorage.getItem('user_login_information'))?.userType, // 1平台 2用户
   tableData: [],
+  FormDataList:{},
   pageData: {
     total: 0,
     size: 10,
     current: 1,
   },
+  showStatus: false,
+  showDetail: false,
+  SearchForm: {},
+  orderTypeStatus: []
 });
 
 const {
+  userType,
   tableData,
   pageData,
+  FormDataList,
+  showStatus,
+  showDetail,
+  SearchForm,
+  orderTypeStatus
 } = toRefs(state.value);
 
-const columns = [
-  { title: t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
-  { title: t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
-  { title: t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
-  { title: t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
-  { title: t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
-  { title: t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
-  { title: t('order.SilentPeriod') + (t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
-  { title: t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
-  { title: t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
-  { title: t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
-  { title: t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
-  { title: t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
-  { title: t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
-  { title: t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
-];
+
 
 // 订单列表
-const intData = async () => {
+const intData = async (item) => {
+  if (item) {
+    SearchForm.value = item
+  }
   const param = {
     current: pageData.value.current,
     size: pageData.value.size,
+    ...SearchForm.value
   }
   const simTypeList = await Getdictionary('cardType')
   let sourceList = await Getdictionary('source')
+  orderTypeStatus.value = await Getdictionary('orderType')
   purchaseOrderList(param).then(res => {
     tableData.value = (res.data.records || []).map((item, key) => {
       const sourceName = sourceList.find(val => val.value == item.source)?.label
       const cardType = simTypeList.find(val => val.value == item.simType)?.label
       return {
         ...item,
+        index: key + 1,
         sourceName,
         cardType
       }
     });
     pageData.value.total = res.data.total;
   })
+}
 
+const reset = (item) => {
+  SearchForm.value = item,
+  pageData.value.current = 1,
+  intData()
 }
 // 分页
 const evChangePage = (page) => {
@@ -88,6 +123,18 @@ const evChangePage = (page) => {
   intData()
 }
 
+// 订单审核
+const statusOrder = (items) => {
+  FormDataList.value = items
+  showStatus.value = true
+}
+
+// 查看订单详情
+const openDetail = async (item) => {
+  FormDataList.value = item
+  showDetail.value = true;
+}
+
 onMounted(() => {
   intData();
 })

+ 83 - 0
src/views/order/ChangeOrder/status.vue

@@ -0,0 +1,83 @@
+<template>
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.examine')" @cancel="cancel" @ok="submitStatus"
+    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
+        <a-form :model="formStatus" :style="{ width: '600px' }">
+            <a-form-item :label="$t('lotCard.userName')">
+                {{ FormDataList.userName }}
+            </a-form-item>
+            <a-form-item :label="$t('order.OrderNum')">
+                {{ FormDataList.id }}
+            </a-form-item>
+            <a-form-item :label="$t('order.TariffName')">
+                {{ FormDataList.trafficName }}
+            </a-form-item>
+            <a-form-item :label="$t('order.AuditOpinion')">
+                <a-radio-group v-model="formStatus.moderationStatus" :options="optionsStatus">
+                    <template #label="{ data }">
+                        <a-tag>{{ data.label }}</a-tag>
+                    </template>
+                </a-radio-group>
+            </a-form-item>
+            <a-form-item :label="$t('lotCard.remark')">
+                <a-textarea :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('lotCard.remark')" v-model:model-value="formStatus.moderationNotes" allow-clear />
+            </a-form-item>
+        </a-form>
+    </a-modal>
+</template>
+
+<script setup>
+import { ref, onMounted, toRefs, defineProps, toRef, defineEmits } from 'vue';
+import { OrderCardStatus } from '@/api/path/order'
+import { Message } from '@arco-design/web-vue';
+import {useI18n} from 'vue-i18n'
+const {t} = useI18n();
+const props = defineProps({
+    modelValue: {
+        type: Boolean,
+        default: false
+    },
+    FormDataList: {
+        type: Object,
+        default: () => ({})
+    }
+})
+const modelValue = toRef(props, 'modelValue')
+const FormDataList = toRef(props, 'FormDataList')
+const emit = defineEmits(['update:modelValue', 'submit'])
+
+const state = ref({
+    formStatus: {
+        id: null,
+        moderationStatus: '', // 审核状态
+        moderationNotes: '', // 审核备注
+    },
+    optionsStatus: [
+        { label: t('order.PassTheExamination'), value: '2' },
+        { label: t('order.TurnDown'), value: '3' },
+    ],
+})
+
+const { formStatus ,optionsStatus} = toRefs(state.value)
+
+// 订单审核
+const submitStatus = async () => {
+    new Promise((resolve, reject) => {
+        formStatus.value.id = FormDataList.value.id
+        OrderCardStatus(formStatus.value).then(res => {
+            Message.success(res.message)
+            emit('update:modelValue', false)
+            emit('submit', true)
+        }).catch(error => [
+            reject(error)
+        ])
+    })
+}
+
+const cancel = ()=>{
+    emit('update:modelValue', false)
+    Object.keys(formStatus.value).forEach(key => {
+        formStatus.value[key] = ''
+    })
+}
+</script>
+<style scoped></style>

+ 167 - 0
src/views/order/ReturnCard/detaile.vue

@@ -0,0 +1,167 @@
+<template>
+    <a-modal v-model:visible="modelValue" width="800px" :title="$t('order.OrderDetails')" :closable="false">
+        <div class="detail-box">
+            <div class="detail-item-box">
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.OrderNum') }}</div>
+                    <div class="item-content">{{ FormDataList.id }}</div>
+                </div>
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('lotCard.orderType') }}</div>
+                    <div class="item-content">
+                        <a-tag color="#168cff" v-if="FormDataList.tmsStatus == 1">{{ $t('order.unshipped') }}</a-tag>
+                        <a-tag color="#00b42a" v-if="FormDataList.tmsStatus == 2">{{ $t('order.shipped') }}</a-tag>
+                    </div>
+                </div>
+            </div>
+            <div class="detail-item-box">
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('lotCard.operator') }}</div>
+                    <div class="item-content">{{ FormDataList.sourceName }}</div>
+                </div>
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.TariffName') }}</div>
+                    <div class="item-content">{{ tariffForm.label }}</div>
+                </div>
+            </div>
+            <div class="detail-item-box">
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.BillingMode') }}</div>
+                    <div class="item-content">{{ tariffForm.billingMethodName }}</div>
+                </div>
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.SettlementCycle') }}</div>
+                    <div class="item-content">{{ tariffForm.billingcycleName }}</div>
+                </div>
+            </div>
+            <div class="detail-item-box">
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.CardType') }}</div>
+                    <div class="item-content">{{ FormDataList.cardType }}</div>
+                </div>
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.FlowPool') }}</div>
+                    <div class="item-content">{{ FormDataList.isTrafficPool == 1 ? $t('lotCard.Yes') : $t('lotCard.No')
+                        }}</div>
+                </div>
+            </div>
+            <div class="detail-item-box">
+                <div class="detail-item">
+                    <div class="item-label">{{ $t('order.CardNum') }}</div>
+                    <div class="item-content">{{ dataDetail.length }}</div>
+                </div>
+            </div>
+        </div>
+        <div class="detail-table">
+            <a-table :columns="columnsDetail" :data="dataDetail" />
+        </div>
+
+        <template #footer>
+            <a-button @click="cancel">{{ $t('form.Cancel') }}</a-button>
+        </template>
+    </a-modal>
+
+</template>
+
+<script setup>
+import { ref, onMounted, toRefs, toRef, watch } from 'vue';
+import { AcquireOrdertariff, DistributionCard, ReturntheOrderCard, GuideCardProgress } from '@/api/path/order'
+import { Message } from '@arco-design/web-vue';
+import Upload from "@/components/upload/index.vue";
+import { Getdictionary } from '@/mixins/index.js'
+import { downloadFile } from '@/utils/xlsx.js'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n();
+const props = defineProps({
+    modelValue: {
+        type: Boolean,
+        default: false
+    },
+    FormDataList: {
+        type: Object,
+        default: () => ({})
+    }
+})
+const modelValue = toRef(props, 'modelValue')
+const FormDataList = toRef(props, 'FormDataList')
+const emit = defineEmits(['update:modelValue', 'submit'])
+const state = ref({
+    tariffForm: {},
+    res1: [],
+    res2: [],
+    res3: [],
+    userType: JSON.parse(localStorage.getItem('user_login_information'))?.userType, // 1平台 2用户
+})
+const { tariffForm,  res1, res2, res3, userType } = toRefs(state.value)
+const columnsDetail = [{ title: 'ICCID', dataIndex: 'iccid' }, { title: t('order.CardStatus'), dataIndex: 'status' }, { title: t('order.CreationTime'), dataIndex: 'createdAt' }
+]
+const dataDetail = ref([])
+
+const cancel = () => {
+    emit('update:modelValue', false)
+}
+
+const closeModal = () => {
+    showCard.value = false
+}
+
+watch(() => FormDataList.value, val => {
+    if (Object.keys(val).length === 0) return
+    AcquireOrdertariff({ id: val.trafficId }).then(res => {
+        tariffForm.value = res.data
+        tariffForm.value.billingcycleName = res1.value.filter(val => val.value == res.data.billingCycle)[0]?.label;
+        tariffForm.value.billingMethodName = res2.value.filter(val => val.value == res.data.billingMethod)[0]?.label;
+        tariffForm.value.TariffInfomr = res.data.trafficBilling + '/' + res.data.trafficBillingType
+        tariffForm.value.pricingName = tariffForm.value.pricing !== '' ? tariffForm.value.pricing + '/' + res3.value.filter(val => val.value == res.data.currency)[0]?.label : '';
+    })
+    ReturntheOrderCard({ id: val.id }).then(res => {
+        dataDetail.value = (res.data || []).map(res => ({ ...res, status: res.status == 1 ? t('order.normal') : t('order.unsubscribe') }))
+    })
+}, { immediate: true })
+
+
+onMounted(async () => {
+    res1.value = await Getdictionary('Billingcycle')
+    res2.value = await Getdictionary('billingMethod')
+    res3.value = await Getdictionary('currencyType')
+})
+</script>
+<style scoped lang="less">
+.progress {
+    margin: 30px auto;
+    display: flex;
+    justify-content: center;
+}
+
+.detail-box {
+    .detail-item-box {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-bottom: 10px;
+
+        .detail-item {
+            //styleName: Body/Medium;
+            font-family: PingFang SC;
+            font-size: 14px;
+            font-weight: 400;
+            line-height: 22px;
+            text-align: left;
+            display: flex;
+            align-items: center;
+            min-width: 350px;
+
+            .item-label {
+                color: rgba(0, 0, 0, 0.4);
+                width: 120px;
+                text-align: right;
+                margin-right: 10px;
+            }
+
+            .item-content {
+                color: rgba(51, 51, 51, 1);
+            }
+        }
+    }
+}
+</style>

+ 26 - 71
src/views/order/ReturnCard/index.vue

@@ -1,12 +1,11 @@
-<!-- 购卡订单 -->
 <template>
   <div class="silent-expire-alarm">
     <!-- 搜索条件区 -->
     <div class="search-section">
-      <Search />
+      <Search :SearchForm="SearchFormBuyOrder" @query="intData" @reset="reset" />
     </div>
     <!-- 数据表格 -->
-    <a-table :data="tableData" :pagination="pageData" :columns="columns" @page-change="evChangePage"
+    <a-table :data="tableData" :pagination="pageData" :columns="Returncolumns" @page-change="evChangePage"
       :scroll="{ x: 'auto' }">
       <template #image="{ record }">
         <a-image width="60" height="60" :src="record.contractImg" :preview-props="{
@@ -18,33 +17,21 @@
         <div class="line_heis" @click="openDetail(record)">{{ record.id }}</div>
       </template>
       <template #statusType="{ record }">
-        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{$t('order.CardPurchase')}}</a-tag>
+        <a-tag color="#ff7d00" v-if="record.moderationStatus == 1">{{ $t('order.TobeReviewed') }}</a-tag>
         <a-tag color="#00b42a" v-if="record.moderationStatus == 2">{{ $t('order.PassTheExamination') }}</a-tag>
-        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{$t('order.rejected')}}</a-tag>
+        <a-tag color="#f53f3f" v-if="record.moderationStatus == 3">{{ $t('order.rejected') }}</a-tag>
       </template>
       <template #LogisticsStatus="{ record }">
-        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{$t('order.unshipped')}}</a-tag>
-        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{$t('order.shipped')}}</a-tag>
+        <a-tag color="#168cff" v-if="record.tmsStatus == 1">{{ $t('order.unshipped') }}</a-tag>
+        <a-tag color="#00b42a" v-if="record.tmsStatus == 2">{{ $t('order.shipped') }}</a-tag>
       </template>
       <template #operate="{ record }">
-        <div class="setting">
-          <div v-if="userType == 1">
-            <a-button type="text" v-if="record.moderationStatus == 1" @click="statusOrder(record)">{{$t('order.examine')}}</a-button>
-          </div>
-          <a-button @click="openPriceing(record)" type="text" v-if="record.moderationStatus == 2">{{ $t('order.UploadAmount') }}</a-button>
-        </div>
+          <a-button type="text" v-if="record.moderationStatus == 1 && userType == 1" @click="statusOrder(record)">{{
+            $t('order.examine') }}</a-button>
+          <a-button @click="openDetail(record)" type="text">{{ $t('order.view') }}</a-button>
       </template>
     </a-table>
-
-    <a-modal v-model:visible="showPrning" :title="$t('order.UploadAmount')" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
-    :okText="$t('form.Confirm')" :cancelText="$t('form.Cancel')">
-      <a-form :model="formPreing" auto-label-width>
-        <a-form-item :label="$t('order.ReturnAmount')">
-          <a-input v-model="formPreing.returnAmount" :placeholder="$t('form.datapoolForm.pleaseSelect')+$t('order.ReturnAmount')" />
-        </a-form-item>
-      </a-form>
-    </a-modal>
-
+    <Detaile v-model:modelValue="showDetail" @submit="intData()" :FormDataList="FormDataList" />
     <Status v-model:modelValue="showStatus" @submit="intData()" :FormDataList="FormDataList" />
   </div>
 </template>
@@ -57,8 +44,10 @@ import { SettingPricing } from '@/api/path/order'
 import { Getdictionary } from '@/mixins/index.js'
 import Search from '@/components/Search/index.vue'
 import Status from './status.vue'
-import {useI18n} from 'vue-i18n'
-const {t} = useI18n();
+import { useI18n } from 'vue-i18n'
+import Detaile from './detaile.vue'
+import {Returncolumns,SearchFormBuyOrder} from '../config'
+const { t } = useI18n();
 // 数据层
 const state = ref({
   userName: localStorage.getItem('user_login_information')?.username,
@@ -71,11 +60,7 @@ const state = ref({
     current: 1,
   },
   showStatus: false,
-  showPrning: false,
-  formPreing: {
-    id: '',
-    returnAmount: ''
-  },
+  showDetail: false
 });
 
 const {
@@ -84,27 +69,10 @@ const {
   FormDataList,
   pageData,
   showStatus,
-  showPrning,
-  formPreing
+  showDetail
 } = toRefs(state.value);
 
-const columns = [
-{ title: t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
-  { title: t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
-  { title: t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
-  { title: t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
-  { title: t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
-  { title: t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
-  { title: t('order.SilentPeriod')+(t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
-  { title: t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
-  { title: t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
-  { title: t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
-  { title: t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
-  { title: t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
-  { title: t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
-  { title: t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
-  { title: t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true }
-];
+
 
 // 订单列表
 const intData = async () => {
@@ -140,33 +108,20 @@ const statusOrder = (items) => {
   FormDataList.value = items
   showStatus.value = true
 }
-// 模态框取消
-const closeModal = (items, obj) => {
-  items = false
-  Object.keys(obj).forEach(key => {
-    if (obj.key) {
-      obj[key] = '';
-    }
-  })
-}
 
-const openPriceing = (data) => {
-  showPrning.value = true;
-  formPreing.value.id = data.id
+// 查看订单详情
+const openDetail = async (item) => {
+  FormDataList.value = item
+  showDetail.value = true;
 }
 
-const handelPriceing = async () => {
-  if (formPreing.value.returnAmount == '' || formPreing.value.returnAmount == 0) {
-    return Message.error('输入有误')
-  }
-  formPreing.value.returnAmount = Number(formPreing.value.returnAmount)
-  let res = await SettingPricing(formPreing.value)
-  if (res.code === 200) {
-    Message.success(res.message)
-    closeModal(showPrning.value, formPreing.value)
-  }
+const reset = (item) => {
+  SearchForm.value = item,
+  pageData.value.current = 1,
+  intData()
 }
 
+
 onMounted(() => {
   intData();
 })

+ 60 - 0
src/views/order/config.js

@@ -62,3 +62,63 @@ export const SearchFormBuyOrder = [
     width: "200",
   },
 ];
+
+// 购卡订单
+export const BuyOrdercolumns = [
+  { title:  window.$t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
+  { title:  window.$t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
+  { title:  window.$t('order.SilentPeriod') + ( window.$t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
+  { title:  window.$t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
+  { title: '备注', dataIndex: 'moderationNotes', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true ,fixed: 'right',},
+];
+
+// 退卡订单
+export const Returncolumns = [
+  { title:  window.$t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
+  { title:  window.$t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
+  { title:  window.$t('order.SilentPeriod') + ( window.$t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
+  { title:  window.$t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
+  { title: '备注', dataIndex: 'moderationNotes', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true, fixed: 'right', }
+];
+
+// 变更订单
+export const ChangeOrdercolumns = [
+  { title:  window.$t('order.SerialNumber'), dataIndex: 'index', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderNum'), slotName: 'id', align: 'center', ellipsis: true },
+  { title:  window.$t('order.AuditStatus'), slotName: 'statusType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.LogisticsStatus'), slotName: 'LogisticsStatus', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.userName'), dataIndex: 'userName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.NumberCardsPurchased'), dataIndex: 'quantity', align: 'center', ellipsis: true },
+  { title:  window.$t('order.SilentPeriod') + ( window.$t('lotCard.month')), dataIndex: 'periodOfSilence', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CardType'), dataIndex: 'cardType', align: 'center', ellipsis: true },
+  { title:  window.$t('order.CarrierName'), dataIndex: 'sourceName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.tariff'), dataIndex: 'trafficName', align: 'center', ellipsis: true },
+  { title:  window.$t('order.PurchaseAmount'), dataIndex: 'amount', align: 'center', ellipsis: true },
+  { title:  window.$t('order.ContractPhoto'), slotName: 'image', align: 'center', ellipsis: true },
+  { title:  window.$t('order.OrderTime'), dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.validity'), dataIndex: 'endDate', align: 'center', ellipsis: true },
+  { title: '备注', dataIndex: 'moderationNotes', align: 'center', ellipsis: true },
+  { title:  window.$t('lotCard.Controls'), slotName: 'operate', align: 'center', ellipsis: true, fixed: 'right', },
+];

+ 1 - 0
src/views/tariffManagement/config.js

@@ -270,5 +270,6 @@ export const UserColumns = [
     slotName: "operation",
     align: "center",
     ellipsis: true,
+    fixed: 'right',
   },
 ];

+ 1 - 1
vite.config.js

@@ -31,7 +31,7 @@ export default defineConfig({
             less: {
                 charset: false, //  解决中文乱码
                 modifyVars: {
-                    "arcoblue-6": "#0b3d7f",
+                    "arcoblue-6": "#d1402f",
                 },
                 javascriptEnabled: true,
                 additionalData: '@import "@/assets/css/theme.less";@import "@/assets/css/global.less";',