Ver código fonte

增加资费变更有效期

wxy 4 meses atrás
pai
commit
f1e34b24be

+ 23 - 18
src/api/path/lotCard.api.js

@@ -4,81 +4,86 @@ import service from "../../utils/axios";
 // ----------------------------流量管理---------------------------------
 // 流量列表
 export function dataPlanList(param) {
-  return service.post("/admin/sim/dataPlanList", param);
+    return service.post("/admin/sim/dataPlanList", param);
 }
 
 // ----------------------------卡管理---------------------------------
 // 卡信息列表
 export function cardInfoList(param) {
-  return service.post("/admin/sim/cardInfoList", param);
+    return service.post("/admin/sim/cardInfoList", param);
 }
 
 // 卡信息导入
 export function cardInfoImport(param) {
-  return service.post("/admin/sim/cardInfoImport", param);
+    return service.post("/admin/sim/cardInfoImport", param);
 }
 
 // 卡-下发用户
 export function cardIssue(param) {
-  return service.post("/admin/sim/cardIssue", param);
+    return service.post("/admin/sim/cardIssue", param);
 }
 
 // ----------------------------订单管理---------------------------------
 // 订单管理
 export function orderList(param) {
-  return service.post("/admin/sim/cardInfoUpdate", param);
+    return service.post("/admin/sim/cardInfoUpdate", param);
 }
 
 
 // 订购生成订单
 export function setOrderDataPlan(param) {
-  return service.post("/admin/sim/setOrderDataPlan", param);
+    return service.post("/admin/sim/setOrderDataPlan", param);
 }
 
 // 取消订单订单
 export function orderCancel(param) {
-  return service.post("/admin/sim/orderCancel", param);
+    return service.post("/admin/sim/orderCancel", param);
 }
 
 // 取消订单订单
 export function orderFlowData(params) {
-  return service.get("/admin/sim/orderFlowData", { params });
+    return service.get("/admin/sim/orderFlowData", { params });
 }
 
 // 查询订单日志
 export function getOrderLogsList(params) {
-  return service.post("/metadata/getOrderLogsList", params);
+    return service.post("/metadata/getOrderLogsList", params);
 }
 
 // 获取流量包数据
 export function getDataPlanList(params) {
-  return service.post("/metadata/getDataPlanList", params);
+    return service.post("/metadata/getDataPlanList", params);
 }
 
 // CDR详单查询
 export function getDataCDR(params) {
-  return service.post("/admin/sim/simCDR", params);
+    return service.post("/admin/sim/simCDR", params);
 }
 
 
 //  CDR日期查询 
 
 export function getDataCDRDate(params) {
-  return service.post("/scc/v1/cdr-daily", params);
+    return service.post("/scc/v1/cdr-daily", params);
 }
 
 // 暂停SIM卡服务
