vera_min 1 год назад
Родитель
Сommit
292c027bb0

+ 2 - 0
src/api/iotCard/index.ts

@@ -26,5 +26,7 @@ export default {
   },
   platform: {
     getList: (params: object) => get('/sim_factory/list', params),
+    addItem: (data: object) => post('/sim_factory/add', data),
+    editItem: (data: object) => put('/sim_factory/edit', data),
   }
 }

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

@@ -64,7 +64,7 @@ import EditForm from './component/edit.vue';
 import api from '/@/api/ice104/index';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { useSearch } from '/@/hooks/useCommonIce104';
-import { useRouter } from 'vue-router';
+import { useRouter } from 'vu e-router';
 
 const router = useRouter();
 const editFormRef = ref();

+ 199 - 0
src/views/iot/iotCard/platformManage/addOrEditItem.vue

@@ -0,0 +1,199 @@
+<!-- 平台接入-新增或者编辑 -->
+<template>
+		<el-dialog :title="ruleForm.id ? '新增' : '编辑'" v-model="isShowDialog" width="650px">
+			<el-form :model="ruleForm" ref="formRef" :rules="rules" label-width="100px">
+				<el-form-item label="平台类型" prop="types">
+          <el-select style="width: 100%;" v-model="ruleForm.types" placeholder="请选择">
+            <el-option label="电信" value="1"></el-option>
+            <el-option disabled label="联通" value="2"></el-option>
+            <el-option label="移动" value="3"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="ruleForm.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="App ID" prop="appKey">
+          <el-input v-model="ruleForm.appKey" placeholder="请输入App ID" />
+        </el-form-item>
+        <el-form-item v-if="ruleForm.types == 1" label="secretKey" prop="appSecret">
+          <el-input v-model="ruleForm.appSecret" placeholder="请输入secretKey" />
+        </el-form-item>
+        <el-form-item v-if="ruleForm.types == 1" label="用户id" prop="userId">
+          <el-input v-model="ruleForm.userId" placeholder="请输入用户id" />
+        </el-form-item>
+        <el-form-item label="密码" prop="password">
+          <el-input v-model="ruleForm.password" placeholder="请输入密码" />
+        </el-form-item>
+        <el-form-item v-if="ruleForm.types == 3" label="接口地址" prop="restUrl">
+          <el-input v-model="ruleForm.restUrl" placeholder="请输入接口地址" />
+        </el-form-item>
+        <el-form-item label="状态">
+          <!-- 1启用,0禁用 -->
+          <el-switch v-model="ruleForm.status" :active-value="1" :inactive-value="0" inline-prompt active-text="启" inactive-text="禁"></el-switch>
+        </el-form-item>
+        <el-form-item label="说明">
+          <el-input :rows="6" type="textarea" v-model="ruleForm.remark" placeholder="请输入说明" />
+        </el-form-item>
+			</el-form>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="onCancel">取 消</el-button>
+					<el-button :loading="btnLoading" type="primary" @click="onSubmit">确定</el-button>
+				</span>
+			</template>
+		</el-dialog>
+</template>
+
+<script lang="ts" setup>
+import api from '/@/api/iotCard';
+import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import { useSearch } from "/@/hooks/useCommon"
+import { useRouter } from 'vue-router';
+
+const router = useRouter();
+
+const isShowDialog = ref(false);
+const formRef = ref<HTMLElement | null>(null);
+const emit = defineEmits(['updateList']);
+const btnLoading = ref(false);
+
+const ruleForm = ref({
+  id: 0,
+  types: "1",
+  name: "",
+  userId: "",
+  password: "",
+  appSecret: "",
+  remark: "",
+  appKey: "",
+  restUrl: "",
+  status: 1
+})
+
+const rules = ref({
+  types: [{ required: true, message: '请选择平台类型', trigger: 'change' }],
+  name: [{ required: true, message: '请输入名称', trigger: 'change' }],
+  userId: [{ required: true, message: '请输入用户id', trigger: 'change' }],
+  password: [{ required: true, message: '请输入密码', trigger: 'change' }],
+  appSecret: [{ required: true, message: '请输入secretKey', trigger: 'change' }],
+  appKey: [{ required: true, message: '请输入App ID', trigger: 'change' }],
+  restUrl: [{ required: true, message: '请输入接口地址', trigger: 'change' }]
+})
+
+/**
+ * 新增
+ */
+const onSubmit = () => {
+  const formWrap = unref(formRef) as any;
+  if (!formWrap) return;
+  formWrap.validate(async (valid: boolean) => {
+    if (!valid) return
+    btnLoading.value = true
+    console.log(ruleForm.value)
+    if(ruleForm.value.id) {
+      // 修改
+      api.platform.editItem(ruleForm.value)
+      .then(() => {
+        ElMessage({ type: 'success', message: '修改成功' })
+        emit('updateList')
+        closeDialog();
+        resetForm();
+      })
+      .finally(() => (btnLoading.value = false))
+    }else{
+      // 新增
+      api.platform.addItem(ruleForm.value)
+      .then(() => {
+        ElMessage({ type: 'success', message: '添加成功' })
+        emit('updateList')
+        closeDialog();
+        resetForm();
+      })
+      .finally(() => (btnLoading.value = false))
+      }
+  });
+};
+
+const resetForm = () => {
+  ruleForm.value  = {
+    id: 0,
+    types: "1",
+    name: "",
+    userId: "",
+    password: "",
+    appSecret: "",
+    remark: "",
+    appKey: "",
+    restUrl: ""
+  }
+}
+
+/**
+ * 取消
+ */
+const onCancel = () => {
+  closeDialog();
+};
+
+/**
+ * 关闭弹窗
+ */
+const closeDialog = () => {
+  isShowDialog.value = false;
+};
+
+
+const formatOperator = (val:any) => {
+  // 1电信,2联通,3移动
+  if(val == 1) {
+    return "电信"
+  }else if(val == 2) {
+    return "联通"
+  }else if(val == 3) {
+    return "移动"
+  }
+}
+
+const formatType = (val:any) => {
+  // 1月卡,2季卡,3年卡,4其他
+  if(val == 1) {
+    return "月卡"
+  }else if(val == 2) {
+    return "季卡"
+  }else if(val == 3) {
+    return "年卡"
+  }else if(val == 4) {
+    return "其他"
+  }
+}
+
+const formatStatus = (val:any) => {
+  // 1:可激活 2:测试激活 3:测试去激活 4:在用5:停机6:运营商管理状态
+  if(val == 1) {
+    return "可激活"
+  }else if(val == 2) {
+    return "测试激活"
+  }else if(val == 3) {
+    return "测试去激活"
+  }else if(val == 4) {
+    return "在用"
+  }else if(val == 5) {
+    return "停机"
+  }else if(val == 6) {
+    return "运营商管理状态"
+  }
+}
+
+const openDialog = (item:any) => {
+  console.log(item)
+  // router.push('/iotmanager/iotCard/index/detail/'+item.id);
+  if(item) {
+    // 修改
+    ruleForm.value = { ...item };
+  }
+  isShowDialog.value = true;
+}
+
+defineExpose({ openDialog })
+</script>

