gemercheung 9 mēneši atpakaļ
vecāks
revīzija
ddbecfb258

+ 1 - 1
.env.production

@@ -1,4 +1,4 @@
 VITE_QJ_URL=https://4dkankan.com/panorama
-VITE_LASER_URL=/4pc
+VITE_LASER_URL=/swss
 VITE_API=http://192.168.9.27/
 VITE_4DKK_URL=/swkk

+ 3 - 3
src/router.ts

@@ -113,10 +113,10 @@ const routes: RouteRecordRaw[] = [
         component: () => import("@/view/users.vue"),
       },
       {
-        path: "platform-users",
-        name: "platform-users",
+        path: "org-users",
+        name: "org-users",
         meta: { title: "单位用户", svgIcon: 'yhgl' },
-        component: () => import("@/view/platform-users/users.vue"),
+        component: () => import("@/view/org-users/users.vue"),
       },
     ],
   },

+ 3 - 0
src/store/scene.ts

@@ -163,6 +163,7 @@ export enum SceneStatus {
   ERR = -1,
   RUN = 0,
   SUCCESS = 1,
+  QUEUE = 5
   // DEL = 2,
   // ARCHIVE = 3,
   // RERUN = 4,
@@ -183,9 +184,11 @@ export const SceneStatusDesc: { [key in SceneStatus]: string } = {
   // [SceneStatus.DEL]: "场景被删",
   // [SceneStatus.ARCHIVE]: "封存",
   // [SceneStatus.RERUN]: "重新计算中",
+  [SceneStatus.QUEUE]: "排队中",
   [SceneStatus.RUN]: "计算中",
   [SceneStatus.ERR]: "计算失败",
   [SceneStatus.SUCCESS]: "计算成功",
+
 };
 
 export const boardData = ref<PolygonsAttrib & { id: string }>();

+ 1 - 1
src/view/layout/nav.vue

@@ -135,7 +135,7 @@ const showBack = computed(() => {
   &.relics,
   &.device,
   &.organization,
-  &.platform-users,
+  &.org-users,
   &.users {
     .content {
       .view {

+ 2 - 2
src/view/layout/slide/index.vue

@@ -35,7 +35,7 @@ const normal_name = [
   "organization",
   "users",
   "no-persession",
-  "platform-users",
+  "org-users",
 ];
 const super_names = [
   "scene",
@@ -44,7 +44,7 @@ const super_names = [
   "organization",
   "users",
   "no-persession",
-  "platform-users",
+  "org-users",
 ];
 console.log("isSuper", isSuper.value);
 

src/view/platform-users/quisk.ts → src/view/org-users/quisk.ts


src/view/platform-users/users-add.vue → src/view/org-users/users-add.vue


src/view/platform-users/users-edit.vue → src/view/org-users/users-edit.vue


src/view/platform-users/users-password-edit.vue → src/view/org-users/users-password-edit.vue


src/view/platform-users/users.vue → src/view/org-users/users.vue


+ 2 - 2
src/view/organization-add.vue

@@ -43,7 +43,7 @@
       >
       </el-tree-select>
     </el-form-item> -->
-    <el-form-item label="联系人" prop="contact" required>
+    <el-form-item label="姓名" prop="contact" required>
       <el-input
         v-model.trim="data.contact"
         style="width: 300px"
@@ -111,7 +111,7 @@ const allOrgs = ref<SelectType[]>([]);
 const rules = reactive<FormRules>({
   orgName: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
   type: [{ required: true, message: "请选择类型", trigger: "change" }],
-  contact: [{ required: true, message: "请输入联系人", trigger: "blur" }],
+  contact: [{ required: true, message: "请输入姓名", trigger: "blur" }],
   userName: [
     {
       required: true,

+ 1 - 1
src/view/organization-edit.vue

@@ -32,7 +32,7 @@ const rules = reactive<FormRules>({
     { required: true, message: "请选择类型", trigger: "change" },
   ],
   contact: [
-    { required: true, message: "请输入联系人", trigger: "blur" },
+    { required: true, message: "请输入姓名", trigger: "blur" },
   ],
   userName: [
     { required: true, pattern: /^1[3456789]\d{9}$/, message: "请输入正确手机号", trigger: "blur" },

+ 1 - 1
src/view/organization.vue

@@ -49,7 +49,7 @@
           {{ row.type ? OrganizationTypeDesc[row.type] : "" }}
         </el-table-column> -->
         <el-table-column label="单位账号" prop="userName"></el-table-column>
-        <el-table-column label="单位联系人" prop="contact"></el-table-column>
+        <el-table-column label="单位姓名" prop="contact"></el-table-column>
 
         <el-table-column
           label="创建时间"

+ 80 - 56
src/view/users-add.vue

@@ -1,30 +1,51 @@
 <template>
-
   <el-form label-width="100px" :model="data" :rules="rules" ref="baseFormRef">
-    <el-form-item label="单位名称" prop="orgId" required>
-      <!-- <el-autocomplete style="width: 300px" v-model="data.orgName" :fetch-suggestions="querySearch" clearable
-        class="inline-input w-50" placeholder="请输入" @select="handleSelect" /> -->
-      <el-tree-select   :check-strictly="true" :props="{
+    <!-- <el-form-item label="单位名称" prop="orgId" required>
+      <el-tree-select
+        :check-strictly="true"
+        :props="{
         value: 'orgId',
         label: (data: any) => data.orgName,
-      }" style="width: 300px" v-model="data.orgId" :data="allOrgs" node-key="orgId" @node-click="handleNodeClick"
-        clearable>
-        <!-- <el-option :value="Number(id)" :label="value" v-for="{ value, id } in allOrgs" /> -->
+      }"
+        style="width: 300px"
+        v-model="data.orgId"
+        :data="allOrgs"
+        node-key="orgId"
+        @node-click="handleNodeClick"
+        clearable
+      >
       </el-tree-select>
-    </el-form-item>
+    </el-form-item> -->
 
     <el-form-item label="姓名" prop="nickName" required>
-      <el-input v-model="data.nickName" style="width: 300px" :maxlength="15" placeholder="请输入" />
+      <el-input
+        v-model="data.nickName"
+        style="width: 300px"
+        :maxlength="15"
+        placeholder="请输入"
+      />
     </el-form-item>
     <el-form-item label="账号" prop="userName" required>
-      <el-input v-model="data.userName" style="width: 300px" :maxlength="11" placeholder="请输入手机号" />
+      <el-input
+        v-model="data.userName"
+        style="width: 300px"
+        :maxlength="11"
+        placeholder="请输入手机号"
+      />
     </el-form-item>
     <el-form-item label="密码" prop="password" required>
-      <el-input autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" v-model="data.password"
-        :type="addPassFlag ? 'text' : 'password'" style="width: 300px" :maxlength="500"
-        placeholder="请输入8-16位数字、字母大小写组合">
+      <el-input
+        autocomplete="off"
+        readonly
+        onfocus="this.removeAttribute('readonly');"
+        v-model="data.password"
+        :type="addPassFlag ? 'text' : 'password'"
+        style="width: 300px"
+        :maxlength="500"
+        placeholder="请输入8-16位数字、字母大小写组合"
+      >
         <template #suffix>
-          <span @click="addPassFlag = !addPassFlag" style="cursor: pointer;">
+          <span @click="addPassFlag = !addPassFlag" style="cursor: pointer">
             <el-icon v-if="addPassFlag">
               <View />
             </el-icon>
@@ -34,7 +55,6 @@
           </span>
         </template>
       </el-input>
-
     </el-form-item>
   </el-form>
 </template>
@@ -43,82 +63,86 @@
 import { QuiskExpose } from "@/helper/mount";
 import { ElMessage, type FormInstance, type FormRules } from "element-plus";
 // import { ElMessage } from "element-plus";
-import type { OrganizationType } from '@/request/organization'
-import {
-  getOrgListFetchList,
-  UserType
-} from "@/request";
+import type { OrganizationType } from "@/request/organization";
+import { getOrgListFetchList, UserType } from "@/request";
 
 import { ref, reactive, unref, onMounted, watch } from "vue";
-import { View, Hide } from '@element-plus/icons-vue';
+import { View, Hide } from "@element-plus/icons-vue";
 // import { user } from '@/store/user'
 
-const addPassFlag = ref(true) //图标显示标识
+const addPassFlag = ref(true); //图标显示标识
 
 const baseFormRef = ref<FormInstance>();
 
 type SelectType = {
-  orgName: string,
-  orgId: number
-  children: SelectType[]
-}
+  orgName: string;
+  orgId: number;
+  children: SelectType[];
+};
 
 const allOrgs = ref<SelectType[]>([]);
 
 const rules = reactive<FormRules>({
-  orgId: [
-    { required: true, message: "请选择单位名称", trigger: "select" },
-  ],
-  nickName: [
-    { required: true, message: "请输入姓名", trigger: "blur" },
-
-  ],
+  orgId: [{ required: true, message: "请选择单位名称", trigger: "select" }],
+  nickName: [{ required: true, message: "请输入姓名", trigger: "blur" }],
   userName: [
     { required: true, message: "请输入账号", trigger: "blur" },
-    { required: true, pattern: /^1[3456789]\d{9}$/, message: "请输入手机号", trigger: "blur" },
+    {
+      required: true,
+      pattern: /^1[3456789]\d{9}$/,
+      message: "请输入手机号",
+      trigger: "blur",
+    },
   ],
   password: [
-    { required: true, pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/, message: "请输入8-16位数字、字母大小写组合", trigger: "blur" },
-    { required: true, min: 8, message: '密码太短!', trigger: "blur" },
+    {
+      required: true,
+      pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$/,
+      message: "请输入8-16位数字、字母大小写组合",
+      trigger: "blur",
+    },
+    { required: true, min: 8, message: "密码太短!", trigger: "blur" },
   ],
-},)
+});
 
 const props = defineProps<{
   submit: (data: OrganizationType) => Promise<any>;
 }>();
 const data = ref<Partial<OrganizationType> & Partial<UserType>>({
   nickName: "",
-  orgId: undefined,
+  // orgId: undefined,
   password: "",
   status: 0,
   // userId: 0,
   userName: "",
   type: 0,
 });
-watch(data, (newValue) => {
-  // data.value.userName = newValue.userName.replace(/[^A-Za-z0-9]/g, '');
-  data.value.userName = newValue.userName.replace(/[^0-9]/g, '');
-}, {
-  immediate: true,
-  deep: true
-});
+watch(
+  data,
+  (newValue) => {
+    // data.value.userName = newValue.userName.replace(/[^A-Za-z0-9]/g, '');
+    data.value.userName = newValue.userName.replace(/[^0-9]/g, "");
+  },
+  {
+    immediate: true,
+    deep: true,
+  }
+);
 onMounted(async () => {
-  const data = await getOrgListFetchList()
+  const data = await getOrgListFetchList();
 
   // console.log('allOrgs', data);
-  allOrgs.value = data as any as SelectType[]
+  allOrgs.value = data as any as SelectType[];
   // allOrgs.value = Array.from(data.records).map((item: OrganizationType) => {
   //   const i: SelectType = { value: item['orgName'], id: item['orgId'] }
   //   return i
   // });
-
-})
+});
 
 const handleNodeClick = (node: SelectType) => {
-  data.value.orgId = node.orgId
-  console.log('handleNodeClick', node.orgId, data.value)
-}
-
+  data.value.orgId = node.orgId;
+  console.log("handleNodeClick", node.orgId, data.value);
+};
 
 defineExpose<QuiskExpose>({
   async submit() {
@@ -126,11 +150,11 @@ defineExpose<QuiskExpose>({
       const res = await unref(baseFormRef)?.validate();
       if (res) {
         await props.submit(data.value as any as OrganizationType);
-        ElMessage.success('新增成功!');
+        ElMessage.success("新增成功!");
       }
     } else {
       throw "";
     }
   },
 });
-</script>
+</script>

+ 3 - 3
src/view/users.vue

@@ -6,9 +6,9 @@
           <el-form-item label="用户账号">
             <el-input v-model="pageProps.userName" clearable style="width: 250px" placeholder="请输入" />
           </el-form-item>
-          <el-form-item label="所属单位">
+          <!-- <el-form-item label="所属单位">
             <el-input v-model="pageProps.orgName" clearable style="width: 250px" placeholder="请输入" />
-          </el-form-item>
+          </el-form-item> -->
 
           <el-form-item>
             <el-button type="primary" @click="refresh">查询</el-button>
@@ -29,7 +29,7 @@
           {{ DeviceTypeDesc[row.cameraType] }}
         </el-table-column> -->
 
-        <el-table-column label="所属单位" prop="orgName"> </el-table-column>
+        <!-- <el-table-column label="所属单位" prop="orgName"> </el-table-column> -->
         <el-table-column label="角色" prop="roleNames"> </el-table-column>
         <el-table-column label="创建人" prop="createBy"> </el-table-column>
         <el-table-column label="创建时间" prop="createTime" v-slot:default="{ row }">