-export function PauseSIMService(params){
-  return service.post("/admin/sim/stopSim", params);
+export function PauseSIMService(params) {
+    return service.post("/admin/sim/stopSim", params);
 }
 
 
 // 恢复SIM卡服务
-export function RecoverSIMService(data){
-  return service.post("/admin/sim/runeSim", data);
+export function RecoverSIMService(data) {
+    return service.post("/admin/sim/runeSim", data);
 }
 
 // 关闭SIM
-export function OffSIMCard(data){
-  return service.post("/admin/sim/closeSim", data);
+export function OffSIMCard(data) {
+    return service.post("/admin/sim/closeSim", data);
+}
+
+// 操作日志
+export function OperationRecord(data) {
+    return service.post("/logs/logCardOperation", data);
 }

+ 5 - 0
src/api/path/tariffManagement.api.js

@@ -43,4 +43,9 @@ export function DeleteTariffItems(params) {
 // 查询客户下的流量池
 export function ExampleQueryTrafficPool() {
     return service.get('/admin/platform/customerTrafficPool')
+}
+
+// 资费有效期
+export function tariiffManageDate(data) {
+    return service.post('/admin/platform/renewTariff', data)
 }

+ 66 - 10
src/views/lotCard/cardList/trafficUseDialog.vue

@@ -122,7 +122,7 @@
             <a-table :columns="columnsAmount" :data="dataAmount" :scroll="{ x: 'auto' }" :pagination="false" />
           </a-tab-pane>
           <a-tab-pane key="6" title="操作记录">
-            Content of Tab Panel 3
+            <a-table :columns="columnsOperation" :data="dataOperation" :scroll="{ x: 'auto' }" />
           </a-tab-pane>
         </a-tabs>
       </a-col>
@@ -140,7 +140,7 @@
 </template>
 <script setup>
 import { onMounted, ref } from "vue";
-import { getDataCDR, PauseSIMService, RecoverSIMService, OffSIMCard } from '@/api/path/lotCard.api'
+import { getDataCDR, PauseSIMService, RecoverSIMService, OperationRecord } from '@/api/path/lotCard.api'
 import { Getdictionary } from '@/mixins/index'
 import { Message } from '@arco-design/web-vue'
 // 图表插件
@@ -225,42 +225,50 @@ const columnsTopup = [
   {
     title: '订单号',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: 'ICCID',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '购买套餐',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '订单类型',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '套餐价格',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '运营商',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '支付状态',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
   {
     title: '下单日期',
     dataIndex: 'productName',
-    ellipsis: true
+    ellipsis: true,
+    align: 'center',
   },
 ]
 const dataTopup = ref([])
@@ -299,6 +307,41 @@ const columnsAmount = [
   },
 ]
 const dataAmount = ref([])
+
+// 操作记录
+const columnsOperation = [
+  {
+    title: '操作人',
+    dataIndex: 'userId',
+    ellipsis: true,
+    align: 'center',
+  },
+  {
+    title: 'iccid',
+    dataIndex: 'iccid',
+    ellipsis: true,
+    align: 'center',
+  },
+  {
+    title: '来源',
+    dataIndex: 'source',
+    ellipsis: true,
+    align: 'center',
+  },
+  {
+    title: '操作',
+    dataIndex: 'operation',
+    ellipsis: true,
+    align: 'center',
+  },
+  {
+    title: '备注',
+    dataIndex: 'remark',
+    ellipsis: true,
+    align: 'center',
+  },
+]
+const dataOperation = ref([])
 const open = (data) => {
   if (!data) {
     return
@@ -406,10 +449,23 @@ const initChart = () => {
   })
 }
 
+// 操作日志
+const optionsRecordSetting = async () => {
+  let res = await OperationRecord({ current: 1, size: 9999 })
+  let res1 = await Getdictionary('source')
+  dataOperation.value = res.data.records.map(res => {
+    return {
+      ...res,
+      source: res1.data.filter(item => item.value == res.source)[0]?.label
+    }
+  })
+}
+
 defineExpose({ open })
 
 
 onMounted(() => {
+  optionsRecordSetting()
 })
 </script>
 

+ 1 - 1
src/views/order/BuyCard/detaile.vue

@@ -1,5 +1,5 @@
 <template>
-    <a-modal v-model:visible="modelValue" width="800px" title="订单详情" >
+    <a-modal v-model:visible="modelValue" width="800px" title="订单详情" :closable="false">
         <div class="detail-box">
             <div class="detail-item-box">
                 <div class="detail-item">

+ 52 - 15
src/views/order/BuyCard/index.vue

@@ -46,8 +46,12 @@
             <a-button type="text" @click="adminCancel(record)"
               v-if="record.moderationStatus == 2 && userType !== 1">退订</a-button>
           </div>
-          <a-button @click="openPriceing(record)" type="text" v-if="record.moderationStatus==2 && userType == 1">上传金额</a-button>
+          <a-button @click="openPriceing(record)" type="text"
+            v-if="record.moderationStatus == 2 && userType == 1">上传金额</a-button>
           <a-button @click="openDetail(record)" type="text">查看</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">变更有效期</a-button>
         </div>
       </template>
     </a-table>
@@ -68,15 +72,24 @@
       </a-form>
     </a-modal>
 
-    <a-modal v-model:visible="showPrning"  title="上传金额"
-      @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing" okText="保存" cancelText="关闭">
+    <a-modal v-model:visible="showPrning" title="上传金额" @cancel="closeModal(showPrning, formPreing)" @ok="handelPriceing"
+      okText="保存" cancelText="关闭">
       <a-form :model="formPreing" auto-label-width>
-        <a-form-item  label="采购金额">
+        <a-form-item label="采购金额">
           <a-input v-model="formPreing.amount" placeholder="请输入采购金额" />
         </a-form-item>
       </a-form>
     </a-modal>
 
+    <a-modal v-model:visible="showEndDate" title="变更有效期" @cancel="closeModal(showEndDate, formEndDate)"
+      @ok="handelEndDate" okText="确认" cancelText="取消">
+      <a-form :model="formEndDate" auto-label-width>
+        <a-form-item label="有效期">
+          <a-date-picker v-model="formEndDate.endDate" style="width: 100%;" />
+        </a-form-item>
+      </a-form>
+    </a-modal>
+
     <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" />
@@ -87,8 +100,9 @@
 <script setup>
 import { ref, onMounted, toRefs } from 'vue';
 import { Message } from '@arco-design/web-vue';
-import { purchaseOrderList, platformUpdate, adminUpdate } from '@/api/path/purchase';
-import { UploadOrderCardContract, TariffOrderCard,SettingPricing } from '@/api/path/order'
+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 Card from './Card.vue'
@@ -119,10 +133,15 @@ const state = ref({
   showReturn: false,
   ReturnData: [],
   id: null,
-  showPrning:false,
-  formPreing:{
-    id:'',
-    amount:''
+  showPrning: false,
+  formPreing: {
+    id: '',
+    amount: ''
+  },
+  showEndDate: false,
+  formEndDate: {
+    id: '',
+    endDate: ''
   }
 });
 
@@ -140,7 +159,9 @@ const {
   ReturnData,
   id,
   showPrning,
-  formPreing
+  formPreing,
+  showEndDate,
+  formEndDate
 } = toRefs(state.value);
 
 const columns = [
@@ -157,6 +178,7 @@ const columns = [
   { title: '采购金额', dataIndex: 'amount', align: 'center', ellipsis: true },
   { title: '合同照片', slotName: 'image', align: 'center', ellipsis: true },
   { title: '下单时间', dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title: '有效期', dataIndex: 'endDate', align: 'center', ellipsis: true },
   { title: '操作', slotName: 'operate', align: 'center', ellipsis: true }
 ];
 
@@ -240,23 +262,38 @@ const closeModal = (items, obj) => {
   })
 }
 
-const openPriceing = (data)=>{
+const openPriceing = (data) => {
   showPrning.value = true;
   formPreing.value.id = data.id
 }
 
-const handelPriceing = async()=>{
-  if(formPreing.value.amount=='' || formPreing.value.amount==0){
+const handelPriceing = async () => {
+  if (formPreing.value.amount == '' || formPreing.value.amount == 0) {
     return Message.error('输入有误')
   }
   formPreing.value.amount = Number(formPreing.value.amount)
   let res = await SettingPricing(formPreing.value)
-  if(res.code===200){
+  if (res.code === 200) {
     Message.success(res.message)
     closeModal(showPrning.value, formPreing.value)
   }
 }
 
+const openEndDate = (data) => {
+  formEndDate.value.id = data.id
+  formEndDate.value.endDate = data.endDate
+  showEndDate.value = true;
+}
+
+const handelEndDate = async()=>{
+  let res = await tariiffManageDate(formEndDate.value)
+  if(res.code === 200) {
+    Message.success(res.message)
+    closeModal(showEndDate.value, formEndDate.value)
+    intData();
+  }
+}
+
 onMounted(() => {
   intData();
 })

+ 1 - 0
src/views/order/ReturnCard/index.vue

@@ -100,6 +100,7 @@ const columns = [
   { title: '采购金额', dataIndex: 'amount', align: 'center', ellipsis: true },
   { title: '合同照片', slotName: 'image', align: 'center', ellipsis: true },
   { title: '下单时间', dataIndex: 'createdAt', align: 'center', ellipsis: true },
+  { title: '有效期', dataIndex: 'endDate', align: 'center', ellipsis: true },
   { title: '操作', slotName: 'operate', align: 'center', ellipsis: true }
 ];
 

+ 6 - 27
src/views/tariffManagement/Management/add.vue

@@ -71,9 +71,8 @@
                     </template>
                 </a-input>
             </a-form-item>
-            <a-form-item field="settlementCycle" :label="$t('tariffManagement.cycleBuy')">
-                <a-input v-model="formState.settlementCycleMap.endTime" style="width: 50%;">
-                </a-input>
+            <a-form-item field="endDate" :label="$t('tariffManagement.cycleBuy')">
+                <a-date-picker v-model="formState.endDate" style="width: 100%;" />
             </a-form-item>
             <a-form-item :label="$t('tariffManagement.MRCName')" field="mrcAmount">
                 <a-input v-model="formState.mrcAmount">
@@ -142,12 +141,10 @@ const state = ref({
         "billingCycle": "",
         // 计费方式(必填)
         "billingMethod": "1",
-        // 结算周期(必填)
-        "settlementCycle": "",
         // 价格(必填)
         "pricing": "",
         // 币种(必填)
-        "currency": "0",
+        "currency": "usb",
         // 流量资费计费
         "trafficBilling": '',
         // 流量资费计费类型
@@ -158,11 +155,7 @@ const state = ref({
         "mrcAmount": '',
         // 网络接入费
         "networkAccessFee": '',
-
-        "settlementCycleMap": {
-            "starTime": '',
-            "endTime": ''
-        }
+        "endDate":''
     },
     sourceList: [],
     userIdList: [],
@@ -189,6 +182,7 @@ const rules = {
     trafficBillingAmount: [{ required: true, trigger: 'change', }],
     mrcAmount: [{ required: true, trigger: 'change', }],
     networkAccessFee: [{ required: true, trigger: 'change', }],
+    endDate: [{ required: true, trigger: 'change', }],
 };
 
 
@@ -202,14 +196,7 @@ const handleSubmit = ({ values, errors }) => {
             formVal.simDataPlanId = String(values.simDataPlanId)
             formVal.simDataPlanId = String(values.simDataPlanId)
             formVal.pricing = Number(values.pricing)
-            if (values.settlementCycleMap.starTime && values.settlementCycleMap.starTime) {
-                formVal.settlementCycle = values.settlementCycleMap.starTime + '~' + values.settlementCycleMap.endTime
-            } else {
-                Message.warning({
-                    content: "请选择订购周期!",
-                    duration: 2000,
-                })
-            }
+
 
             if (typeIndex.value === 2) {
                 const { code, data } = await updateTariff(formVal)
@@ -313,10 +300,6 @@ watch(
 
 watch(() => FormDataList.value, val => {
     if (!val.id) return
-    if (formState.value.settlementCycleMap) {
-        formState.value.settlementCycleMap.starTime = ''
-        formState.value.settlementCycleMap.endTime = ''
-    }
     Object.keys(formState.value).forEach(key => {
         if (val[key]) {
             formState.value[key] = val[key]
@@ -326,10 +309,6 @@ watch(() => FormDataList.value, val => {
     // if (val.pricing !== '') {
     //     formState.value.pricing = val.pricing.match(/\d+/)[0] || ''
     // }
-    if (val.settlementCycle) {
-        formState.value.settlementCycleMap.starTime = val.settlementCycle.split('~')[0] || ''
-        formState.value.settlementCycleMap.endTime = val.settlementCycle.split('~')[1] || ''
-    }
     formState.value.id = val.id
 },{deep:true})
 </script>