+ 30 - 17
src/views/iot/iotCard/platformManage/index.vue

@@ -4,7 +4,7 @@
     <el-card shadow="nover" class="page-full-part">
       <el-form :model="params" inline ref="queryRef">
         <el-form-item prop="deptName" class="mr10">
-          <el-input @keyup.enter.native="getList" style="width: 240px;" v-model="params.keyWord" placeholder="请输入ICCID或卡号" clearable />
+          <el-input @keyup.enter.native="getList" style="width: 240px;" v-model="params.keyWord" placeholder="请输入关键字搜索" clearable />
         </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="getList">
@@ -19,6 +19,12 @@
             </el-icon>
             重置
           </el-button>
+          <el-button type="primary" @click="toAddItemPage()">
+            <el-icon>
+              <ele-FolderAdd />
+            </el-icon>
+            新增
+          </el-button>
         </el-form-item>
       </el-form>
       <el-table
@@ -28,11 +34,14 @@
         style="width: 100%"
       >
         <el-table-column label="名称" prop="name" align="center" />
-        <el-table-column label="平台类型" prop="types" align="center">
+        <!-- <el-table-column label="平台类型" prop="types" align="center">
         	<template #default="scope">{{ formatOperator(scope.row.types) }}</template>
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column label="状态" prop="simStatus" align="center">
-        	<template #default="scope">{{ formatStatus(scope.row.simStatus) }}</template>
+        	<template #default="scope">
+            <el-tag type="primary" v-if="scope.row.status">{{ formatStatus(scope.row.status) }}</el-tag>
+            <el-tag type="danger" v-else>{{ formatStatus(scope.row.status) }}</el-tag>
+            </template>
         </el-table-column> 
         <el-table-column label="说明" prop="remark" align="center" />       
 
@@ -52,14 +61,18 @@
       />
     </el-card>
     <!-- <EditDept ref="editDeptRef" @deptList="deptList" /> -->
+    <AddOrEditItem ref="AddOrEditItemRef" @updateList="getList()" />
   </div>
 </template>
 
 <script lang="ts" setup>
 import api from '/@/api/iotCard';
+import { defineAsyncComponent, ref, reactive, onMounted } from 'vue';
 import { ElMessageBox, ElMessage } from 'element-plus';
 import { useSearch } from "/@/hooks/useCommon"
 import { useRouter } from 'vue-router';
+const AddOrEditItem = defineAsyncComponent(() => import('./addOrEditItem.vue'));
+
 const { params, tableData, getList, loading } = useSearch<any[]>(
   api.platform.getList,
   "Data"
@@ -69,6 +82,8 @@ getList();
 
 const router = useRouter();
 
+const AddOrEditItemRef = ref();
+
 /** 重置按钮操作 */
 const resetQuery = () => {
 	params.keyWord = ""
@@ -115,23 +130,21 @@ const formatType = (val:any) => {
 }
 
 const formatStatus = (val:any) => {
-  // 1:可激活 2:测试激活 3:测试去激活 4:在用5:停机6:运营商管理状态
+  // 1:开启 0:禁用
   if(val == 1) {
-    return "可激活"
-  }else if(val == 2) {
-    return "测试激活"
-  }else if(val == 3) {
-    return "测试去激活"
-  }else if(val == 4) {
-    return "在用"
-  }else if(val == 5) {
-    return "停机"
-  }else if(val == 6) {
-    return "运营商管理状态"
+    return "开启"
+  }else if(val == 0) {
+    return "禁用"
   }
 }
 
 const onOpenDetail = (item:any) => {
-  router.push('/iotmanager/iotCard/index/detail/'+item.id);
+  // router.push('/iotmanager/iotCard/index/detail/'+item.id);
+  AddOrEditItemRef.value.openDialog(item);
+}
+
+const toAddItemPage = () => {
+  AddOrEditItemRef.value.openDialog();
+  // router.push('/iotmanager/iotCard/platformManage/add');
 }
 </script>