diff --git a/.env b/.env index f390579..f15851b 100644 --- a/.env +++ b/.env @@ -1,4 +1,5 @@ VITE_BASE_URL=http://192.168.0.17:8001/ VITE_PROXY=/api VITE_FILE_URL=https://file.zcloudchina.com/YTHFile +VITE_TEMPLATE_URL='https://qaaq.qhdsafety.com/file/' diff --git a/package.json b/package.json index ffcc693..0d617c2 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,10 @@ "lint": "eslint --ext .js,.vue --fix src .prettierrc.cjs" }, "dependencies": { - "@element-plus/icons-vue": "^2.1.0", + "@element-plus/icons-vue": "^2.3.1", "@icon-park/vue-next": "^1.4.2", "@vueuse/core": "^9.13.0", - "@vueuse/integrations": "^10.7.0", + "@vueuse/integrations": "^10.7.1", "animate.css": "^4.1.1", "axios": "^1.6.3", "dayjs": "^1.11.10", @@ -22,39 +22,39 @@ "mitt": "^3.0.1", "normalize.css": "^8.0.1", "pinia": "^2.1.7", - "pinia-plugin-persistedstate": "^3.2.0", + "pinia-plugin-persistedstate": "^3.2.1", "qrcode": "^1.5.3", "qs": "^6.11.2", "throttle-debounce": "^5.0.0", "v-viewer": "^3.0.11", - "vue": "^3.3.13", + "vue": "^3.4.3", "vue-router": "^4.2.5", "vue3-print-nb": "^0.1.4", - "vue3-puzzle-vcode": "^1.0.16" + "vue3-puzzle-vcode": "^1.1.5" }, "devDependencies": { "@our-patches/postcss-px-to-viewport": "^1.2.0", - "@types/node": "^18.18.4", - "@vitejs/plugin-basic-ssl": "^1.0.1", - "@vitejs/plugin-vue": "^4.4.0", + "@types/node": "^18.19.4", + "@vitejs/plugin-basic-ssl": "^1.0.2", + "@vitejs/plugin-vue": "^4.6.2", "@vue/eslint-config-prettier": "^7.1.0", "autoprefixer": "^10.4.16", - "eslint": "^8.51.0", + "eslint": "^8.56.0", "eslint-config-prettier": "^8.10.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-import": "^2.28.1", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-n": "^15.7.0", "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-vue": "^9.17.0", + "eslint-plugin-vue": "^9.19.2", "prettier": "^2.8.8", "sass": "^1.69.0", "unplugin-auto-import": "^0.12.2", "unplugin-vue-components": "^0.22.12", - "vite": "^4.4.11", + "vite": "^4.5.1", "vite-plugin-enhance-log": "^0.5.2", "vite-plugin-eslint": "^1.8.1", - "vite-plugin-remove-console": "^2.1.1", - "vue-eslint-parser": "^9.3.1" + "vite-plugin-remove-console": "^2.2.0", + "vue-eslint-parser": "^9.3.2" } } diff --git a/src/addRouters.js b/src/addRouters.js index 80d22e9..edf19ca 100644 --- a/src/addRouters.js +++ b/src/addRouters.js @@ -10,7 +10,10 @@ import asyncRouter from "@/assets/js/asyncRouter"; import { getAsyncRouter } from "@/request/api"; // import { getRouteTreeAll } from "@/request/system_management.js"; -const modules = import.meta.glob("./views/**/*.vue"); // 获取到views下所有的vue文件 +const modules = import.meta.glob([ + "./views/**/*.vue", + "!./views/**/components/*.vue", +]); // 获取到views下所有的vue文件 let storageRouter = null; // 用来获取后台拿到的路由 router.beforeEach(async (to, from, next) => { diff --git a/src/assets/css/element.scss b/src/assets/css/element.scss index 3dc9ee2..ccfd9b9 100644 --- a/src/assets/css/element.scss +++ b/src/assets/css/element.scss @@ -380,6 +380,12 @@ color: var(--el-text-color-regular) !important; } -.el-step__title{ - font-size: 14px !important;; +.el-step__title { + font-size: 14px !important; +} + +.el-step__description { + * { + font-size: 12px !important; + } } diff --git a/src/assets/js/asyncRouter.js b/src/assets/js/asyncRouter.js index ef57832..35f8687 100644 --- a/src/assets/js/asyncRouter.js +++ b/src/assets/js/asyncRouter.js @@ -75,4 +75,249 @@ export default [ }, ], }, + { + path: "/confined_space", + redirect: "/confined_space/job_data", + meta: { title: "受限空间作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/confined_space/job_data", + meta: { title: "受限空间作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "confined_space/job_data/index" }, + { + path: "/confined_space/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/confined_space/job_data", + }, + component: "confined_space/job_data/view", + }, + ], + }, + { + path: "/confined_space/ledger", + meta: { title: "受限空间台账", isSubMenu: false }, + component: "confined_space/ledger/index", + }, + { + path: "/confined_space/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "confined_space/archive/index" }, + { + path: "/confined_space/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/confined_space/archive", + }, + component: "confined_space/archive/view", + }, + ], + }, + ], + }, + { + path: "/blind_plate_plugging", + redirect: "/blind_plate_plugging/job_data", + meta: { title: "盲板抽堵作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/blind_plate_plugging/job_data", + meta: { title: "盲板抽堵作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "blind_plate_plugging/job_data/index" }, + { + path: "/blind_plate_plugging/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/blind_plate_plugging/job_data", + }, + component: "blind_plate_plugging/job_data/view", + }, + ], + }, + { + path: "/blind_plate_plugging/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "blind_plate_plugging/archive/index" }, + { + path: "/blind_plate_plugging/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/blind_plate_plugging/archive", + }, + component: "blind_plate_plugging/archive/view", + }, + ], + }, + ], + }, + { + path: "/groundbreaking", + redirect: "/groundbreaking/job_data", + meta: { title: "动土作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/groundbreaking/job_data", + meta: { title: "动土作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "groundbreaking/job_data/index" }, + { + path: "/groundbreaking/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/groundbreaking/job_data", + }, + component: "groundbreaking/job_data/view", + }, + ], + }, + { + path: "/groundbreaking/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "groundbreaking/archive/index" }, + { + path: "/groundbreaking/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/groundbreaking/archive", + }, + component: "groundbreaking/archive/view", + }, + ], + }, + ], + }, + { + path: "/high", + redirect: "/high/job_data", + meta: { title: "高处作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/high/job_data", + meta: { title: "高处作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "high/job_data/index" }, + { + path: "/high/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/high/job_data", + }, + component: "high/job_data/view", + }, + ], + }, + { + path: "/high/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "high/archive/index" }, + { + path: "/high/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/high/archive", + }, + component: "high/archive/view", + }, + ], + }, + ], + }, + { + path: "/hoisting", + redirect: "/hoisting/job_data", + meta: { title: "吊装作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/hoisting/job_data", + meta: { title: "吊装作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "hoisting/job_data/index" }, + { + path: "/hoisting/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/hoisting/job_data", + }, + component: "hoisting/job_data/view", + }, + ], + }, + { + path: "/hoisting/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "hoisting/archive/index" }, + { + path: "/hoisting/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/hoisting/archive", + }, + component: "hoisting/archive/view", + }, + ], + }, + ], + }, + { + path: "/open_circuit", + redirect: "/open_circuit/job_data", + meta: { title: "断路作业管理", model: MODEL["3"] }, + component: "children", + children: [ + { + path: "/open_circuit/job_data", + meta: { title: "断路作业数据", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "open_circuit/job_data/index" }, + { + path: "/open_circuit/job_data/view", + meta: { + title: "审批表详情", + activeMenu: "/open_circuit/job_data", + }, + component: "open_circuit/job_data/view", + }, + ], + }, + { + path: "/open_circuit/archive", + meta: { title: "归档管理", isSubMenu: false }, + component: "children", + children: [ + { path: "", component: "open_circuit/archive/index" }, + { + path: "/open_circuit/archive/view", + meta: { + title: "审批表详情", + activeMenu: "/open_circuit/archive", + }, + component: "open_circuit/archive/view", + }, + ], + }, + ], + }, ]; diff --git a/src/assets/js/data_dictionary.js b/src/assets/js/data_dictionary.js index 8471593..08974eb 100644 --- a/src/assets/js/data_dictionary.js +++ b/src/assets/js/data_dictionary.js @@ -53,6 +53,20 @@ export const layoutFnGetTrainingPlateType = async () => { }); return ref(JSON.parse(resData.zTreeNodes)); }; +// 受限空间类型 +export const layoutFnGetTypeOfConfinedSpace = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "dad23a464729485ba364994942db83cc", + }); + return ref(resData.list); +}; +// 风险等级 +export const layoutFnGetRiskLevel = async () => { + const resData = await getLevels({ + DICTIONARIES_ID: "a178357ce6ce4d6a9ac95def6aca3a14", + }); + return ref(resData.list); +}; // 无法确定DICTIONARIES_ID的数据字典 export const layoutFnGetLevels = async (DICTIONARIES_ID) => { const resData = await getLevels({ DICTIONARIES_ID }); diff --git a/src/assets/js/print.js b/src/assets/js/print.js deleted file mode 100644 index 244fd05..0000000 --- a/src/assets/js/print.js +++ /dev/null @@ -1,39 +0,0 @@ -import { ref } from "vue"; - -const buttonRef = ref(null); -const THEAD_HEIGHT = 81.59; -const A4_HEIGHT_MM = 297; -const A4_HEIGHT_MM_TO_PX_PROPORTION = 3.78; -let A4_HEIGHT_PX = A4_HEIGHT_MM * A4_HEIGHT_MM_TO_PX_PROPORTION - THEAD_HEIGHT; -let elements = []; -const printObj = { - id: "printContent", - closeCallback() { - document.querySelector("#printContent").style.overflow = "hidden"; - }, -}; -const fnPrint = () => { - document.querySelector("#printContent").style.overflow = "visible"; - elements = document.querySelectorAll("#printContent > table > tr"); - if (!document.querySelector("#printContent > table thead")) { - A4_HEIGHT_PX = A4_HEIGHT_PX + THEAD_HEIGHT; - } - fnIsPaging(); - buttonRef.value.$el.click(); -}; -const fnIsPaging = (index = 0) => { - for (let i = index; i < elements.length; i++) { - if ( - elements[i].offsetHeight + - elements[i].offsetTop - - elements[index].offsetTop >= - A4_HEIGHT_PX - ) { - elements[i - 1].setAttribute("class", "page_break"); - fnIsPaging(i === index ? i + 1 : i); - break; - } - } -}; - -export { fnPrint, printObj, buttonRef }; diff --git a/src/assets/js/useButtonJurisdiction.js b/src/assets/js/useButtonJurisdiction.js index 5cbdefb..770855d 100644 --- a/src/assets/js/useButtonJurisdiction.js +++ b/src/assets/js/useButtonJurisdiction.js @@ -1,9 +1,9 @@ import { post } from "@/request/axios"; // 按钮权限 -export const useButtonJurisdiction = async (type) => { +export default async function useButtonJurisdiction(type) { const keys = `${type}:add,${type}:del,${type}:edit,toExcel`; - const resData = await post("/api/head/hasButton", { + const resData = await post("/head/hasButton", { loading: false, keys, }); @@ -13,4 +13,4 @@ export const useButtonJurisdiction = async (type) => { edit: resData[`${type}fhadminedit`], excel: resData.toExcel, }; -}; +} diff --git a/src/assets/js/useListData.js b/src/assets/js/useListData.js index 4f574dd..73ae914 100644 --- a/src/assets/js/useListData.js +++ b/src/assets/js/useListData.js @@ -13,6 +13,8 @@ import { getDataType } from "@/assets/js/utils.js"; export default function useListData(api, options = {}) { if (getDataType(api) !== "Function") throw new Error("api必须是一个函数"); + if (getDataType(options) !== "Object") + throw new Error("options必须是一个对象"); if (options.immediate && getDataType(options.immediate) !== "Boolean") throw new Error("options.immediate必须是一个布尔值"); if (options.usePagination && getDataType(options.usePagination) !== "Boolean") diff --git a/src/assets/js/usePrint.js b/src/assets/js/usePrint.js new file mode 100644 index 0000000..ecfaf04 --- /dev/null +++ b/src/assets/js/usePrint.js @@ -0,0 +1,41 @@ +import { ref } from "vue"; + +export default function usePrint(THEAD_HEIGHT = 81.59) { + const buttonRef = ref(null); + const A4_HEIGHT_MM = 297; + const A4_HEIGHT_MM_TO_PX_PROPORTION = 3.78; + let A4_HEIGHT_PX = + A4_HEIGHT_MM * A4_HEIGHT_MM_TO_PX_PROPORTION - THEAD_HEIGHT; + let elements = []; + const printObj = { + id: "printContent", + closeCallback() { + document.querySelector("#printContent").style.overflow = "hidden"; + }, + }; + const fnPrint = () => { + document.querySelector("#printContent").style.overflow = "visible"; + elements = document.querySelectorAll("#printContent > table > tr"); + if (!document.querySelector("#printContent > table thead")) { + A4_HEIGHT_PX = A4_HEIGHT_PX + THEAD_HEIGHT; + } + fnIsPaging(); + buttonRef.value.$el.click(); + }; + const fnIsPaging = (index = 0) => { + for (let i = index; i < elements.length; i++) { + if ( + elements[i].offsetHeight + + elements[i].offsetTop - + elements[index].offsetTop >= + A4_HEIGHT_PX + ) { + elements[i - 1].setAttribute("style", "page-break-after: always;"); + fnIsPaging(i === index ? i + 1 : i); + break; + } + } + }; + + return { fnPrint, printObj, buttonRef }; +} diff --git a/src/components/print_table_package/index.vue b/src/components/print_table_package/index.vue new file mode 100644 index 0000000..00dcad2 --- /dev/null +++ b/src/components/print_table_package/index.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/request/blind_plate_plugging.js b/src/request/blind_plate_plugging.js new file mode 100644 index 0000000..de605ca --- /dev/null +++ b/src/request/blind_plate_plugging.js @@ -0,0 +1,6 @@ +import { post } from "@/request/axios.js"; + +export const getBlindPlatePluggingList = (params) => + post("/blindboard/list", params); // 盲板抽堵作业管理列表 +export const getBlindPlatePluggingView = (params) => + post("/blindboard/goEdit", params); // 盲板抽堵作业管理查看 diff --git a/src/request/confined_space.js b/src/request/confined_space.js new file mode 100644 index 0000000..e24ffe8 --- /dev/null +++ b/src/request/confined_space.js @@ -0,0 +1,12 @@ +import { post, upload } from "@/request/axios.js"; + +export const getConfinedSpaceList = (params) => + post("/confinedspace/list", params); // 受限空间作业管理列表 +export const getConfinedSpaceView = (params) => + post("/confinedspace/goEdit", params); // 受限空间作业管理查看 +export const getLedgerList = (params) => post("/limitspace/list", params); // 台账列表 +export const setLedgerImport = (params) => + upload("/limitspace/readExcel2", params); // 台账导入 +export const setLedgerAdd = (params) => post("/limitspace/add", params); // 台账添加 +export const setLedgerEdit = (params) => post("/limitspace/edit", params); // 台账修改 +export const setLedgerDelete = (params) => post("/limitspace/delete", params); // 台账删除 diff --git a/src/request/data_dictionary.js b/src/request/data_dictionary.js index da2470e..030427d 100644 --- a/src/request/data_dictionary.js +++ b/src/request/data_dictionary.js @@ -24,3 +24,9 @@ export const getLearningTrainType = (params) => loading: false, ...params, }); +// 获取用户 +export const getUserListAllByCorp = (params) => + post("/user/listUserByCorp", { + loading: false, + ...params, + }); diff --git a/src/request/groundbreaking.js b/src/request/groundbreaking.js new file mode 100644 index 0000000..5e4fa93 --- /dev/null +++ b/src/request/groundbreaking.js @@ -0,0 +1,6 @@ +import { post } from "@/request/axios.js"; + +export const getGroundbreakingList = (params) => + post("/breakground/list", params); // 动土作业管理列表 +export const getGroundbreakingView = (params) => + post("/breakground/goEdit", params); // 动土作业管理查看 diff --git a/src/request/high.js b/src/request/high.js new file mode 100644 index 0000000..9ffffd6 --- /dev/null +++ b/src/request/high.js @@ -0,0 +1,4 @@ +import { post } from "@/request/axios.js"; + +export const getHighList = (params) => post("/highwork/list", params); // 高处作业管理列表 +export const getHighView = (params) => post("/highwork/goEdit", params); // 高处作业管理查看 diff --git a/src/request/hoisting.js b/src/request/hoisting.js new file mode 100644 index 0000000..53a026a --- /dev/null +++ b/src/request/hoisting.js @@ -0,0 +1,4 @@ +import { post } from "@/request/axios.js"; + +export const getHoistingList = (params) => post("/hoisting/list", params); // 吊装作业管理列表 +export const getHoistingView = (params) => post("/hoisting/goEdit", params); // 吊装作业管理查看 diff --git a/src/request/open_circuit.js b/src/request/open_circuit.js new file mode 100644 index 0000000..d43d972 --- /dev/null +++ b/src/request/open_circuit.js @@ -0,0 +1,4 @@ +import { post } from "@/request/axios.js"; + +export const getOpenCircuitList = (params) => post("/cutroad/list", params); // 断路作业管理列表 +export const getOpenCircuitView = (params) => post("/cutroad/goEdit", params); // 断路作业管理查看 diff --git a/src/views/blind_plate_plugging/archive/index.vue b/src/views/blind_plate_plugging/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/blind_plate_plugging/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/blind_plate_plugging/archive/view.vue b/src/views/blind_plate_plugging/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/blind_plate_plugging/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/blind_plate_plugging/job_data/components/flow_chart.vue b/src/views/blind_plate_plugging/job_data/components/flow_chart.vue new file mode 100644 index 0000000..989c0c1 --- /dev/null +++ b/src/views/blind_plate_plugging/job_data/components/flow_chart.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/src/views/blind_plate_plugging/job_data/index.vue b/src/views/blind_plate_plugging/job_data/index.vue new file mode 100644 index 0000000..9dd4433 --- /dev/null +++ b/src/views/blind_plate_plugging/job_data/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/views/blind_plate_plugging/job_data/view.vue b/src/views/blind_plate_plugging/job_data/view.vue new file mode 100644 index 0000000..93e2d61 --- /dev/null +++ b/src/views/blind_plate_plugging/job_data/view.vue @@ -0,0 +1,322 @@ + + + + + diff --git a/src/views/confined_space/archive/index.vue b/src/views/confined_space/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/confined_space/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/confined_space/archive/view.vue b/src/views/confined_space/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/confined_space/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/confined_space/job_data/components/flow_chart.vue b/src/views/confined_space/job_data/components/flow_chart.vue new file mode 100644 index 0000000..fc8083a --- /dev/null +++ b/src/views/confined_space/job_data/components/flow_chart.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/views/confined_space/job_data/index.vue b/src/views/confined_space/job_data/index.vue new file mode 100644 index 0000000..818c43f --- /dev/null +++ b/src/views/confined_space/job_data/index.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/views/confined_space/job_data/view.vue b/src/views/confined_space/job_data/view.vue new file mode 100644 index 0000000..48e1d07 --- /dev/null +++ b/src/views/confined_space/job_data/view.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/src/views/confined_space/ledger/components/add.vue b/src/views/confined_space/ledger/components/add.vue new file mode 100644 index 0000000..4a51976 --- /dev/null +++ b/src/views/confined_space/ledger/components/add.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/confined_space/ledger/components/import_file.vue b/src/views/confined_space/ledger/components/import_file.vue new file mode 100644 index 0000000..41ef4fd --- /dev/null +++ b/src/views/confined_space/ledger/components/import_file.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/views/confined_space/ledger/index.vue b/src/views/confined_space/ledger/index.vue new file mode 100644 index 0000000..830ba5e --- /dev/null +++ b/src/views/confined_space/ledger/index.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/enterprise_management/industry_qualifications/add.vue b/src/views/enterprise_management/industry_qualifications/add.vue index 7fe8a69..8bd36e8 100644 --- a/src/views/enterprise_management/industry_qualifications/add.vue +++ b/src/views/enterprise_management/industry_qualifications/add.vue @@ -2,7 +2,7 @@ @@ -57,6 +57,14 @@ import useFormValidate from "@/assets/js/useFormValidate.js"; const router = useRouter(); const route = useRoute(); const { QUALIFICATIONS_ID } = route.query; +const rules = { + NAME: [{ required: true, message: "名称不能为空", trigger: "blur" }], + VALIDITYTIME: [ + { required: true, message: "证书有效期不能为空", trigger: "blur" }, + ], + NUMBER: [{ required: true, message: "证书编号不能为空", trigger: "blur" }], + file: [{ required: true, message: "证书图片不能为空", trigger: "blur" }], +}; const formRef = ref(null); const data = reactive({ form: { @@ -67,14 +75,6 @@ const data = reactive({ file: [], verifyFileUrl: "12", }, - rules: { - NAME: [{ required: true, message: "名称不能为空", trigger: "blur" }], - VALIDITYTIME: [ - { required: true, message: "证书有效期不能为空", trigger: "blur" }, - ], - NUMBER: [{ required: true, message: "证书编号不能为空", trigger: "blur" }], - file: [{ required: true, message: "证书图片不能为空", trigger: "blur" }], - }, }); const fnGetData = async () => { if (!QUALIFICATIONS_ID) return; diff --git a/src/views/enterprise_management/industry_qualifications/view.vue b/src/views/enterprise_management/industry_qualifications/view.vue index f458eec..83f1869 100644 --- a/src/views/enterprise_management/industry_qualifications/view.vue +++ b/src/views/enterprise_management/industry_qualifications/view.vue @@ -2,21 +2,21 @@ - {{ data.info.NAME }} + {{ info.NAME }} - {{ data.info.VALIDITYTIME }} + {{ info.VALIDITYTIME }} - {{ data.info.NUMBER }} + {{ info.NUMBER }} - {{ data.info.DESCR }} + {{ info.DESCR }} import LayoutCard from "@/components/card/index.vue"; import { getIndustryQualificationsView } from "@/request/enterprise_management.js"; -import { reactive } from "vue"; +import { ref } from "vue"; import { useRoute } from "vue-router"; import { addingPrefixToFile } from "@/assets/js/utils.js"; const route = useRoute(); const { QUALIFICATIONS_ID } = route.query; -const data = reactive({ - info: {}, -}); +const info = ref({}); const fnGetData = async () => { const resData = await getIndustryQualificationsView({ QUALIFICATIONS_ID }); - data.info = resData.pd; - data.info.file = addingPrefixToFile(resData.hImgs); + info.value = resData.pd; + info.value.file = addingPrefixToFile(resData.hImgs); }; fnGetData(); diff --git a/src/views/enterprise_management/information/edit.vue b/src/views/enterprise_management/information/edit.vue index dd541de..3b6eb47 100644 --- a/src/views/enterprise_management/information/edit.vue +++ b/src/views/enterprise_management/information/edit.vue @@ -4,7 +4,7 @@ @@ -486,6 +486,77 @@ const formRef = ref(null); const territoryCascaderRef = ref(null); const industryCascaderRef = ref(null); const economicTypeCascaderRef = ref(null); +const rules = { + CORP_NAME: [{ required: true, message: "企业名称不能为空", trigger: "blur" }], + CODE: [ + { required: true, message: "统一社会信用代码不能为空", trigger: "blur" }, + { + pattern: /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/, + message: "请输入正确的统一社会信用代码", + }, + ], + POSSESSION: [{ required: true, message: "属地不能为空", trigger: "blur" }], + INDUSTRYALL: [ + { required: true, message: "所属行业不能为空", trigger: "blur" }, + ], + ECO_TYPEALL: [ + { required: true, message: "经济类型不能为空", trigger: "blur" }, + ], + ADDRESS_BUSINESS: [ + { + required: true, + message: "企事业单位经营地址不能为空", + trigger: "blur", + }, + ], + CORP_STATE: [ + { required: true, message: "企业状态不能为空", trigger: "blur" }, + ], + LONGITUDE: [{ required: true, message: "经度不能为空", trigger: "blur" }], + LATITUDE: [{ required: true, message: "纬度不能为空", trigger: "blur" }], + CONTACTS: [ + { required: true, message: "主要负责人不能为空", trigger: "blur" }, + ], + CONTACTS_PHONE: [ + { required: true, message: "主要负责人电话不能为空", trigger: "blur" }, + { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, + { + pattern: + /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, + message: "请输入正确的手机号码", + }, + ], + TRAINTYPE: [ + { required: true, message: "培训行业类型不能为空", trigger: "blur" }, + ], + bus_images: [ + { required: true, message: "营业执照不能为空", trigger: "blur" }, + ], + LR_MOBILE: [ + { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, + { + pattern: + /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, + message: "请输入正确的手机号码", + }, + ], + SAFETY_PHONE: [ + { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, + { + pattern: + /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, + message: "请输入正确的手机号码", + }, + ], + SAFETY_NUMBER: [ + { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, + { + pattern: + /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, + message: "请输入正确的手机号码", + }, + ], +}; const data = reactive({ form: { CORP_NAME: "", @@ -537,79 +608,6 @@ const data = reactive({ WHETHER_LIQUIDAMMONIA: "", WHETHER_PIPELINE: "", }, - rules: { - CORP_NAME: [ - { required: true, message: "企业名称不能为空", trigger: "blur" }, - ], - CODE: [ - { required: true, message: "统一社会信用代码不能为空", trigger: "blur" }, - { - pattern: /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/, - message: "请输入正确的统一社会信用代码", - }, - ], - POSSESSION: [{ required: true, message: "属地不能为空", trigger: "blur" }], - INDUSTRYALL: [ - { required: true, message: "所属行业不能为空", trigger: "blur" }, - ], - ECO_TYPEALL: [ - { required: true, message: "经济类型不能为空", trigger: "blur" }, - ], - ADDRESS_BUSINESS: [ - { - required: true, - message: "企事业单位经营地址不能为空", - trigger: "blur", - }, - ], - CORP_STATE: [ - { required: true, message: "企业状态不能为空", trigger: "blur" }, - ], - LONGITUDE: [{ required: true, message: "经度不能为空", trigger: "blur" }], - LATITUDE: [{ required: true, message: "纬度不能为空", trigger: "blur" }], - CONTACTS: [ - { required: true, message: "主要负责人不能为空", trigger: "blur" }, - ], - CONTACTS_PHONE: [ - { required: true, message: "主要负责人电话不能为空", trigger: "blur" }, - { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, - { - pattern: - /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, - message: "请输入正确的手机号码", - }, - ], - TRAINTYPE: [ - { required: true, message: "培训行业类型不能为空", trigger: "blur" }, - ], - bus_images: [ - { required: true, message: "营业执照不能为空", trigger: "blur" }, - ], - LR_MOBILE: [ - { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, - { - pattern: - /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, - message: "请输入正确的手机号码", - }, - ], - SAFETY_PHONE: [ - { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, - { - pattern: - /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, - message: "请输入正确的手机号码", - }, - ], - SAFETY_NUMBER: [ - { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" }, - { - pattern: - /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/, - message: "请输入正确的手机号码", - }, - ], - }, mapDialog: { visible: false, loading: true, diff --git a/src/views/groundbreaking/archive/index.vue b/src/views/groundbreaking/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/groundbreaking/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/groundbreaking/archive/view.vue b/src/views/groundbreaking/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/groundbreaking/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/groundbreaking/job_data/components/flow_chart.vue b/src/views/groundbreaking/job_data/components/flow_chart.vue new file mode 100644 index 0000000..18b6648 --- /dev/null +++ b/src/views/groundbreaking/job_data/components/flow_chart.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/groundbreaking/job_data/index.vue b/src/views/groundbreaking/job_data/index.vue new file mode 100644 index 0000000..eef8e12 --- /dev/null +++ b/src/views/groundbreaking/job_data/index.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/src/views/groundbreaking/job_data/view.vue b/src/views/groundbreaking/job_data/view.vue new file mode 100644 index 0000000..9d58bd7 --- /dev/null +++ b/src/views/groundbreaking/job_data/view.vue @@ -0,0 +1,364 @@ + + + + + diff --git a/src/views/high/archive/index.vue b/src/views/high/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/high/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/high/archive/view.vue b/src/views/high/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/high/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/high/job_data/components/flow_chart.vue b/src/views/high/job_data/components/flow_chart.vue new file mode 100644 index 0000000..30decea --- /dev/null +++ b/src/views/high/job_data/components/flow_chart.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/high/job_data/index.vue b/src/views/high/job_data/index.vue new file mode 100644 index 0000000..7b79c97 --- /dev/null +++ b/src/views/high/job_data/index.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/high/job_data/view.vue b/src/views/high/job_data/view.vue new file mode 100644 index 0000000..a9a6f17 --- /dev/null +++ b/src/views/high/job_data/view.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/src/views/hoisting/archive/index.vue b/src/views/hoisting/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/hoisting/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/hoisting/archive/view.vue b/src/views/hoisting/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/hoisting/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/hoisting/job_data/components/flow_chart.vue b/src/views/hoisting/job_data/components/flow_chart.vue new file mode 100644 index 0000000..160be3d --- /dev/null +++ b/src/views/hoisting/job_data/components/flow_chart.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/hoisting/job_data/index.vue b/src/views/hoisting/job_data/index.vue new file mode 100644 index 0000000..a1949ec --- /dev/null +++ b/src/views/hoisting/job_data/index.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/hoisting/job_data/view.vue b/src/views/hoisting/job_data/view.vue new file mode 100644 index 0000000..38fe49c --- /dev/null +++ b/src/views/hoisting/job_data/view.vue @@ -0,0 +1,340 @@ + + + + + diff --git a/src/views/open_circuit/archive/index.vue b/src/views/open_circuit/archive/index.vue new file mode 100644 index 0000000..1d850bb --- /dev/null +++ b/src/views/open_circuit/archive/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/open_circuit/archive/view.vue b/src/views/open_circuit/archive/view.vue new file mode 100644 index 0000000..2a5eb71 --- /dev/null +++ b/src/views/open_circuit/archive/view.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/open_circuit/job_data/components/flow_chart.vue b/src/views/open_circuit/job_data/components/flow_chart.vue new file mode 100644 index 0000000..06ebff5 --- /dev/null +++ b/src/views/open_circuit/job_data/components/flow_chart.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/src/views/open_circuit/job_data/index.vue b/src/views/open_circuit/job_data/index.vue new file mode 100644 index 0000000..54cb472 --- /dev/null +++ b/src/views/open_circuit/job_data/index.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/src/views/open_circuit/job_data/view.vue b/src/views/open_circuit/job_data/view.vue new file mode 100644 index 0000000..498180f --- /dev/null +++ b/src/views/open_circuit/job_data/view.vue @@ -0,0 +1,356 @@ + + + + +