feat: 新增安全环保检查模块,页面开发完成

mengfanliang-dev-pitfall
mengfanliang 2024-08-15 16:11:23 +08:00
parent 347f8eef3f
commit 66bacc172e
22 changed files with 4122 additions and 156 deletions

404
Mock/safetyEnvirData.js Normal file
View File

@ -0,0 +1,404 @@
export const initiateList = [
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "季度安全检查",
INSPECTED_SITEUSER_ID: "440d55fb769d4ce08a022c42a06c8435",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "4e906353c6904706bfae27b63a245b68",
INSPECTION_TYPE: "INSPECTION_TYPE001",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,曹煤炭测试人员0",
INSPECTED_SITEUSER_SIGN_TIME: "",
INSPECTION_USER_ID: "1,440d55fb769d4ce08a022c42a06c8435",
OPERATTIME: "2024-07-10 17:29:14",
INSPECTED_DEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_TIME_START: "2024-07-10 00:00",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试厂队部门",
INSPECTION_LEADDEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_LEADDEPARTMENT_NAME: "测试厂队部门",
INSPECTION_PLACE: "测试07101726",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG: "",
INSPECTION_TIME_END: "2024-07-12 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,曹煤炭测试人员0",
INSPECTION_STATUS: "0",
OPERATOR: "1",
INSPECTED_SITEUSER_NAME: "曹煤炭测试人员0",
CREATTIME: "2024-07-10 17:29:14",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "季度检查",
INSPECTED_SITEUSER_ID: "440d55fb769d4ce08a022c42a06c8435",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "4aa2d6a115424d27bf26cc4cafddb203",
INSPECTION_TYPE: "INSPECTION_TYPE005",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,曹煤炭测试人员0",
INSPECTED_SITEUSER_SIGN_TIME: "",
INSPECTION_USER_ID: "1,440d55fb769d4ce08a022c42a06c8435",
OPERATTIME: "2024-07-10 17:11:40",
INSPECTED_DEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_TIME_START: "2024-07-10 00:00",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试厂队部门",
INSPECTION_LEADDEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_LEADDEPARTMENT_NAME: "测试厂队部门",
INSPECTION_PLACE: "测试07101711",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG: "",
INSPECTION_TIME_END: "2024-07-11 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,曹煤炭测试人员0",
INSPECTION_STATUS: "0",
OPERATOR: "1",
INSPECTED_SITEUSER_NAME: "曹煤炭测试人员0",
CREATTIME: "2024-07-10 17:11:40",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "季度安全检查",
INSPECTED_SITEUSER_ID: "440d55fb769d4ce08a022c42a06c8435",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "139d2e5c769f401a8ba5d789d1852b6b",
INSPECTION_TYPE: "INSPECTION_TYPE001",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,齐津铖测试",
INSPECTED_SITEUSER_SIGN_TIME: "",
INSPECTION_USER_ID: "1,c49e1aff858b415eb276afb6b715d6e5",
OPERATTIME: "2024-07-10 17:01:42",
INSPECTED_DEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_TIME_START: "2024-07-10 00:00",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试厂队部门",
INSPECTION_LEADDEPARTMENT_ID: "c31058273a2d40f9b83dd8e5ae3a723c",
INSPECTION_LEADDEPARTMENT_NAME: "安全监督部",
INSPECTION_PLACE: "测试07101700",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG: "",
INSPECTION_TIME_END: "2024-07-12 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,齐津铖测试18733455078",
INSPECTION_STATUS: "0",
OPERATOR: "1",
INSPECTED_SITEUSER_NAME: "曹煤炭测试人员0",
CREATTIME: "2024-07-10 17:01:42",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "季度检查",
INSPECTED_SITEUSER_ID: "440d55fb769d4ce08a022c42a06c8435",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "e96b966170ea44119a5a8e01e60f95bc",
INSPECTION_TYPE: "INSPECTION_TYPE005",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,曹煤炭测试人员0",
INSPECTED_SITEUSER_SIGN_TIME: "",
INSPECTION_USER_ID: "1,440d55fb769d4ce08a022c42a06c8435",
OPERATTIME: "2024-07-10 16:57:29",
INSPECTED_DEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_TIME_START: "2024-07-10 00:00",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试厂队部门",
INSPECTION_LEADDEPARTMENT_ID: "a0975250f26344e0b61a3b44242a0301",
INSPECTION_LEADDEPARTMENT_NAME: "测试厂队部门",
INSPECTION_PLACE: "测试07101637",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG: "",
INSPECTION_TIME_END: "2024-07-13 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,曹煤炭测试人员0",
INSPECTION_STATUS: "0",
OPERATOR: "1",
INSPECTED_SITEUSER_NAME: "曹煤炭测试人员0",
CREATTIME: "2024-07-10 16:57:29",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "月度检查",
INSPECTED_SITEUSER_ID: "f0c2c728c85446b0b96a370f5f8da38f",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "cf8a0b5e5cce4a64bbaae37ae7106d61",
INSPECTION_TYPE: "INSPECTION_TYPE006",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,卓云企业",
INSPECTED_SITEUSER_SIGN_TIME: "2024-04-26 15:02",
INSPECTION_USER_ID: "1,f0c2c728c85446b0b96a370f5f8da38f",
OPERATTIME: "2024-04-26 15:06:19",
INSPECTED_DEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_TIME_START: "2024-04-26 15:00",
INSPECTED_CORPINFO_ID_NAME: "卓云企业",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "卓云企业",
INSPECTION_LEADDEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_LEADDEPARTMENT_NAME: "卓云企业",
INSPECTION_PLACE: "66",
CORPINFO_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/13cf0f4ec77e4d98ae8cdd9c3386ae0c/20240426/dc80762c855c4820adb41a1ee78ca5da.png",
INSPECTION_TIME_END: "2024-04-27 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,卓云企业",
INSPECTION_STATUS: "6",
OPERATOR: "fc7000e2e9f541e09cc33b9748712789",
INSPECTED_SITEUSER_NAME: "卓云企业",
CREATTIME: "2024-04-26 15:01:10",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "年度检查",
INSPECTED_SITEUSER_ID: "f0c2c728c85446b0b96a370f5f8da38f",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "dace71ff0f3c4fff86ac2e1f5486c8e4",
INSPECTION_TYPE: "INSPECTION_TYPE004",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,卓云企业",
INSPECTED_SITEUSER_SIGN_TIME: "2024-04-26 09:54",
INSPECTION_USER_ID: "1,f0c2c728c85446b0b96a370f5f8da38f",
OPERATTIME: "2024-04-26 09:58:09",
INSPECTED_DEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_TIME_START: "2024-04-26 09:52",
INSPECTED_CORPINFO_ID_NAME: "卓云企业",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "卓云企业",
INSPECTION_LEADDEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_LEADDEPARTMENT_NAME: "卓云企业",
INSPECTION_PLACE: "123",
CORPINFO_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/13cf0f4ec77e4d98ae8cdd9c3386ae0c/20240426/c3f1518104234b508995e0d13986152f.png",
INSPECTION_TIME_END: "2024-04-27 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,卓云企业",
INSPECTION_STATUS: "6",
OPERATOR: "fc7000e2e9f541e09cc33b9748712789",
INSPECTED_SITEUSER_NAME: "卓云企业",
CREATTIME: "2024-04-26 09:53:33",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "月度检查",
INSPECTED_SITEUSER_ID: "f0c2c728c85446b0b96a370f5f8da38f",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "6d0d73c9b00a40ce8a5caab53c3ddab9",
INSPECTION_TYPE: "INSPECTION_TYPE006",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "系统管理员,卓云企业",
INSPECTED_SITEUSER_SIGN_TIME: "2024-04-25 14:08",
INSPECTION_USER_ID: "1,f0c2c728c85446b0b96a370f5f8da38f",
OPERATTIME: "2024-04-25 14:12:45",
INSPECTED_DEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_TIME_START: "2024-04-25 00:00",
INSPECTED_CORPINFO_ID_NAME: "卓云企业",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "卓云企业",
INSPECTION_LEADDEPARTMENT_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTION_LEADDEPARTMENT_NAME: "卓云企业",
INSPECTION_PLACE: "132",
CORPINFO_ID: "13cf0f4ec77e4d98ae8cdd9c3386ae0c",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/13cf0f4ec77e4d98ae8cdd9c3386ae0c/20240425/86d91000929548f89e3ce31515f08a50.png",
INSPECTION_TIME_END: "2024-04-26 00:00",
SHOW_INSPECTION_USER_NAME: "系统管理员18788888888,卓云企业",
INSPECTION_STATUS: "6",
OPERATOR: "fc7000e2e9f541e09cc33b9748712789",
INSPECTED_SITEUSER_NAME: "卓云企业",
CREATTIME: "2024-04-25 14:07:46",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "季度检查",
INSPECTED_SITEUSER_ID: "df57edb0fc1f48a59e2696f5fa4105c7",
INSPECTION_ORIGINATOR_ID: "1",
INSPECTION_ORIGINATOR_NAME: "系统管理员",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "fe6cf2942c124ac0a75c159119477a2c",
INSPECTION_TYPE: "INSPECTION_TYPE005",
CREATOR: "1",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "王利俭,系统管理员,赵双龙",
INSPECTED_SITEUSER_SIGN_TIME: "",
INSPECTION_USER_ID:
"0f02e502e4844fc39fa65b7e605b532c,1,26db151828ec4e3c9b65a22be2a7d56a",
OPERATTIME: "2024-03-19 17:37:01",
INSPECTED_DEPARTMENT_ID: "035958e685cf4850bc40151c5e0617a6",
INSPECTION_TIME_START: "2024-03-19 00:00",
INSPECTED_CORPINFO_ID_NAME: "秦港股份一公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "秦港股份一公司",
INSPECTION_LEADDEPARTMENT_ID: "d01a1dcc91334b04a06bbd05494fe59e",
INSPECTION_LEADDEPARTMENT_NAME: "人力资源部",
INSPECTION_PLACE: "312312",
CORPINFO_ID: "035958e685cf4850bc40151c5e0617a6",
INSPECTED_SITEUSER_SIGN_IMG: "",
INSPECTION_TIME_END: "2024-03-20 00:00",
SHOW_INSPECTION_USER_NAME:
"王利俭15903373395,系统管理员18788888888,赵双龙15511753706",
INSPECTION_STATUS: "0",
OPERATOR: "1",
INSPECTED_SITEUSER_NAME: "秦港股份一公司",
CREATTIME: "2024-03-19 17:37:01",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "月度检查",
INSPECTED_SITEUSER_ID: "1ed929160f214bff8c6f16ddfb0cd150",
INSPECTION_ORIGINATOR_ID: "c49e1aff858b415eb276afb6b715d6e5",
INSPECTION_ORIGINATOR_NAME: "齐津铖测试",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "f6b520162f254641ad268fe3ee721a40",
INSPECTION_TYPE: "INSPECTION_TYPE006",
CREATOR: "c49e1aff858b415eb276afb6b715d6e5",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "齐津铖测试",
INSPECTED_SITEUSER_SIGN_TIME: "2024-03-01 13:46",
INSPECTION_USER_ID: "c49e1aff858b415eb276afb6b715d6e5",
OPERATTIME: "2024-03-01 13:46:50",
INSPECTED_DEPARTMENT_ID: "20b51c0c52d742f9836456dde86a366f",
INSPECTION_TIME_START: "2024-03-01 13:42",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试部门2211533",
INSPECTION_LEADDEPARTMENT_ID: "c31058273a2d40f9b83dd8e5ae3a723c",
INSPECTION_LEADDEPARTMENT_NAME: "安全监督部",
INSPECTION_PLACE: "规划局规划局官方",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/cmt/file/6aa255d41602497fa0f934a822820df4/20240301/bba55a500353427da5296b55373c4365.png",
INSPECTION_TIME_END: "2024-03-11 00:00",
SHOW_INSPECTION_USER_NAME: "齐津铖测试18733455078",
INSPECTION_STATUS: "5",
OPERATOR: "1ed929160f214bff8c6f16ddfb0cd150",
INSPECTED_SITEUSER_NAME: "人员2211752",
INSPECTION_DEPARTMENT_NAME: "安全监督部",
CREATTIME: "2024-03-01 13:44:20",
},
{
ISDELETE: "0",
INSPECTION_TYPE_NAME: "月度检查",
INSPECTED_SITEUSER_ID: "1ed929160f214bff8c6f16ddfb0cd150",
INSPECTION_ORIGINATOR_ID: "c49e1aff858b415eb276afb6b715d6e5",
INSPECTION_ORIGINATOR_NAME: "齐津铖测试",
INSPECTION_SUBJECT: "安全",
INSPECTED_EXPLAIN: "",
INSPECTION_ID: "d21c5bb7a007407285a574e0d9173dc5",
INSPECTION_TYPE: "INSPECTION_TYPE006",
CREATOR: "c49e1aff858b415eb276afb6b715d6e5",
INSPECTION_TYPE_OTHER: "",
INSPECTION_USER_NAME: "齐津铖测试",
INSPECTED_SITEUSER_SIGN_TIME: "2024-03-01 13:41",
INSPECTION_USER_ID: "c49e1aff858b415eb276afb6b715d6e5",
OPERATTIME: "2024-03-01 13:41:59",
INSPECTED_DEPARTMENT_ID: "20b51c0c52d742f9836456dde86a366f",
INSPECTION_TIME_START: "2024-03-01 11:41",
INSPECTED_CORPINFO_ID_NAME: "唐山曹妃甸煤炭港务有限公司",
INSPECTION_SOURCE: "4",
INSPECTED_DEPARTMENT_NAME: "测试部门2211533",
INSPECTION_LEADDEPARTMENT_ID: "c31058273a2d40f9b83dd8e5ae3a723c",
INSPECTION_LEADDEPARTMENT_NAME: "安全监督部",
INSPECTION_PLACE: "后果聚光镜",
CORPINFO_ID: "6aa255d41602497fa0f934a822820df4",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/cmt/file/6aa255d41602497fa0f934a822820df4/20240301/f6c6537fc86942c8b78b48d7df825a12.png",
INSPECTION_TIME_END: "2024-03-12 00:00",
SHOW_INSPECTION_USER_NAME: "齐津铖测试18733455078",
INSPECTION_STATUS: "3",
OPERATOR: "1ed929160f214bff8c6f16ddfb0cd150",
INSPECTED_SITEUSER_NAME: "人员2211752",
INSPECTION_DEPARTMENT_NAME: "安全监督部",
CREATTIME: "2024-03-01 11:42:04",
},
];
export const exPlainList = [
{
OPERATTIME: "2024-03-30 17:38:00",
ISDELETE: "0",
INSPECTED_EXPLAIN_FILENAME: "301_d46d6d2d150d4321916233ad9b69a3aa.pdf",
VALID: "0",
CORPINFO_ID: "f8da1790b1034058ae2efefd69af3284",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/f473c269a81e4ca4a0f1790a9ac6892d.png",
INSPECTION_EXPLAIN_ID: "e3ca91dbbf4e424e910182827dcec2ef",
INSPECTED_EXPLAIN_FILEPATH:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/21d38d6dae6a4da9bfd8c1b3f75971ef.pdf",
INSPECTED_EXPLAIN: "fghfghgf",
ISPASS: "1",
INSPECTION_ID: "b5d2806f2b59420b8ba3d53e89593040",
OPERATOR: "aa7ef3fec1bb4b998b624613f71c7090",
CREATOR: "aa7ef3fec1bb4b998b624613f71c7090",
INSPECTION_CREATOR: "272477e0441b4160b80742d440745286",
INSPECTED_SITEUSER_SIGN_TIME: "2024-03-30 17:37",
CREATTIME: "2024-03-30 17:37:10",
},
{
OPERATTIME: "2024-03-30 17:33:01",
ISDELETE: "0",
INSPECTED_EXPLAIN_FILENAME: "301_d46d6d2d150d4321916233ad9b69a3aa.pdf",
VALID: "0",
CORPINFO_ID: "f8da1790b1034058ae2efefd69af3284",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/2c8be161dcb7492c897742f98383c560.png",
INSPECTION_EXPLAIN_ID: "4b0bb05aa8014358b1bd3c361bca500e",
INSPECTED_EXPLAIN_FILEPATH:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/7738d591edd04d509b9671a21963f876.pdf",
INSPECTED_EXPLAIN: "hgjghjgh ",
ISPASS: "1",
INSPECTION_ID: "b5d2806f2b59420b8ba3d53e89593040",
OPERATOR: "aa7ef3fec1bb4b998b624613f71c7090",
CREATOR: "aa7ef3fec1bb4b998b624613f71c7090",
INSPECTION_CREATOR: "272477e0441b4160b80742d440745286",
INSPECTED_SITEUSER_SIGN_TIME: "2024-03-30 17:32",
CREATTIME: "2024-03-30 17:32:10",
},
{
OPERATTIME: "2024-03-30 17:40:37",
ISDELETE: "0",
INSPECTED_EXPLAIN_FILENAME: "301_796b75f9424044228c6a80c1d347cfd9.pdf",
VALID: "0",
CORPINFO_ID: "f8da1790b1034058ae2efefd69af3284",
INSPECTED_SITEUSER_SIGN_IMG:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/a4657b26424247c6a91c7a3825ab29c4.png",
INSPECTION_EXPLAIN_ID: "b0cd22b9fe304021865ff3218e90dc31",
INSPECTED_EXPLAIN_FILEPATH:
"/uploadFiles/file/f8da1790b1034058ae2efefd69af3284/20240330/fe5403e7fb7c4865a6c4d733af8ebcf5.pdf",
INSPECTED_EXPLAIN: "hjghjgh",
ISPASS: "1",
INSPECTION_ID: "b5d2806f2b59420b8ba3d53e89593040",
OPERATOR: "aa7ef3fec1bb4b998b624613f71c7090",
CREATOR: "aa7ef3fec1bb4b998b624613f71c7090",
INSPECTION_CREATOR: "272477e0441b4160b80742d440745286",
INSPECTED_SITEUSER_SIGN_TIME: "2024-03-30 17:38",
CREATTIME: "2024-03-30 17:39:09",
},
];

View File

@ -1,68 +1,134 @@
import { post, upload, uploads } from "../utils/request";
export const submitLogin = (params) => post("/app/admin/check", params); // 登录
/** 登录 */
export const submitLogin = (params) => post("/app/admin/check", params);
/** 身份证去重 */
export const getIDCardDeduplication = (params) =>
post("/app/user/hasCardIdForApp", params); // 身份证去重
post("/app/user/hasCardIdForApp", params);
/** 用户名去重 */
export const getUserDeduplication = (params) =>
post("/app/user/hasUserNameForApp", params); // 用户名去重
post("/app/user/hasUserNameForApp", params);
/** 手机号去重 */
export const getPhoneNumberDeduplication = (params) =>
post("/app/user/hasPhoneForApp", params); // 手机号去重
export const setRegister = (params) => post("/app/admin/register", params); // 注册
post("/app/user/hasPhoneForApp", params);
/** 注册 */
export const setRegister = (params) => post("/app/admin/register", params);
/** 忘记密码 */
export const setForgotPassword = (params) =>
post("/app/admin/forgetPassword", params); // 忘记密码
post("/app/admin/forgetPassword", params);
/** 电子工牌 */
export const getElectronicWorkCard = (params) =>
post("/app/user/getUserDetailInfoByUserIdForApp", params); // 电子工牌
post("/app/user/getUserDetailInfoByUserIdForApp", params);
/** 电子工牌二维码 */
export const getElectronicWorkCardQRCode = (params) =>
post("/app/user/generateQRCodeImageByUserId", params); // 电子工牌二维码
post("/app/user/generateQRCodeImageByUserId", params);
/** 就职单位列表 */
export const getEmployedBy = (params) =>
post(
"/app/employmentApplyManagement/getEmploymentRecordByUserIdOrCorpInfoId",
params
); // 就职单位列表
);
/** 离职申请 */
export const setResignationApplication = (params) =>
post("/app/employmentApplyManagement/edit", params); // 离职申请
post("/app/employmentApplyManagement/edit", params);
/** 相关方扫码 */
export const setRelatedPartyScanning = (params) =>
post("/app/user/updateUserInfoAfterScanQRCode", params); // 相关方扫码
post("/app/user/updateUserInfoAfterScanQRCode", params);
/** 数据字典 */
export const getDataDictionary = (params) =>
post("/app/dictionaries/getLevels", params); // 数据字典
post("/app/dictionaries/getLevels", params);
/** 上传附件 */
export const setUploadAttachments = (params) =>
upload("/app/imgFiles/addSingleImg", params); // 上传附件
upload("/app/imgFiles/addSingleImg", params);
/** 删除附件 */
export const removeUploadAttachments = (params) =>
post("/app/imgFiles/deleteImg", params); // 删除附件
post("/app/imgFiles/deleteImg", params);
/** 相关方注册 */
export const setRelatedPartyRegistration = (params) =>
post("/app/user/saveUser", params); // 相关方注册
post("/app/user/saveUser", params);
/** 相关方修改 */
export const setRelatedPartyUpdate = (params) =>
post("/app/user/editUser", params); // 相关方修改
post("/app/user/editUser", params);
/** 检查相关方单位流动人员数和单位总人数 */
export const checkRelatedUnitsPersonCount = (params) =>
post("/app/user/checkUserCountForApp", params); // 检查相关方单位流动人员数和单位总人数
post("/app/user/checkUserCountForApp", params);
/** 服务单位列表 */
export const getServiceUnitList = (params) =>
post("/app/user/getRelatedUnitsListByUserId", params); // 服务单位列表
post("/app/user/getRelatedUnitsListByUserId", params);
/** 服务单位查看 */
export const getServiceUnitView = (params) =>
post("/app/user/getRelatedUnitsDetailById", params); // 服务单位查看
post("/app/user/getRelatedUnitsDetailById", params);
/** 反馈问题附件 */
export const setFeedbackUpload = (params) =>
upload("/app/feedback/upload", params); //反馈问题附件
export const setFeedbackAdd = (params) => post("/app/feedback/add", params); //反馈问题提交
upload("/app/feedback/upload", params);
/** 反馈问题提交 */
export const setFeedbackAdd = (params) => post("/app/feedback/add", params);
/** 版本更新 */
export const getVersion = (params) =>
post("/app/versionmanager/getVersion", params); //版本更新
post("/app/versionmanager/getVersion", params);
/** 修改密码 */
export const setUpdatePassword = (params) =>
post("/app/user/editUserPasswordByUserId", params); //修改密码
post("/app/user/editUserPasswordByUserId", params);
/** 用户信息 */
export const getUserInfo = (params) =>
post("/app/user/getDetailByUserIdAndCorpInfoId", params); //用户信息
export const setUserInfo = (params) => post("/app/user/edit", params); //修改用户信息
post("/app/user/getDetailByUserIdAndCorpInfoId", params);
/** 修改用户信息 */
export const setUserInfo = (params) => post("/app/user/edit", params);
/** 证书信息列表 */
export const getCertificateInformationList = (params) =>
post("/app/specialUser/list", params); //证书信息列表
post("/app/specialUser/list", params);
/** 证书信息查看 */
export const getCertificateInformationView = (params) =>
post("/app/specialUser/goEdit", params); //证书信息查看
post("/app/specialUser/goEdit", params);
/** 证书信息添加 */
export const setCertificateInformationAdd = (params) =>
upload("/app/specialUser/add", params); //证书信息添加
upload("/app/specialUser/add", params);
/** 证书信息修改 */
export const setCertificateInformationEdit = (params) =>
upload("/app/specialUser/edit", params); //证书信息修改
upload("/app/specialUser/edit", params);
/** 证书信息修改 */
export const setCertificateInformationEditPost = (params) =>
post("/app/specialUser/edit", params); //证书信息修改
post("/app/specialUser/edit", params);
/** 用户信息 */
export const getDeptTree = (params) =>
post("/api/department/listzTree", params); //用户信息
post("/api/department/listzTree", params);
/** 获取EMPLOYMENTAPPLYMANAGEMENTID */
export const getEMPLOYMENTAPPLYMANAGEMENTID = (params) =>
post("/app/user/getEMPLOYMENTAPPLYMANAGEMENTID", params); //获取EMPLOYMENTAPPLYMANAGEMENTID
post("/app/user/getEMPLOYMENTAPPLYMANAGEMENTID", params);
/** 获取安全环境对话红点 */
export const getSafetyenvironmentalRedPoint = (params) => post("/app/safetyenvironmental/countCheck", params);
/** 获取隐患信息 */
export const getHiddenInfo = (params) => post("/app/hidden/goEdit", params);

View File

@ -75,6 +75,12 @@
"navigationBarTitleText": "隐患治理"
}
},
{
"path": "pages/safety_environmental_inspection/index",
"style": {
"navigationBarTitleText": "安全环保检查管理"
}
},
{
"path": "pages/service_unit_management/view",
"style": {
@ -87,12 +93,14 @@
"navigationBarTitleText": "证书信息",
"app-plus": {
"titleNView": {
"buttons": [{
"text": "新建",
"fontSize": "15",
"float": "right",
"width": "40px"
}]
"buttons": [
{
"text": "新建",
"fontSize": "15",
"float": "right",
"width": "40px"
}
]
}
}
}
@ -134,12 +142,14 @@
"navigationBarTitleText": "我的信息",
"app-plus": {
"titleNView": {
"buttons": [{
"text": "修改",
"fontSize": "15",
"float": "right",
"width": "40px"
}]
"buttons": [
{
"text": "修改",
"fontSize": "15",
"float": "right",
"width": "40px"
}
]
}
}
}
@ -192,125 +202,214 @@
}
},
{
"path": "pages/hidden_confirm/confirm",
"style": {
"navigationBarTitleText": "隐患确认"
}
},
{
"path": "pages/hidden_confirm/reject",
"style": {
"navigationBarTitleText": "打回"
}
},
{
"path": "pages/hidden_confirm/view",
"style": {
"navigationBarTitleText": "隐患查看"
}
"path": "pages/hidden_confirm/confirm",
"style": {
"navigationBarTitleText": "隐患确认"
}
},
{
"path": "pages/hidden_neglect/index",
"style": {
"navigationBarTitleText": "忽略隐患"
}
},
"path": "pages/hidden_confirm/reject",
"style": {
"navigationBarTitleText": "打回"
}
},
{
"path": "pages/hidden_neglect/view",
"style": {
"navigationBarTitleText": "忽略隐患"
}
},
"path": "pages/hidden_confirm/view",
"style": {
"navigationBarTitleText": "隐患查看"
}
},
{
"path": "pages/hidden_rectification/index",
"style": {
"navigationBarTitleText": "隐患整改"
}
},
"path": "pages/hidden_neglect/index",
"style": {
"navigationBarTitleText": "忽略隐患"
}
},
{
"path": "pages/hidden_rectification/delay",
"style": {
"navigationBarTitleText": "延期申请"
}
},
"path": "pages/hidden_neglect/view",
"style": {
"navigationBarTitleText": "忽略隐患"
}
},
{
"path": "pages/hidden_rectification/rectification",
"style": {
"navigationBarTitleText": "整改"
}
},
"path": "pages/hidden_rectification/index",
"style": {
"navigationBarTitleText": "隐患整改"
}
},
{
"path": "pages/special_disposal_review/index",
"style": {
"navigationBarTitleText": "特殊处置审核"
}
},
"path": "pages/hidden_rectification/delay",
"style": {
"navigationBarTitleText": "延期申请"
}
},
{
"path": "pages/special_disposal_review/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/special_disposal_review/disposal_review",
"style": {
"navigationBarTitleText": "特殊处置审核"
}
},
"path": "pages/hidden_rectification/rectification",
"style": {
"navigationBarTitleText": "整改"
}
},
{
"path": "pages/delay_review/index",
"style": {
"navigationBarTitleText": "延期审核"
}
},
{
"path": "pages/delay_review/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/delay_review/delay_review",
"style": {
"navigationBarTitleText": "延期审核"
}
},
"path": "pages/special_disposal_review/index",
"style": {
"navigationBarTitleText": "特殊处置审核"
}
},
{
"path": "pages/hidden_acceptance/index",
"style": {
"navigationBarTitleText": "隐患验收"
}
},
{
"path": "pages/hidden_acceptance/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/hidden_acceptance/acceptance",
"style": {
"navigationBarTitleText": "隐患验收"
}
},
"path": "pages/special_disposal_review/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/hidden_report/index",
"style": {
"navigationBarTitleText": "隐患快报"
}
},
"path": "pages/special_disposal_review/disposal_review",
"style": {
"navigationBarTitleText": "特殊处置审核"
}
},
{
"path": "pages/hidden_record/index",
"style": {
"navigationBarTitleText": "隐患记录"
}
},
{
"path": "pages/hidden_record/view",
"style": {
"navigationBarTitleText": "查看"
}
}
"path": "pages/delay_review/index",
"style": {
"navigationBarTitleText": "延期审核"
}
},
{
"path": "pages/delay_review/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/delay_review/delay_review",
"style": {
"navigationBarTitleText": "延期审核"
}
},
{
"path": "pages/hidden_acceptance/index",
"style": {
"navigationBarTitleText": "隐患验收"
}
},
{
"path": "pages/hidden_acceptance/view",
"style": {
"navigationBarTitleText": "查看"
}
},
{
"path": "pages/hidden_acceptance/acceptance",
"style": {
"navigationBarTitleText": "隐患验收"
}
},
{
"path": "pages/hidden_report/index",
"style": {
"navigationBarTitleText": "隐患快报"
}
},
{
"path": "pages/hidden_record/index",
"style": {
"navigationBarTitleText": "隐患记录"
}
},
{
"path": "pages/hidden_record/view",
"style": {
"navigationBarTitleText": "查看"
}
}
]
},
{
"root": "safetyEnvirSubPackages",
"pages": [
{
"path": "pages/initiate/list",
"style": {
"navigationBarTitleText": "安全环保检查发起",
"app-plus": {
"titleNView": {
"buttons": [
{
"text": "发起",
"fontSize": "15",
"float": "right",
"width": "40px"
}
]
}
}
}
},
{
"path": "pages/initiate/detail",
"style": {
"navigationBarTitleText": "安全环保检查发起"
}
},
{
"path": "pages/initiate/steps",
"style": {
"navigationBarTitleText": "安全环保检查流程图"
}
},
{
"path": "pages/initiate/plead",
"style": {
"navigationBarTitleText": "安全环保检查申辩处理"
}
},
{
"path": "pages/inspector-confirms/list",
"style": {
"navigationBarTitleText": "检查人确认"
}
},
{
"path": "pages/inspector-confirms/detail",
"style": {
"navigationBarTitleText": "检查人确认"
}
},
{
"path": "pages/inspector-archives/list",
"style": {
"navigationBarTitleText": "隐患指派及验收"
}
},
{
"path": "pages/inspector-archives/detail",
"style": {
"navigationBarTitleText": "隐患指派及验收"
}
},
{
"path": "pages/inspector-archives/acceptance-list",
"style": {
"navigationBarTitleText": "隐患指派及验收"
}
},
{
"path": "pages/inspector-archives/acceptance",
"style": {
"navigationBarTitleText": "隐患指派及验收"
}
},
{
"path": "pages/defense-record/list",
"style": {
"navigationBarTitleText": "申辩记录"
}
},
{
"path": "pages/defense-record/plead-list",
"style": {
"navigationBarTitleText": "申辩记录"
}
}
]
}
],
@ -324,7 +423,8 @@
"selectedColor": "#1989fa",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "static/png/home.png",

View File

@ -78,6 +78,11 @@ export default {
img: require('../../static/icon-apps/app_icons7.png'),
title: '隐患治理',
url: '/pages/hidden_management/index'
},
{
img: require('../../static/icon-apps/app_icons8.png'),
title: '安全环保检查',
url: '/pages/safety_environmental_inspection/index'
}
],
}

View File

@ -0,0 +1,87 @@
<template>
<view class="content">
<u-cell-group>
<u-cell v-for="(item, index) in baseList" :key="index" isLink :url="item.url">
<view slot="title">{{ item.title }}</view>
<view slot="value">
<u-badge :value="item.NUM"></u-badge>
</view>
</u-cell>
</u-cell-group>
</view>
</template>
<script>
import { getSafetyenvironmentalRedPoint } from '../../api';
export default {
data() {
return {
baseList: [
{
title: '安全环保检查发起',
url: '/safetyEnvirSubPackages/pages/initiate/list',
vector: '0',
NUM: 0
},
{
title: '检查人确认',
url: '/safetyEnvirSubPackages/pages/inspector-confirms/list',
vector: '1',
NUM: 0
},
{
title: '隐患指派及验收',
url: '/safetyEnvirSubPackages/pages/inspector-archives/list',
vector: '2',
NUM: 0
},
{
title: '申辩记录',
url: '/safetyEnvirSubPackages/pages/defense-record/list',
vector: '3',
NUM: 0
}
]
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onShow(event) {
this.getRedPoint()
},
methods: {
fnNavigator(e) {
uni.$u.route({
url: this.baseList[e].url
})
},
async getRedPoint() {
let resData = await getSafetyenvironmentalRedPoint({
CORPINFO_ID: this.userInfo.CORPINFO_ID,
INSPECTION_USER_ID: this.userInfo.USER_ID,
INSPECTED_SITEUSER_ID: this.userInfo.USER_ID,
INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID
});
for (const baseListKey in this.baseList) {
if (this.baseList[baseListKey].vector === '0') {
this.baseList[baseListKey].NUM = resData.repulseCount.repulseCount ? resData.repulseCount.repulseCount : 0
}
if (this.baseList[baseListKey].vector === '1') {
this.baseList[baseListKey].NUM = resData.confirmCount.confirmCount ? resData.confirmCount.confirmCount : 0
}
if (this.baseList[baseListKey].vector === '2') {
this.baseList[baseListKey].NUM = resData.repulseAndCheckCount.repulseAndCheckCount ? resData.repulseAndCheckCount.repulseAndCheckCount : 0
}
}
},
},
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,82 @@
import { post, upload, uploads } from "../../utils/request";
/** 获取监管端的部门的人员 */
export const getDeptUser = (params) => post("/AppUser/listAllManageAndCorp", {loading: false, ...params});
/** 获取隐患级别 */
export const getHiddenLevel = () => post("/app/dictionaries/listSelectTree", {loading: false, DICTIONARIES_ID: '5e7cf8620ba54ad89719d0be62133c7a'});
/** 获取隐患部位 */
export const getHiddenRegion = (params) => post("/app/hiddenRegion/gerRegionList", {loading: false, ...params});
/** 获取隐患类型 */
export const getHiddenType = () => post("/app/dictionaries/listSelectTree", {loading: false, DICTIONARIES_ID: '3babc15144444bdc8d763d0af2bdfff6'});
/** 获取被检查部门 */
export const getInspectedDepartment = (params) => post("/app/corpDepartment/listTreeCorpDept", {loading: false, ...params});
/** 获取检查部门 */
export const getInspectionDepartment = (params) => post("/app/corpDepartment/listTreeManageAndCorp", {loading: false, ...params});
/** 获取检查类型 */
export const getInspectionType = () => post("/app/dictionaries/listSelectTree", {loading: false, DICTIONARIES_ID: '60e6481d96e44a5390ff5c347c4d1ffe'});
/** 获取检查人员 */
export const getInspectors = (params) => post("/AppUser/listAllManageAndCorp", {loading: false, ...params});
/** 安全环保检查明细信息 */
export const getSafetyenvironmentalGoEdit = (params) => post("/app/safetyenvironmental/goEdit", params);
/** 上传图片 */
export const setImgFilesAdd = (params) => uploads("/app/imgfiles/uploadFile", params);
/** 新增安全环保检查 */
export const setSafetyenvironmentalAdd = (params) => post("/app/safetyenvironmental/add", params);
/** 安全环保检查检查人确认 */
export const setSafetyenvironmentalVerify = (params) => upload("/app/safetyenvironmentalinspector/verify", params);
/** 新增安全环保检查 - plus */
export const setSafetyenvironmentalAdd_plus = (params) => upload("/app/safetyenvironmental/add", params);
/** 修改安全环保检查 */
export const setSafetyenvironmentalEdit = (params) => post("/app/safetyenvironmental/edit", params);
/** 获取安全环保检查列表(隐患指派及验收) */
export const getSafetyenvironmentalCheckList = (params) => post("/app/safetyenvironmental/checkList", params);
/** 修改安全环保检查 */
export const setSafetyenvironmentalGoEdit = (params) => post("/app/safetyenvironmental/goEdit", params);
/** 申辩 */
export const setSafetyenvironmentalExplain = (params) => post("/app/safetyenvironmental/explain", params);
/** 设置安全环境流程 */
export const setSafetyenvironmentalFlow = (params) => post("/app/safetyenvironmental/showFlowChart", params);
/** 修改安全环保检查 - plus */
export const setSafetyenvironmentalEdit_plus = (params) => upload("/app/safetyenvironmental/edit", params);
/** 获取安全环保检查验收隐患列表 */
export const getListForSafetyEnvironmental = (params) => post("/app/hidden/listForSafetyEnvironmental", params);
/** 上传视频 */
export const setVideoAdd = (params) => upload("/app/imgfiles/add", params);
/** 获取安全环保检查列表 */
export const getSafetyenvironmentalList = (params) => post("/app/safetyenvironmental/list", params);
/** 获取安全环保检查列表 */
export const getpleadList = (params) => post("/app/safetyenvironmental/pleadList", params);
/** 获取安全环保检查申辩流程列表 */
export const getSafetyenvironmentalExplain = (params) => post("/app/safetyenvironmental/getExplain", params);
/** 隐患详情 */
export const getHiddenGoEdit = (params) => post("/app/hidden/goEdit", params);
/** 提交安全环保检查验收 */
export const setFinalCheck = (params) => post("/app/hidden/finalcheck", params);
/** 安全环保检查检查人确认列表 */
export const getSafetyenvironmentalinspectorList = (params) => post("/app/safetyenvironmentalinspector/list", params);

View File

@ -0,0 +1,108 @@
<template>
<view class="content">
<view class="search card">
<u--input class="ml-10" prefixIcon="search" placeholder="请输入关键字" border="surround" v-model="keyword" clearable
shape="circle"></u--input>
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
</view>
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>被检查单位{{ item.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查发起人{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
<text>检查类型{{ item.INSPECTION_TYPE_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查时间 {{ item.INSPECTION_TIME_START }} {{ item.INSPECTION_TIME_END }} </text>
</view>
<view class="flex-between mt-10 subtitle">
<text>
状态
<template v-if="item.INSPECTION_STATUS == '0'"></template>
<template v-else-if="item.INSPECTION_STATUS == '1'">检查人核实中</template>
<template v-else-if="item.INSPECTION_STATUS == '2'">待被检查人确认</template>
<template v-else-if="item.INSPECTION_STATUS == '3'">待指派</template>
<template v-else-if="item.INSPECTION_STATUS == '4'">指派中</template>
<template v-else-if="item.INSPECTION_STATUS == '5'">指派完成</template>
<template v-else-if="item.INSPECTION_STATUS == '6'">检查待验收</template>
<template v-else-if="item.INSPECTION_STATUS == '7'">检查已验收</template>
<template v-else-if="item.INSPECTION_STATUS == '8'">已归档</template>
<template v-else-if="item.INSPECTION_STATUS == '-1'">检查人核实打回</template>
<template v-else-if="item.INSPECTION_STATUS == '-2'">被检查人申辩</template>
</text>
<u-button type="primary" text="申辩记录" size="mini" class="bth-mini ml-10"
@click="fnNavigatorPlead(item.INSPECTION_ID)"></u-button>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getpleadList, getSafetyenvironmentalList } from "../../api";
import { initiateList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
keyword: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onShow() {
this.resetList()
},
methods: {
async getData() {
// TODO: ,
// let resData = await getpleadList({
// loginUserId: this.userInfo.USER_ID,
// supDeparIds: this.userInfo.supDeparIds,
// roleLevel: this.userInfo.roleLevel,
// CORPINFO_ID: this.userInfo.CORPINFO_ID,
// KEYWORDS: this.keyword,
// showCount: this.pageSize,
// currentPage: this.currentPage,
// });
// this.list = [...this.list, ...resData.varList];
// this.totalPage = resData.page.totalPage;
this.list = initiateList;
this.totalPage = initiateList.length;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
fnNavigatorPlead(INSPECTION_ID) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/defense-record/plead-list',
params: {
INSPECTION_ID,
}
})
},
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
}
}
</script>
<style scoped></style>

View File

@ -0,0 +1,100 @@
<template>
<view class="content">
<u-list v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text class="u-line-1">申辩意见{{ item.INSPECTED_EXPLAIN }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>申辩时间{{ item.CREATTIME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>申辩状态 {{ item.ISPASS === '0' ? '待审核' : (item.ISPASS === '1' ? '申辩成功' : item.ISPASS === '2' ? '申辩驳回' : '历史数据')
}}</text>
</view>
<view class="flex-warp mt-10 subtitle" style="align-items: center">
<text>签字图片</text>
<u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTED_SITEUSER_SIGN_IMG" width="40px"
height="40px" mode="scaleToFill"
@click="previewImage($store.state.filePath + item.INSPECTED_SITEUSER_SIGN_IMG)"></u--image>
</view>
<view v-if="item.INSPECTED_EXPLAIN_FILENAME" class="flex-between mt-10 subtitle">
<text>申辩附件名称 {{ item.INSPECTED_EXPLAIN_FILENAME }}</text>
</view>
<view v-if="item.INSPECTED_EXPLAIN_FILEPATH" class="flex-between mt-10 subtitle">
<view class="uni-flex-item text-right">
<u-button type="primary" @click="downloadAppendix(item.INSPECTED_EXPLAIN_FILEPATH)">
申辩附件下载
</u-button>
</view>
</view>
<view v-if="item.ISPASS === '2'" class="flex-warp mt-10 subtitle" style="align-items: center">
<text>检查人签字</text>
<u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTION_ORIGINATOR_SIGN_IMG"
width="40px" height="40px" mode="scaleToFill"
@click="previewImage($store.state.filePath + item.INSPECTION_ORIGINATOR_SIGN_IMG)"></u--image>
</view>
<view v-if="item.ISPASS === '2'" class="flex-between mt-10 subtitle">
<text>检查人意见 {{ item.INSPECTED_EXPLAIN_REFUSE }}</text>
</view>
<view v-if="item.ISPASS === '2'" class="flex-between mt-10 subtitle">
<text>审批时间 {{ item.INSPECTION_ORIGINATOR_SIGN_TIME }}</text>
</view>
<view v-if="item.ISPASS === '1'" class="flex-between mt-10 subtitle">
<text>审批时间 {{ item.OPERATTIME }}</text>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getSafetyenvironmentalExplain } from "../../api";
import { exPlainList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
INSPECTION_ID: '',
list: [],
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.getData()
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
methods: {
async getData() {
// let resData = await getSafetyenvironmentalExplain({
// INSPECTION_ID: this.INSPECTION_ID,
// CORPINFO_ID: this.userInfo.CORPINFO_ID
// });
// this.list = resData.list;
this.list = exPlainList;
},
previewImage(current) {
uni.previewImage({
urls: [current],
current
});
},
downloadAppendix(url) {
console.log(url)
plus.runtime.openURL(this.$store.state.filePath + url, function (res) {
console.log(res);
});
},
}
}
</script>
<style scoped></style>

View File

@ -0,0 +1,946 @@
<template>
<view class="content">
<view class="card">
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title required">检查题目</view>
<view slot="value">
<u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" :disabled="disabled">
<u-radio label="安全" name="安全"></u-radio>
<u-radio label="环保" name="环保" class="ml-10"></u-radio>
<u-radio label="综合" name="综合" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">被检查单位</view>
<view slot="value">
<text @click="showTree('tkitree')">{{
disabled ? form.INSPECTED_CORPINFO_ID_NAME : form.INSPECTED_DEPARTMENT_NAME || '请选择' }}</text>
<tki-tree ref="tkitree" :range="inspectedDepartmentTreeList" rangeKey="name" selectParent
@confirm="confirmTree($event, 'inspectedSiteuserColumns')" />
</view>
</u-cell>
<u-cell v-show="form.INSPECTED_DEPARTMENT_NAME">
<view slot="title" class="title required">被检查单位现场负责人</view>
<view slot="value">
<text @click="disabled ? null : inspectedSiteuserShow = true">{{ form.INSPECTED_SITEUSER_NAME || '请选择'
}}</text>
<u-picker :show="inspectedSiteuserShow" :columns="inspectedSiteuserColumns" keyName="NAME"
@cancel="inspectedSiteuserShow = false" @confirm="inspectedSiteuserConfirmPicker"></u-picker>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查场所</view>
<view slot="value">
<u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right"
:disabled="disabled"></u--input>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查类型</view>
<view slot="value">
<text @click="showTree('tkitree1')">{{ form.INSPECTION_TYPE_NAME || '' }}</text>
<tki-tree ref="tkitree1" :range="inspectionTypeTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'inspectionTypeTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查开始时间</view>
<view slot="value">
<text @click="disabled ? null : inspectionTimeStartShow = true">{{ form.INSPECTION_TIME_START || '请选择'
}}</text>
<u-datetime-picker :show="inspectionTimeStartShow" :value="form.INSPECTION_TIME_START"
@cancel="inspectionTimeStartShow = false" @confirm="inspectionTimeStartConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查结束时间</view>
<view slot="value">
<text @click="disabled ? null : inspectionTimeEndShow = true">{{ form.INSPECTION_TIME_END || '请选择' }}</text>
<u-datetime-picker :show="inspectionTimeEndShow" :value="form.INSPECTION_TIME_END"
@cancel="inspectionTimeEndShow = false" @confirm="inspectionTimeEndConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell v-if="disabled">
<view slot="title" class="title required">记录填写时间</view>
<view slot="value">
<text>{{ form.CREATTIME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查情况</view>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addSituation"
v-if="!disabled"></u-button>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="value">
<view class="pr mt-10" v-for="(item, index) in form.situationList" :key="item.id">
<u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" :disabled="disabled"></u--textarea>
<u-badge value="X" type="error" :offset="[-9, -10]" absolute @click.native="removeSituation(item, index)"
v-if="!disabled"></u-badge>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查人员</view>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addInspector"
v-if="!disabled"></u-button>
</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<view class="pr mt-10" v-for="(item, index) in form.inspectorList" :key="item.id">
<u-cell-group :border="false" class="border">
<u-cell class="title-show">
<view slot="title">{{ index + 1 }}.检查人员单位</view>
<view slot="value">
<text @click="showTree('tkitreeInspector' + index, 'arr')">{{ item.INSPECTION_DEPARTMENT_NAME ||
'请选择' }}</text>
<tki-tree :ref="'tkitreeInspector' + index" :range="inspectionDepartmentTreeList" rangeKey="name"
selectParent @confirm="confirmTree($event, 'inspectorList', index)" />
</view>
</u-cell>
<u-cell class="title-show" :border="false" v-show="item.INSPECTION_DEPARTMENT_NAME">
<view slot="title">{{ index + 1 }}.检查人员</view>
<view slot="value">
<text @click="inspectionUserShowPicker(index)">{{ item.INSPECTION_USER_NAME || '' }}</text>
<u-picker :show="item.inspectionUserShow" :columns="[inspectorList[0][index]]" keyName="NAME"
@cancel="item.inspectionUserShow = false"
@confirm="inspectionUserConfirmPicker($event, index)"></u-picker>
</view>
</u-cell>
</u-cell-group>
<u-badge value="X" type="error" :offset="[-9, -10]" absolute @click.native="removeInspector(item, index)"
v-if="!disabled"></u-badge>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">发现问题</view>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addHidden"
v-if="!disabled"></u-button>
</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">序号</uni-th>
<uni-th align="center">隐患部位</uni-th>
<uni-th align="center">隐患描述</uni-th>
<uni-th align="center">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in form.hiddenList" :key="item.HIDDEN_ID || item.id">
<uni-td>{{ index + 1 }}</uni-td>
<uni-td>{{ item.HIDDENPART_NAME ? item.HIDDENPART_NAME : item.HIDDENPART }}</uni-td>
<uni-td>{{ item.HIDDENDESCR }}</uni-td>
<uni-td>
<view class="flex-between">
<u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon>
<u-icon name="trash-fill" class="ml-10" @tap="removeHidden(item, index)" v-if="!disabled"></u-icon>
</view>
</uni-td>
</uni-tr>
</uni-table>
</view>
</u-cell>
<template v-for="item in form.inspectorVerifyList" v-if="!type || !(type === 'add' || type === 'edit')">
<u-cell class="flex-none" v-show="item.INSPECTION_USER_OPINION">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="item.INSPECTION_USER_OPINION" disabled placeholder="请输入检查人意见"></u--textarea>
</view>
</u-cell>
<u-cell class="flex-none" v-show="item.INSPECTION_USER_SIGN_IMG">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
</view>
</u-cell>
</template>
<template v-if="!type || !(type === 'add' || type === 'edit')">
<u-cell class="flex-none" v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
<view slot="title" class="title">被检查人意见</view>
</u-cell>
<u-cell class="flex-none" v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG)"></u--image>
</view>
</u-cell>
</template>
<template v-if="type && (type === 'add' || type === 'edit')">
<u-cell class="flex-none">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="form.INSPECTION_USER_OPINION" placeholder="请输入检查人意见"></u--textarea>
</view>
</u-cell>
<u-cell v-if="form.INSPECTION_USER_OPINION" class="flex-none">
<view slot="title" class="title flex-between">
签字
<u-button type="primary" text="手写添加" size="mini" class="bth-mini" @click="signShow = true"></u-button>
</view>
<view slot="value" class="mt-10">
<u--image v-show="form.INSPECTION_USER_SIGN_IMG" :showLoading="true" :src="form.INSPECTION_USER_SIGN_IMG"
width="100%" height="80px" mode="scaleToFill"
@click="previewImage(form.INSPECTION_USER_SIGN_IMG)"></u--image>
<sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
</view>
</u-cell>
</template>
<u-cell class="flex-none" :border="false">
<view slot="value">
<u-button type="primary" text="提交" @click="$u.debounce(fnSubmit, 1000, true)" v-if="!disabled"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
<u-popup :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false"
:customStyle="{ width: '85vw', overflowY: 'auto' }">
<view class="card">
<u-cell-group :border="false">
<u-cell class="flex-none">
<view slot="title" class="title required">隐患照片</view>
<view slot="value" class="mt-10">
<u-upload :disabled="popupDisabled" :deletable="!popupDisabled" uploadIcon="plus"
:fileList="hiddenForm.hiddenImgs" @afterRead="afterRead" @delete="deletePic" multiple
:maxCount="popupDisabled ? hiddenForm.hiddenImgs.length : 4"></u-upload>
</view>
</u-cell>
<u-cell class="flex-none" v-if="!(popupDisabled && hiddenForm.hiddenVideos.length === 0)">
<view slot="title" class="title flex-between">
隐患视频
<u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url"
name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon>
</view>
<view slot="value" class="mt-10">
<u-upload :disabled="popupDisabled" :deletable="!popupDisabled" accept="video" uploadIcon="plus"
:fileList="hiddenForm.hiddenVideos" @afterRead="afterRead1" @delete="deletePic1" multiple
:maxCount="1"></u-upload>
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
<view>
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
</view>
</u-modal>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述"
:disabled="popupDisabled"></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患部位</view>
<view slot="value">
<text @click="showTree('tkitree2')">{{
hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART || '请选择' }}</text>
<tki-tree ref="tkitree2" :range="hiddenRegionTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'hiddenRegionTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患级别</view>
<view slot="value">
<text @click="showTree('tkitree3')">{{ hiddenForm.HIDDENLEVEL_NAME || '' }}</text>
<tki-tree ref="tkitree3" :range="hiddenLevelTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'hiddenLevelTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患类型</view>
<view slot="value">
<text @click="showTree('tkitree4')">{{ hiddenForm.HIDDENTYPE_NAME || '' }}</text>
<tki-tree ref="tkitree4" :range="hiddenTypeTreeList" rangeKey="name" children-name="nodes"
@confirm="confirmTree($event, 'hiddenTypeTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">是否是相关方</view>
<view slot="value">
<u-radio-group v-model="hiddenForm.ISRELEVANT" placement="row" :disabled="disabled">
<u-radio label="是" name="1" class="ml-10"></u-radio>
<u-radio label="否" name="2" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现时间</view>
<view slot="value">
<text @click="popupDisabled ? null : discoveryTimeShow = true">{{ hiddenForm.DISCOVERYTIME || '请选择'
}}</text>
<u-datetime-picker :show="discoveryTimeShow" :value="hiddenForm.DISCOVERYTIME" :minDate="Number(1970)"
@cancel="discoveryTimeShow = false" @confirm="discoveryTimeConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
隐患上报位置
<u-button type="primary" text="定位" size="mini" class="bth-mini" @click="showMapModal"
v-if="!popupDisabled"></u-button>
</view>
<view slot="value" class="mt-10" v-if="hiddenForm.LONGITUDE && hiddenForm.LATITUDE">
<view>经度:{{ hiddenForm.LONGITUDE }}</view>
<view>纬度:{{ hiddenForm.LATITUDE }}</view>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">隐患位置描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述"
:disabled="popupDisabled"></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现人</view>
<view slot="value">
<text @click="popupDisabled ? null : creatorShow = true">{{ hiddenForm.CREATOR_NAME || '请选择' }}</text>
<u-picker :show="creatorShow" :columns="creatorList" keyName="NAME" @cancel="creatorShow = false"
@confirm="creatorConfirmPicker"></u-picker>
</view>
</u-cell>
<u-cell class="flex-none" :border="false">
<view slot="value" class="flex-between">
<u-button type="info" text="取消" class="bth" @click="popupClose"></u-button>
<u-button type="primary" text="保存" class="bth ml-10" @click="popupSave" v-if="!popupDisabled"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</u-popup>
</view>
</template>
<script>
import {
getDeptUser,
getHiddenLevel,
getHiddenRegion,
getHiddenType,
getInspectedDepartment,
getInspectionDepartment,
getInspectionType,
getInspectors,
getSafetyenvironmentalGoEdit,
setImgFilesAdd,
setSafetyenvironmentalAdd, setSafetyenvironmentalAdd_plus,
setSafetyenvironmentalEdit, setSafetyenvironmentalEdit_plus,
setVideoAdd
} from "../../api";
export default {
data() {
return {
form: {
INSPECTION_SUBJECT: '',
INSPECTED_DEPARTMENT_NAME: '',
INSPECTED_CORPINFO_ID_NAME: '',
INSPECTED_DEPARTMENT_ID: '',
INSPECTED_SITEUSER_NAME: '',
INSPECTED_SITEUSER_ID: '',
INSPECTION_PLACE: '',
INSPECTION_TYPE_NAME: '',
INSPECTION_TYPE_OTHER: '',
INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
situationList: [{ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' }],
inspectorList: [{
id: Math.random(),
inspectionUserShow: false,
INSPECTION_INSPECTOR_ID: '',
INSPECTION_DEPARTMENT_ID: '',
INSPECTION_DEPARTMENT_NAME: '',
INSPECTION_USER_ID: '',
INSPECTION_USER_NAME: ''
}],
hiddenList: [],
CREATTIME: '',
INSPECTION_USER_OPINION: '',
INSPECTION_USER_SIGN_IMG: ''
},
rules: {
'INSPECTION_SUBJECT': { required: true, message: '请选择检查题目' },
'INSPECTED_DEPARTMENT_NAME': { required: true, message: '请选择被检查单位' },
'INSPECTED_SITEUSER_NAME': { required: true, message: '请选择被检查单位现场负责人' },
'INSPECTION_PLACE': { required: true, message: '请输入检查场所' },
'INSPECTION_TYPE_NAME': { required: true, message: '请选择检查类型' },
'INSPECTION_TIME_START': { required: true, message: '请选择检查开始时间' },
'INSPECTION_TIME_END': { required: true, message: '请选择检查结束时间' },
},
inspectedDepartmentTreeList: [],
inspectionDepartmentTreeList: [],
inspectionTypeTreeList: [],
inspectedSiteuserShow: false,
inspectionTimeStartShow: false,
inspectionTimeEndShow: false,
inspectedSiteuserColumns: [
[]
],
inspectorList: [[]],
INSPECTION_ID: '',
vector: '',
disabled: false,
delSituations: [],
delInspectors: [],
popupShow: false,
popupDisabled: false,
hiddenForm: {
id: Math.random(),
ISRELEVANT: '2',//
hiddenImgs: [],
hiddenVideos: [],
HIDDENDESCR: '',
HIDDENPART_NAME: '',
HIDDENPART: '',
HIDDENLEVEL_NAME: '',
HIDDENLEVEL: '',
HIDDENTYPE_NAME: '',
HIDDENTYPE: '',
DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
LONGITUDE: '',
LATITUDE: '',
CREATOR_NAME: '',
CREATOR: '',
POSITIONDESC: '',
SOURCE: '4',
CORPINFO_ID: '',
HIDDENFINDDEPT: ''
},
hiddenFormRules: {
'hiddenImgs': { required: true, message: '请上传隐患照片' },
'HIDDENDESCR': { required: true, message: '请输入隐患描述' },
'HIDDENLEVEL_NAME': { required: true, message: '请选择隐患级别' },
'HIDDENTYPE_NAME': { required: true, message: '请选择隐患类型' },
'DISCOVERYTIME': { required: true, message: '请选择隐患发现时间' },
'CREATOR_NAME': { required: true, message: '请选择隐患发现人' },
},
hiddenRegionTreeList: [],
hiddenLevelTreeList: [
{ id: 'hiddenLevel1004', name: '轻微隐患' },
{ id: 'hiddenLevel1002', name: '一般隐患' },
],
hiddenTypeTreeList: [],
creatorList: [],
delHiddens: [],
delHiddenFiles: [],
discoveryTimeShow: false,
creatorShow: false,
modalShow: false,
videoUrl: '',
signShow: false,
type: ''
}
},
async onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.vector = event.vector
this.disabled = !(event.type === 'add' || event.type === 'edit');
if (this.INSPECTION_ID) {
await this.fnGetSafetyenvironmentalGoEdit()
}
this.type = event.type
if (event.type === 'add' || event.type === 'edit') {
await this.fnGetInspectedDepartment()
await this.fnGetInspectionDepartment()
await this.fnGetHiddenRegion()
await this.fnGetHiddenType()
// this.fnGetHiddenLevel()
await this.fnGetInspectionType()
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
methods: {
async fnGetInspectedDepartment() {
let resData = await getInspectedDepartment();
this.inspectedDepartmentTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetInspectionDepartment() {
let resData = await getInspectionDepartment();
this.inspectionDepartmentTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenRegion(id) {
if (!id) {
id = { parentId: '0', DEPARTMENT_ID: this.form.INSPECTED_DEPARTMENT_ID }
}
let resData = await getHiddenRegion(id);
this.hiddenRegionTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenType() {
let resData = await getHiddenType();
this.hiddenTypeTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenLevel() {
let resData = await getHiddenLevel();
this.hiddenLevelTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetInspectionType() {
let resData = await getInspectionType();
this.inspectionTypeTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetDeptUser(detpId) {
let resData = await getDeptUser({ 'DEPARTMENT_ID': detpId });
return resData.userList;
},
async fnGetInspectors(detpId) {
let resData = await getInspectors({ 'DEPARTMENT_ID': detpId });
return resData.userList;
},
async fnGetSafetyenvironmentalGoEdit() {
let resData = await getSafetyenvironmentalGoEdit({ INSPECTION_ID: this.INSPECTION_ID })
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) {
resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH
}
for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) {
resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH
}
}
console.log(resData.pd.inspectorVerifyList)
this.form = resData.pd
},
showTree(ref, type) {
if (this.popupDisabled) return;
if (this.disabled) return;
if (type === 'arr') this.$refs[ref][0]._show();
else this.$refs[ref]._show()
},
confirmTree(e, list, index) {
if (list === 'inspectedSiteuserColumns') {
this.form.INSPECTED_DEPARTMENT_ID = e[0].id
this.form.INSPECTED_DEPARTMENT_NAME = e[0].name
this.form.INSPECTED_SITEUSER_NAME = ''
this.form.INSPECTED_SITEUSER_ID = ''
this.fnGetHiddenRegion({ parentId: '0', DEPARTMENT_ID: e[0].id })
this.fnGetDeptUser(e[0].id).then(res => {
this.$set(this.inspectedSiteuserColumns, 0, res)
})
}
if (list === 'inspectionTypeTreeList') {
this.form.INSPECTION_TYPE = e[0].id
this.form.INSPECTION_TYPE_NAME = e[0].name
}
if (list === 'inspectorList') {
this.form.inspectorList[index].INSPECTION_DEPARTMENT_ID = e[0].id
this.form.inspectorList[index].INSPECTION_DEPARTMENT_NAME = e[0].name
this.form.inspectorList[index].INSPECTION_USER_NAME = ''
this.form.inspectorList[index].INSPECTION_USER_ID = ''
this.fnGetInspectors(e[0].id).then(res => {
this.$set(this.inspectorList[0], index, res)
})
}
if (list === 'hiddenRegionTreeList') {
this.hiddenForm.HIDDENPART = e[0].id
this.hiddenForm.HIDDENPART_NAME = e[0].name
}
if (list === 'hiddenLevelTreeList') {
this.hiddenForm.HIDDENLEVEL = e[0].id
this.hiddenForm.HIDDENLEVEL_NAME = e[0].name
}
if (list === 'hiddenTypeTreeList') {
this.hiddenForm.HIDDENTYPE = e[0].id
this.hiddenForm.HIDDENTYPE_NAME = e[0].name
}
},
inspectedSiteuserConfirmPicker(e) {
this.form.INSPECTED_SITEUSER_NAME = e.value[0].NAME
this.form.INSPECTED_SITEUSER_ID = e.value[0].USER_ID
this.inspectedSiteuserShow = false;
},
inspectionTimeStartConfirm(e) {
this.form.INSPECTION_TIME_START = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.inspectionTimeStartShow = false;
},
inspectionTimeEndConfirm(e) {
this.form.INSPECTION_TIME_END = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.inspectionTimeEndShow = false;
},
addSituation() {
this.form.situationList.push({ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' })
},
removeSituation(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定删除检查情况吗?',
success: (res) => {
if (res.cancel) {
this.form.situationList.splice(index, 1)
if (item.INSPECTION_SITUATION_ID) {
this.delSituations.push(item.INSPECTION_SITUATION_ID)
}
}
}
});
},
addInspector() {
this.form.inspectorList.push(
{
id: Math.random(),
inspectionUserShow: false,
INSPECTION_INSPECTOR_ID: '',
INSPECTION_DEPARTMENT_ID: '',
INSPECTION_DEPARTMENT_NAME: '',
INSPECTION_USER_ID: '',
INSPECTION_USER_INDEX: '',
INSPECTION_USER_NAME: ''
}
)
console.info(this.form.inspectorList)
},
removeInspector(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定移除检查人员吗?',
success: (res) => {
if (res.cancel) {
this.form.inspectorList.splice(index, 1);
if (item.INSPECTION_INSPECTOR_ID) {
this.delInspectors.push(item.INSPECTION_INSPECTOR_ID)
}
}
}
});
},
inspectionUserShowPicker(index) {
if (this.disabled) return;
this.form.inspectorList[index].inspectionUserShow = true
},
inspectionUserConfirmPicker(e, index) {
this.form.inspectorList[index].INSPECTION_USER_ID = e.value[0].USER_ID
this.form.inspectorList[index].INSPECTION_USER_NAME = e.value[0].NAME
this.form.inspectorList[index].inspectionUserShow = false
this.form.inspectorList[index].USER_SIDE = e.value[0].USER_SIDE
},
async fnSubmit() {
for (const key in this.rules) {
if (!this.form[key]) {
uni.showToast({
title: this.rules[key].message,
icon: "none"
})
return;
}
}
for (let i = 0; i < this.form.situationList.length; i++) {
if (!this.form.situationList[i].SITUATION) {
uni.showToast({
title: `请填写第${i + 1}项检查情况`,
icon: 'none'
})
return
}
}
for (let i = 0; i < this.form.inspectorList.length; i++) {
if (!this.form.inspectorList[i].INSPECTION_USER_NAME) {
uni.showToast({
title: `请选择第${i + 1}项检查人员`,
icon: 'none'
})
return
}
}
if (this.form.INSPECTION_USER_OPINION) {
if (!this.form.INSPECTION_USER_SIGN_IMG) {
uni.showToast({
title: `您还未签字`,
icon: 'none'
})
return
}
}
let vector = 0
for (let x in this.form.inspectorList) {
vector = 0
for (let y in this.form.inspectorList) {
if (this.form.inspectorList[y].INSPECTION_USER_ID === this.form.inspectorList[x].INSPECTION_USER_ID) vector++
}
if (vector > 1) {
uni.showToast({
title: '检查人重复!请检查数据',
icon: "none"
})
return
}
}
uni.showLoading({
title: '加载中'
});
let index = this.form.inspectorList.findIndex(item => { return item.INSPECTION_USER_ID === this.userInfo.USER_ID })
if (index < 0) {
this.form.inspectorList.push(
{
INSPECTION_INSPECTOR_ID: '', //
INSPECTION_DEPARTMENT_ID: this.userInfo.DEPARTMENT_ID, //ID
INSPECTION_DEPARTMENT_NAME: this.userInfo.DEPARTMENT_NAME,
INSPECTION_USER_ID: this.userInfo.USER_ID, //ID
INSPECTION_USER_INDEX: '',
INSPECTION_USER_NAME: this.userInfo.NAME
}
)
}
let resData
if (this.form.INSPECTION_USER_SIGN_IMG) {
let params = {
filePath: this.form.INSPECTION_USER_SIGN_IMG,
name: 'FFILE',
formData: {
...this.form,
INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
INSPECTION_STATUS: '1',
delInspectors: this.delInspectors.join(','),
delSituations: this.delSituations.join(','),
delHiddens: this.delHiddens.join(','),
delHiddenFiles: this.delHiddenFiles.join(','),
INSPECTORJSON: JSON.stringify(this.form.inspectorList),
SITUATIONJSON: JSON.stringify(this.form.situationList),
HIDDENJSON: JSON.stringify(this.form.hiddenList),
loading: false
}
}
resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit_plus(params) : await setSafetyenvironmentalAdd_plus(params)
} else {
let params = {
...this.form,
INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
INSPECTION_STATUS: '1',
delInspectors: this.delInspectors.join(','),
delSituations: this.delSituations.join(','),
delHiddens: this.delHiddens.join(','),
delHiddenFiles: this.delHiddenFiles.join(','),
INSPECTORJSON: JSON.stringify(this.form.inspectorList),
SITUATIONJSON: JSON.stringify(this.form.situationList),
HIDDENJSON: JSON.stringify(this.form.hiddenList),
loading: false
}
resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit(params) : await setSafetyenvironmentalAdd(params)
}
let PromiseArr = []
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
for (let j = 0; j < this.form.hiddenList[i].hiddenImgs.length; j++) {
let imgFiles = []
imgFiles.push({
uri: this.form.hiddenList[i].hiddenImgs[j].url,
FFILE: this.form.hiddenList[i].hiddenImgs[j].url,
})
PromiseArr.push(this.fnSetImgFilesAdd(imgFiles, resData.pd.hiddenList[i].HIDDEN_ID))
}
for (let j = 0; j < this.form.hiddenList[i].hiddenVideos.length; j++) {
PromiseArr.push(this.fnSetVideoAdd(this.form.hiddenList[i].hiddenVideos[j].url, resData.pd.hiddenList[i].HIDDEN_ID))
}
}
Promise.all(PromiseArr).then(() => {
uni.hideLoading()
uni.showToast({
title: this.INSPECTION_ID ? '修改成功' : '添加成功',
})
if (this.vector !== 'list') {
uni.$u.route({
type: 'navigateBack'
})
} else {
uni.$u.route({
type: 'navigateBack',
delta: 2
})
}
}).catch((e) => {
uni.showToast({
title: '添加失败!',
icon: 'error',
duration: 2000
});
})
},
async fnSetImgFilesAdd(imgFiles, FOREIGN_KEY) {
if (imgFiles[0].uri.indexOf('qgqy.qhdsafety.com') > 0) {
return await function () {
console.log('ok')
}
}
return await setImgFilesAdd({
files: imgFiles,
formData: {
FOREIGN_KEY,
TYPE: '3'
},
loading: false
})
},
async fnSetVideoAdd(filePath, FOREIGN_KEY) {
if (filePath && filePath.indexOf('qgqy.qhdsafety.com') > 0) {
return await function () {
console.log('ok')
}
}
return await setVideoAdd({
filePath,
name: 'FFILE',
formData: {
FOREIGN_KEY,
TYPE: 102,
CORPINFO_ID: this.userInfo.CORPINFO_ID,
},
loading: false
})
},
addHidden() {
this.clearHiddenForm()
this.creatorList = [[{ NAME: this.userInfo.NAME, USER_ID: this.userInfo.USER_ID }]]
this.form.inspectorList.forEach(item => {
let index = this.creatorList[0].findIndex(items => items.USER_ID === item.INSPECTION_USER_ID)
if (index < 0) {
this.creatorList[0].push({
USER_ID: item.INSPECTION_USER_ID,
NAME: item.INSPECTION_USER_NAME,
DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID
})
}
})
this.popupShow = true
this.popupDisabled = false
},
showHidden(item) {
this.clearHiddenForm()
this.creatorList = [[]]
this.form.inspectorList.forEach(item => {
this.creatorList[0].push({ USER_ID: item.INSPECTION_USER_ID, NAME: item.INSPECTION_USER_NAME, DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID })
})
this.hiddenForm = item
this.popupShow = true
this.popupDisabled = true
},
clearHiddenForm() {
this.hiddenForm = {
id: Math.random(),
ISRELEVANT: '2',//
hiddenImgs: [],
hiddenVideos: [],
HIDDENDESCR: '',
HIDDENPART_NAME: '',
HIDDENPART: '',
HIDDENLEVEL_NAME: '',
HIDDENLEVEL: '',
HIDDENTYPE_NAME: '',
HIDDENTYPE: '',
DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
LONGITUDE: '',
LATITUDE: '',
CREATOR_NAME: '',
CREATOR: '',
POSITIONDESC: '',
SOURCE: '4'
}
},
removeHidden(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定移除发现问题吗?',
success: (res) => {
if (res.cancel) {
this.form.hiddenList.splice(index, 1);
if (item.HIDDEN_ID) {
this.delHiddens.push(item.HIDDEN_ID)
}
}
}
});
},
afterRead(event) {
this.hiddenForm.hiddenImgs = [...this.hiddenForm.hiddenImgs, ...event.file]
},
deletePic(event) {
if (this.hiddenForm.hiddenImgs[event.index].IMGFILES_ID) {
this.delHiddenFiles.push(this.hiddenForm.hiddenImgs[event.index].FILEPATH)
}
this.hiddenForm.hiddenImgs = this.hiddenForm.hiddenImgs.filter(item => item.url !== event.file.url)
},
afterRead1(event) {
this.hiddenForm.hiddenVideos = [...this.hiddenForm.hiddenVideos, ...event.file]
},
deletePic1(event) {
this.hiddenForm.hiddenVideos = this.hiddenForm.hiddenVideos.filter(item => item.url !== event.file.url)
},
discoveryTimeConfirm(e) {
this.hiddenForm.DISCOVERYTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.discoveryTimeShow = false;
},
showMapModal() {
let _this = this
uni.navigateTo({
url: '/pages/map/mapPro',
events: {
acceptDataFromOpenedPage: function (e) {
_this.hiddenForm.LONGITUDE = e.data.longitue;
_this.hiddenForm.LATITUDE = e.data.latitude;
}
},
success: function (res) {
res.eventChannel.emit('acceptDataFromOpenerPage', { data: { title: '安全环保检查发起' } })
}
})
},
creatorConfirmPicker(e) {
this.hiddenForm.CREATOR = e.value[0].USER_ID
this.hiddenForm.CREATOR_NAME = e.value[0].NAME
this.hiddenForm.HIDDENFINDDEPT = e.value[0].DEPARTMENT_ID
this.creatorShow = false;
},
popupClose() {
this.popupShow = false
},
popupSave() {
for (const key in this.hiddenFormRules) {
if (!this.hiddenForm[key]) {
uni.showToast({
title: this.hiddenFormRules[key].message,
icon: "none"
})
return;
}
}
this.hiddenForm.SOURCE = 4
this.form.hiddenList.push(this.hiddenForm)
this.popupClose()
},
previewImage(current) {
if (false) {
uni.previewImage({
urls: [current],
current
});
}
},
previewVideo(videoUrl) {
this.modalShow = true;
this.videoUrl = videoUrl;
},
signConfirm(signImg) {
this.form.INSPECTION_USER_SIGN_IMG = signImg.filePath
},
},
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,165 @@
<template>
<view class="content">
<view class="search card">
<u--text suffixIcon="arrow-down" text="筛选" @click="showPicker"></u--text>
<u--input class="ml-10" prefixIcon="search" placeholder="请输入关键字" border="surround" v-model="keyword" clearable
shape="circle"></u--input>
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
</view>
<u-picker :show="show" :columns="columns" keyName="name" @cancel="show = false" @confirm="confirmPicker"></u-picker>
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>被检查单位{{ item.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查发起人{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
<text>检查类型{{ item.INSPECTION_TYPE_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查时间 {{ item.INSPECTION_TIME_START }} {{ item.INSPECTION_TIME_END }} </text>
</view>
<view class="flex-between mt-10 subtitle">
<text>
状态
<template v-if="item.INSPECTION_STATUS == '0'"></template>
<template v-else-if="item.INSPECTION_STATUS == '1'">检查人核实中</template>
<template v-else-if="item.INSPECTION_STATUS == '2'">待被检查人确认</template>
<template v-else-if="item.INSPECTION_STATUS == '3'">待指派</template>
<template v-else-if="item.INSPECTION_STATUS == '4'">指派中</template>
<template v-else-if="item.INSPECTION_STATUS == '5'">指派完成</template>
<template v-else-if="item.INSPECTION_STATUS == '6'">检查待验收</template>
<template v-else-if="item.INSPECTION_STATUS == '7'">检查已验收</template>
<template v-else-if="item.INSPECTION_STATUS == '8'">已归档</template>
<template v-else-if="item.INSPECTION_STATUS == '-1'">检查人核实打回</template>
<template v-else-if="item.INSPECTION_STATUS == '-2'">被检查人申辩</template>
</text>
</view>
<view class="flex-end mt-10">
<u-button type="primary" text="查看" size="mini" class="bth-mini"
@click="fnNavigatorDetail(item.INSPECTION_ID, 'view')"></u-button>
<u-button type="primary" text="流程图" size="mini" class="bth-mini ml-10"
@click="showFlowChart(item.INSPECTION_ID)"></u-button>
<u-button type="primary" text="编辑" size="mini" class="bth-mini ml-10"
v-show="item.INSPECTION_STATUS === '-1'" @click="fnNavigatorDetail(item.INSPECTION_ID, 'edit')"></u-button>
<u-button type="primary" text="申辩处理" size="mini" class="bth-mini ml-10"
v-show="item.INSPECTION_STATUS === '-2'" @click="fnNavigatorPlead(item.INSPECTION_ID)"></u-button>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getSafetyenvironmentalList } from "../../api";
import { initiateList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
show: false,
columns: [
[
{ id: '', name: '请选择' },
{ id: '0', name: '待检查人核实' },
{ id: '1', name: '检查人核实中' },
{ id: '2', name: '待被检查人确认' },
{ id: '3', name: '已归档' },
{ id: '4', name: '指派中' },
{ id: '5', name: '指派完成' },
{ id: '6', name: '待验收' },
{ id: '7', name: '已验收' },
{ id: '-1', name: '检查人核实打回' },
{ id: '-2', name: '被检查人申辩' }
]
],
keyword: '',
INSPECTION_STATUS: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
}
},
onNavigationBarButtonTap(e) {
if (e.index === 0) {
this.fnNavigatorDetail('', 'add');
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onShow() {
this.resetList()
},
methods: {
async getData() {
// TODO: ,
// let resData = await getSafetyenvironmentalList({
// loginUserId: this.userInfo.USER_ID,
// supDeparIds: this.userInfo.supDeparIds,
// roleLevel: this.userInfo.roleLevel,
// KEYWORDS: this.keyword,
// INSPECTION_STATUS: this.INSPECTION_STATUS,
// showCount: this.pageSize,
// currentPage: this.currentPage,
// });
// this.list = [...this.list, ...resData.varList];
// this.totalPage = resData.page.totalPage;
this.list = initiateList;
this.totalPage = initiateList.length;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
showPicker() {
this.show = true;
},
confirmPicker(e) {
this.INSPECTION_STATUS = e.value[0].id
this.show = false;
this.resetList()
},
fnNavigatorDetail(INSPECTION_ID, type) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/initiate/detail',
params: {
INSPECTION_ID,
type
}
})
},
//
fnNavigatorPlead(INSPECTION_ID) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/initiate/plead',
params: {
INSPECTION_ID,
}
})
},
//
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
//
showFlowChart(id) {
uni.navigateTo({
url: '/safetyEnvirSubPackages/pages/initiate/steps?ID=' + id
});
},
}
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,174 @@
<template>
<view class="content">
<view class="card">
<u-cell-group :border="false">
<u-cell class="flex-none">
<view slot="title" class="title">申辩人</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG)"></u--image>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">申辩时间</view>
<view slot="value">{{ form.INSPECTED_SITEUSER_SIGN_TIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">申辩说明</view>
<view slot="value">{{ form.INSPECTED_EXPLAIN }}</view>
</u-cell>
<u-cell class="flex-none" v-if="form.INSPECTED_EXPLAIN_FILENAME">
<view slot="title" class="title">申辩附件</view>
<view slot="value" class="mt-10 flex-between">
<text class="u-line-1">{{ form.INSPECTED_EXPLAIN_FILENAME }}</text>
<u-button type="primary" text="下载" size="mini" class="bth-mini ml-10" @click="downloadAppendix"></u-button>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">申辩是否成立</view>
<view slot="value">
<u-radio-group v-model="form.INSPECTION_STATUS" placement="row">
<u-radio label="是" name="-2"></u-radio>
<u-radio label="否" name="3" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<template v-if="form.INSPECTION_STATUS === '-2'">
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
确认人签字
<u-button type="primary" text="手写添加" size="mini" class="bth-mini" @click="signShow = true"></u-button>
</view>
<view slot="value" class="mt-10">
<u--image v-show="form.SIGN_IMG" :showLoading="true" :src="form.SIGN_IMG" width="100%" height="80px"
mode="scaleToFill" @click="previewImage(form.SIGN_IMG)"></u--image>
<sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
</view>
</u-cell>
</template>
<template v-if="form.INSPECTION_STATUS === '3'">
<u-cell class="flex-none">
<view slot="title" class="title required">不成立理由</view>
<view slot="value" class="mt-10">
<u--textarea v-model="form.INSPECTED_EXPLAIN_REFUSE" placeholder="请输入不成立理由"></u--textarea>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
确认人签字
<u-button type="primary" text="手写添加" size="mini" class="bth-mini" @click="signShow = true"></u-button>
</view>
<view slot="value" class="mt-10">
<u--image v-show="form.SIGN_IMG" :showLoading="true" :src="form.SIGN_IMG" width="100%" height="80px"
mode="scaleToFill" @click="previewImage(form.SIGN_IMG)"></u--image>
<sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
</view>
</u-cell>
</template>
<u-cell class="flex-none" :border="false">
<view slot="value" class="flex-between">
<u-button type="primary" class="bth" text="提交" @click="$u.debounce(fnSubmit, 1000, true)"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</view>
</template>
<script>
import sign from "../../../components/sign/sign";
import { setSafetyenvironmentalGoEdit, setSafetyenvironmentalExplain } from "../../api";
export default {
components: {
sign,
},
data() {
return {
INSPECTION_ID: '',
form: {},
signShow: false
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.getData()
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
methods: {
async getData() {
let params = {
INSPECTION_ID: this.INSPECTION_ID,
}
let resData = await setSafetyenvironmentalGoEdit(params)
this.form = resData.pd
},
previewImage(current) {
uni.previewImage({
urls: [current],
current
});
},
downloadAppendix() {
plus.runtime.openURL(this.$store.state.filePath + this.form.INSPECTED_EXPLAIN_FILEPATH, function (res) {
console.log(res);
});
},
signConfirm(signImg) {
this.form.SIGN_IMG = signImg.filePath
},
async fnSubmit() {
if (!this.form.INSPECTION_STATUS) {
uni.showToast({
title: '请选择申辩是否成立',
icon: "none"
})
return;
}
if (this.form.INSPECTION_STATUS === '3') {
if (!this.form.INSPECTED_EXPLAIN_REFUSE) {
uni.showToast({
title: '请填写不成立理由',
icon: "none"
})
return;
}
if (!this.form.SIGN_IMG) {
uni.showToast({
title: '请签字',
icon: "none"
})
return;
}
await setSafetyenvironmentalExplain({
...this.form,
'loginUserId': this.userInfo.USER_ID,
'loginUserName': this.userInfo.USERNAME
})
uni.showToast({
title: '申辩成功',
})
uni.$u.route({
type: 'navigateBack'
})
} else if (this.form.INSPECTION_STATUS === '-2') {
uni.$u.route({
url: '/pages/safety-environmental-inspection/initiate/detail',
params: {
INSPECTION_ID: this.INSPECTION_ID,
type: 'edit',
vector: 'list'
}
})
}
}
}
}
</script>
<style scoped></style>

View File

@ -0,0 +1,37 @@
<template>
<view class="content">
<view class="card">
<u-steps :current="current" activeIcon="checkmark" inactiveIcon="arrow-right" direction="column">
<u-steps-item v-for="(item,index) in steps" :key="index" :title="item.title" :desc="item.desc"></u-steps-item>
</u-steps>
</view>
</view>
</template>
<script>
import { getHotWorkGoEdit, setSafetyenvironmentalFlow } from "../../api";
export default {
data() {
return {
current:0,
steps: [],
ID:''
}
},
onLoad(event) {
this.ID = event.ID
this.getDate()
},
methods: {
async getDate(){
let resData = await setSafetyenvironmentalFlow({ ID:this.ID });
this.steps = resData.varList
this.current = resData.active
}
}
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,101 @@
<template>
<view class="content">
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>隐患描述{{ item.INSPECTED_DEPARTMENT_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>
状态
<template v-if="item.HIDDEN_STATUS == '101'"></template>
<template v-else-if="item.HIDDEN_STATUS == '1'">待整改</template>
<template v-else-if="item.HIDDEN_STATUS == '2'">待验收</template>
<template v-else-if="item.HIDDEN_STATUS == '10'">验收打回</template>
<template v-else-if="item.HIDDEN_STATUS == '4'">已验收</template>
<template v-else-if="item.HIDDEN_STATUS == '-2'">已指派确认人</template>
<template v-else-if="item.HIDDEN_STATUS == '8'">特殊处置通过</template>
<template v-else-if="item.HIDDEN_STATUS == '16'">确认打回</template>
<template v-else-if="item.HIDDEN_STATUS == '7'">待处理的特殊隐患</template>
</text>
<view class="flex-end">
<u-button type="primary" text="查看" size="mini" class="bth-mini"
@click="fnNavigatorAcceptance(item.INSPECTION_ID, item.HIDDEN_ID, 'view')"></u-button>
<!-- v-show="item.CREATOR === userInfo.USER_ID && (item.HIDDEN_STATUS === '4' || item.HIDDEN_STATUS === '8') && (!item.FINAL_CHECK || item.FINAL_CHECK === '2')" -->
<u-button type="primary" text="验收" size="mini" class="bth-mini ml-10"
@click="fnNavigatorAcceptance(item.INSPECTION_ID, item.HIDDEN_ID, 'acceptance')"></u-button>
</view>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getListForSafetyEnvironmental } from "../../api";
import { initiateList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
INSPECTION_ID: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
},
onShow() {
this.resetList()
},
methods: {
async getData() {
// TODO: ,
// let resData = await getListForSafetyEnvironmental({
// INSPECTION_ID: this.INSPECTION_ID,
// INSPECTION_STATUS: '3-7',
// showCount: this.pageSize,
// currentPage: this.currentPage,
// });
// this.list = [...this.list, ...resData.varList];
// this.totalPage = resData.page.totalPage;
this.list = initiateList;
this.totalPage = initiateList.length;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
fnNavigatorAcceptance(INSPECTION_ID, HIDDEN_ID, type) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/inspector-archives/acceptance',
params: {
INSPECTION_ID,
HIDDEN_ID,
type
}
})
},
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
}
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,615 @@
<template>
<view class="content">
<view class="card">
<view class="view-title">
<u--text text="隐患信息" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">隐患来源</view>
<view slot="value">
<template v-if="data.SOURCE == '1'"></template>
<template v-else-if="data.SOURCE == '2'">清单排查</template>
<template v-else-if="data.SOURCE == '3'">清单排查</template>
<template v-else-if="data.SOURCE == '4'">安全环保检查监管端</template>
<template v-else-if="data.SOURCE == '5'">安全环保检查企业端</template>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患描述</view>
<view slot="value">{{ data.HIDDENDESCR }}</view>
</u-cell>
<template v-if="data.SOURCE == '2'">
<u-cell>
<view slot="title" class="title">风险点单元</view>
<view slot="value">{{ data.RISK_UNIT }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">辨识部位</view>
<view slot="value">{{ data.IDENTIFICATION }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">存在风险</view>
<view slot="value">{{ data.RISK_DESCR }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">风险分级</view>
<view slot="value">{{ data.LEVEL }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查内容</view>
<view slot="value">{{ data.CHECK_CONTENT }}</view>
</u-cell>
</template>
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ data.HIDDENLEVELNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患类型</view>
<view slot="value">{{ data.HIDDENTYPENAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患状态</view>
<view slot="value">
<template v-if="data.STATE == '1'"></template>
<template v-else-if="data.STATE == '2'">已整改</template>
<template v-else-if="data.STATE == '3'">已验收</template>
<template v-else-if="data.STATE == '4'">已验收</template>
<template v-else-if="data.STATE == '8'">特殊处置审核</template>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患部位</view>
<view slot="value">{{ data.hregionName ? data.hregionName : data.HIDDENPART }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患位置描述</view>
<view slot="value">{{ data.POSITIONDESC }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">是否是相关方</view>
<view slot="value">{{ data.ISRELEVANT === '1' ? '是' : '否' }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改类型</view>
<view slot="value">
<template v-if="data.RECTIFICATIONTYPE == '1'"></template>
<template v-else-if="data.RECTIFICATIONTYPE == '2'">限期整改</template>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">位置</view>
<view slot="value" class="mt-10">
<view>经度:{{ data.LONGITUDE }}</view>
<view>纬度:{{ data.LATITUDE }}</view>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">隐患图片</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(item, index) in hImgs" :key="index">
<u--image :showLoading="true" :src="item" width="80px" height="80px"
@click="previewImage(hImgs, item)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
<u-cell v-if="videoUrl">
<view slot="title" class="title">隐患视频</view>
<view slot="value">
<u-icon name="play-circle-fill" size="30" @click="modalShow = true"></u-icon>
</view>
</u-cell>
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
<view>
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
</view>
</u-modal>
<u-cell v-for="(item, index) in hiddenFindPeople" :key="index">
<view slot="title" class="title">隐患发现人</view>
<view slot="value">{{ item.NAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">发现时间</view>
<view slot="value">{{ data.CREATTIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改负责人</view>
<view slot="value">{{ data.oldUserName }}</view>
</u-cell>
<u-cell v-if="data.RECTIFICATIONTYPE == '2'">
<view slot="title" class="title">整改完成期限</view>
<view slot="value">{{ data.oldRectificationDeadline }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-for="(item, index) in hiddenExamineList" :key="index">
<view class="view-title">
<u--text text="确认信息" bold v-if="item.TYPE === 4"></u--text>
<u--text text="延期信息" bold v-else-if="item.TYPE === 2"></u--text>
<u--text text="特殊处理审核信息" bold v-else-if="item.TYPE === 1"></u--text>
</view>
<u-cell-group :border="false" class="mt-10" v-if="item.TYPE === 4">
<u-cell>
<view slot="title" class="title">隐患级别</view>
<view slot="value">{{ item.editLevelName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改负责人</view>
<view slot="value">{{ item.editUserName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改完成期限</view>
<view slot="value">{{ item.spare3 }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患确认人</view>
<view slot="value">{{ data.conUserName }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患确认时间</view>
<view slot="value">{{ data.CONFIRM_TIME }}</view>
</u-cell>
</u-cell-group>
<u-cell-group :border="false" class="mt-10" v-if="item.TYPE === 2">
<u-cell>
<view slot="title" class="title">申请延期日期</view>
<view slot="value">{{ item.DELAY_TIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">审核人</view>
<!-- <view slot="value" v-if="pd.conUserName">{{ pd.conUserName }}</view>-->
<!-- <view slot="value" v-if="pd.conUserName">{{ pd.conUserName }}</view>-->
</u-cell>
<u-cell>
<view slot="title" class="title">处置方案</view>
<view slot="value">{{ item.DISPOSAL_PLAN }}</view>
</u-cell>
<u-cell class="flex-none" v-if="item.DISPOSAL_FILE">
<view slot="title" class="title">方案附件</view>
<view slot="value" class="mt-10">
<text class="u-line-1">{{ item.DISPOSAL_FILE }}</text>
<u-button type="primary" text="下载" size="mini" class="bth-mini"
@click="downloadAppendix(item.DISPOSAL_FILE)"></u-button>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">延期审核状态</view>
<view slot="value">
<template v-if="item.STATE === -1"></template>
<template v-else-if="item.STATE === 1">通过</template>
<template v-else-if="item.STATE === 2">未通过</template>
</view>
</u-cell>
<u-cell v-if="item.STATE === 1">
<view slot="title" class="title">审核时间</view>
<view slot="value">{{ item.OPERATTIME }}</view>
</u-cell>
</u-cell-group>
<u-cell-group :border="false" class="mt-10" v-if="item.TYPE === 1">
<u-cell>
<view slot="title" class="title">无法整改原因</view>
<view slot="value">{{ item.EXAMINE }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">特殊处置审核状态</view>
<view slot="value">
<template v-if="item.STATE === -1"></template>
<template v-else-if="item.STATE === 2">通过</template>
<template v-else-if="item.STATE === 1">未通过</template>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">处置方案</view>
<view slot="value">{{ item.DISPOSAL_PLAN }}</view>
</u-cell>
<u-cell class="flex-none" v-if="item.DISPOSAL_FILE">
<view slot="title" class="title">方案附件</view>
<view v-if="item.DISPOSAL_FILE" slot="value" class="mt-10">
<!-- <text class="u-line-1">{{ item.DISPOSAL_FILE }}</text>-->
<u-button type="primary" text="下载" size="mini" class="bth"
@click="downloadAppendix(item.DISPOSAL_FILE)"></u-button>
</view>
</u-cell>
<u-cell v-if="item.STATE !== -1">
<view slot="title" class="title">审核时间</view>
<view slot="value">{{ item.OPERATTIME }}</view>
</u-cell>
<u-cell v-if="item.STATE !== -1">
<view slot="title" class="title">审核人</view>
<view slot="value">{{ data.conUserName }}</view>
</u-cell>
<u-cell v-if="item.TYPE === '2'">
<view slot="title" class="title">是否更换整改负责人</view>
<view slot="value">
<template v-if="item.spare1 === '1'"></template>
<template v-if="item.spare1 === '0'"></template>
</view>
</u-cell>
<u-cell v-if="item.STATE !== '-1'">
<view slot="title" class="title">是否更换整改负责人</view>
<view slot="value">
<template v-if="item.spare2 === undefined"></template>
<template v-else></template>
</view>
</u-cell>
<u-cell v-if="item.spare1 === '1'">
<view slot="title" class="title">整改负责人</view>
<view slot="value">{{ item.NEWRECTIFICATIONOR }}</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-if="data.STATE >= 2 && data.STATE != 8">
<view class="view-title">
<u--text text="整改信息" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">整改描述</view>
<view slot="value">{{ data.RECTIFYDESCR }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改部门</view>
<view slot="value">{{ data.RECTIFICATIONDEPTNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改人</view>
<view slot="value">{{ data.RECTIFICATIONORNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改时间</view>
<view slot="value">{{ data.RECTIFICATIONTIME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">投入资金</view>
<view slot="value">{{ data.INVESTMENT_FUNDS }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">整改后图片</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(item, index) in rImgs" :key="index">
<u--image :showLoading="true" :src="item" width="80px" height="80px"
@click="previewImage(rImgs, item)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">整改方案</view>
<view slot="value">
<template v-if="data.HAVESCHEME == 0"></template>
<template v-else-if="data.HAVESCHEME == 1"></template>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-if="hs && hs.HIDDENSCHEME_ID && data.HAVESCHEME == 1">
<view class="view-title">
<u--text text="整改方案" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title">排查日期</view>
<view slot="value">{{ hs.SCREENINGDATE }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患清单</view>
<view slot="value">{{ hs.LISTNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">治理标准要求</view>
<view slot="value">{{ hs.GOVERNSTANDARDS }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">治理方法</view>
<view slot="value">{{ hs.GOVERNMETHOD }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">经费和物资的落实</view>
<view slot="value">{{ hs.EXPENDITURE }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">负责治理人员</view>
<view slot="value">{{ hs.PRINCIPAL }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">工时安排</view>
<view slot="value">{{ hs.PROGRAMMING }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">时限要求</view>
<view slot="value">{{ hs.TIMELIMITFOR }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">工作要求</view>
<view slot="value">{{ hs.JOBREQUIREMENT }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">其他事项</view>
<view slot="value">{{ hs.OTHERBUSINESS }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">方案图片</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(item, index) in sImgs" :key="index">
<u--image :showLoading="true" :src="item" width="80px" height="80px"
@click="previewImage(sImgs, item)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-if="data.STATE >= 4 && data.STATE != 8">
<view class="view-title">
<u--text text="验收信息" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10" v-for="(item, index) in checkList" :key="index">
<u-cell>
<view slot="title" class="title">验收描述</view>
<view slot="value">{{ item.CHECKDESCR }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">是否合格</view>
<view slot="value">
<template v-if="item.STATUS == '1'"></template>
<template v-else-if="item.STATUS == '0'"></template>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">验收部门</view>
<view slot="value">{{ item.CHECKDEPTNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">验收人</view>
<view slot="value">{{ item.CHECKORNAME }}</view>
</u-cell>
<u-cell>
<view slot="title" class="title">验收时间</view>
<view slot="value">{{ item.CHECK_TIME }}</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">验收图片</view>
<view slot="value" class="mt-10">
<u-row>
<u-col span="3" v-for="(items, index) in item.cImgs" :key="index">
<u--image :showLoading="true" :src="filePath + '/' + items.FILEPATH" width="80px" height="80px"
@click="previewImages(item.cImgs, items)"></u--image>
</u-col>
</u-row>
</view>
</u-cell>
</u-cell-group>
</view>
<view class="card" v-if="type === 'acceptance'">
<view class="view-title">
<u--text text="安全环保检查验收" bold></u--text>
</view>
<u-cell-group :border="false" class="mt-10">
<u-cell>
<view slot="title" class="title required">是否合格</view>
<view slot="value">
<u-radio-group v-model="form.FINAL_CHECK" placement="row">
<u-radio label="是" name="1"></u-radio>
<u-radio label="否" name="2" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">验收意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="form.FINAL_CHECKDESCR" placeholder="请输入验收意见"></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">验收时间</view>
<view slot="value">
<text @click="finalChecktimeShow = true">{{ form.FINAL_CHECKTIME || '请选择' }}</text>
<u-datetime-picker :show="finalChecktimeShow" :value="form.FINAL_CHECKTIME" :minDate="Number(new Date())"
mode="date" @cancel="finalChecktimeShow = false" @confirm="finalChecktimeConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">验收图片</view>
<view slot="value" class="mt-10">
<u-upload uploadIcon="plus" :fileList="form.check_imgList" @afterRead="afterRead" @delete="deletePic"
multiple :maxCount="4"></u-upload>
</view>
</u-cell>
<u-cell class="flex-none" :border="false">
<view slot="value">
<u-button type="primary" text="提交" @click="$u.debounce(fnSubmit, 1000, true)"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</view>
</template>
<script>
import { getHiddenGoEdit, setFinalCheck, setImgFilesAdd, setVideoAdd } from "../../api";
export default {
data() {
return {
INSPECTION_ID: '',
HIDDEN_ID: '',
type: '',
data: {},
hImgs: [],
videoUrl: '',
modalShow: false,
hiddenFindPeople: [],
hiddenExamineList: [],
rImgs: [],
hs: {},
sImgs: [],
checkList: [],
cImgs: [],
finalChecktimeShow: false,
form: {
FINAL_CHECK: '',
FINAL_CHECKDESCR: '',
FINAL_CHECKTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd'),
check_imgList: []
},
rules: {
'FINAL_CHECK': { required: true, message: '请选择是否合格' },
'FINAL_CHECKDESCR': { required: true, message: '请输入验收意见' },
'FINAL_CHECKTIME': { required: true, message: '请选择验收时间' },
}
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
},
filePath() {
return this.$store.state.filePath
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.HIDDEN_ID = event.HIDDEN_ID
this.type = event.type
this.getData()
},
methods: {
async getData() {
let resData = await getHiddenGoEdit({
HIDDEN_ID: this.HIDDEN_ID
})
this.data = resData.pd;
this.hs = resData.hs;
this.hiddenFindPeople = resData.hiddenFindPeople || []
this.hiddenExamineList = resData.hiddenExa || []
this.checkList = resData.checkList
resData.hiddenExa && resData.hiddenExa.forEach(item => {
if (item.TYPE === 4) {
this.data.oldUserName = item.oldUserName
this.data.oldDeptName = item.oldDeptName
this.data.oldLevelName = item.oldLevelName
this.data.oldRectificationDeadline = item.spare3
}
})
for (let i = 0; i < resData.hImgs.length; i++) {
this.hImgs.push(this.$store.state.filePath + resData.hImgs[i].FILEPATH)
}
for (let i = 0; i < resData.rImgs.length; i++) {
this.rImgs.push(this.$store.state.filePath + resData.rImgs[i].FILEPATH)
}
for (let i = 0; i < resData.cImgs && resData.cImgs.length; i++) {
this.cImgs.push(this.$store.state.filePath + resData.cImgs[i].FILEPATH)
}
for (let i = 0; i < resData.sImgs.length; i++) {
this.sImgs.push(this.$store.state.filePath + resData.sImgs[i].FILEPATH)
}
if (resData.hiddenVideo.length > 0) this.videoUrl = this.$store.state.filePath + resData.hiddenVideo[0].FILEPATH
},
previewImage(list, current) {
console.log(list)
console.log(current)
uni.previewImage({
urls: list,
current
});
},
previewImages(list, current) {
let url_list = []
for (let i = 0; i < list.length; i++) {
url_list.push(this.$store.state.filePath + list[i].FILEPATH)
}
let _current = this.filePath + current.FILEPATH
uni.previewImage({
urls: url_list,
_current
});
},
downloadAppendix(DISPOSAL_FILE) {
// console.log(this.$store.state.filePath + DISPOSAL_FILE)
plus.runtime.openURL(this.$store.state.filePath + DISPOSAL_FILE, function (res) {
console.log(res);
});
},
finalChecktimeConfirm(e) {
this.form.FINAL_CHECKTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd')
this.finalChecktimeShow = false;
},
afterRead(event) {
this.form.check_imgList = [...this.form.check_imgList, ...event.file]
},
deletePic(event) {
this.form.check_imgList = this.form.check_imgList.filter(item => item.url !== event.file.url)
},
async fnSubmit() {
for (const key in this.rules) {
if (!this.form[key]) {
uni.showToast({
title: this.rules[key].message,
icon: "none"
})
return;
}
}
// if (this.form.check_imgList.length === 0) {
// uni.showToast({
// title: '',
// icon: "none"
// })
// return;
// }
uni.showLoading({
title: '加载中'
});
await setFinalCheck({
HIDDEN_ID: this.HIDDEN_ID,
INSPECTION_ID: this.INSPECTION_ID,
FINAL_CHECKOR: this.userInfo.USER_ID,
...this.form,
loading: false
})
let PromiseArr = []
for (let i = 0; i < this.form.check_imgList.length; i++) {
let imgFiles = []
imgFiles.push({
uri: this.form.check_imgList[i].url,
FFILE: this.form.check_imgList[i].url,
})
PromiseArr.push(this.fnSetVideoAdd(imgFiles))
}
Promise.all(PromiseArr).then(() => {
uni.hideLoading()
uni.showToast({
title: '验收成功',
})
uni.$u.route({
type: 'navigateBack'
})
}).catch((e) => {
uni.showToast({
title: '验收失败!',
icon: 'error',
duration: 2000
});
})
},
async fnSetVideoAdd(imgFiles) {
console.log(imgFiles)
return await setImgFilesAdd({
files: imgFiles,
formData: {
FOREIGN_KEY: this.HIDDEN_ID,
TYPE: '50'
},
loading: false
})
}
}
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,323 @@
<template>
<view class="content">
<view class="card">
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title required">检查题目</view>
<view slot="value">
<u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" disabled>
<u-radio label="安全" name="安全"></u-radio>
<u-radio label="环保" name="环保" class="ml-10"></u-radio>
<u-radio label="综合" name="综合" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">被检查单位</view>
<view slot="value">
<text>{{ form.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">被检查单位现场负责人</view>
<view slot="value">
<text>{{ form.INSPECTED_SITEUSER_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查场所</view>
<view slot="value">
<u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right"
disabled></u--input>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查类型</view>
<view slot="value">
<text>{{ form.INSPECTION_TYPE_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查开始时间</view>
<view slot="value">
<text>{{ form.INSPECTION_TIME_START }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查结束时间</view>
<view slot="value">
<text>{{ form.INSPECTION_TIME_END }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">记录填写时间</view>
<view slot="value">
<text>{{ form.CREATTIME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查情况</view>
</u-cell>
<u-cell class="flex-none">
<view slot="value">
<view class="pr mt-10" v-for="item in form.situationList" :key="item.id">
<u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" disabled></u--textarea>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查人员</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<view class="pr mt-10" v-for="(item, index) in form.inspectorList" :key="item.id">
<u-cell-group :border="false" class="border">
<u-cell class="title-show">
<view slot="title">{{ index + 1 }}.检查人员单位</view>
<view slot="value">
<text>{{ item.INSPECTION_DEPARTMENT_NAME }}</text>
</view>
</u-cell>
<u-cell class="title-show" :border="false">
<view slot="title">{{ index + 1 }}.检查人员</view>
<view slot="value">
<text>{{ item.INSPECTION_USER_NAME }}</text>
</view>
</u-cell>
</u-cell-group>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">发现问题</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">序号</uni-th>
<uni-th align="center">隐患部位</uni-th>
<uni-th align="center">隐患描述</uni-th>
<uni-th align="center">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in form.hiddenList" :key="item.HIDDEN_ID || item.id">
<uni-td>{{ index + 1 }}</uni-td>
<uni-td>{{ item.HIDDENPART_NAME }}</uni-td>
<uni-td>{{ item.HIDDENDESCR }}</uni-td>
<uni-td>
<view class="flex-between">
<u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon>
</view>
</uni-td>
</uni-tr>
</uni-table>
</view>
</u-cell>
<view v-for="(item, index) in form.inspectorVerifyList" :key="index">
<u-cell class="flex-none" v-show="item.INSPECTION_USER_OPINION">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="item.INSPECTION_USER_OPINION" disabled placeholder="请输入检查人意见"></u--textarea>
</view>
</u-cell>
<u-cell class="flex-none" v-show="item.INSPECTION_USER_SIGN_IMG">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
</view>
</u-cell>
</view>
</u-cell-group>
</view>
<u-popup :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false"
:customStyle="{ width: '85vw', overflowY: 'auto' }">
<view class="card">
<u-cell-group :border="false">
<u-cell class="flex-none">
<view slot="title" class="title required">隐患照片</view>
<view slot="value" class="mt-10">
<u-upload disabled deletable uploadIcon="plus" :fileList="hiddenForm.hiddenImgs" multiple
:maxCount="4"></u-upload>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
隐患视频
<u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url"
name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon>
</view>
<view slot="value" class="mt-10">
<u-upload disabled deletable accept="video" uploadIcon="plus" :fileList="hiddenForm.hiddenVideos" multiple
:maxCount="1"></u-upload>
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
<view>
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
</view>
</u-modal>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述" disabled></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患部位</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患级别</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENLEVEL_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患类型</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENTYPE_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">是否是相关方</view>
<view slot="value">
<text>{{ hiddenForm.ISRELEVANT === '1' ? '是' : '否' }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现时间</view>
<view slot="value">
<text>{{ hiddenForm.DISCOVERYTIME }}</text>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患上报位置</view>
<view slot="value" class="mt-10">
<view>经度:{{ hiddenForm.LONGITUDE }}</view>
<view>纬度:{{ hiddenForm.LATITUDE }}</view>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患位置描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述" disabled></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现人</view>
<view slot="value">
<text>{{ hiddenForm.CREATOR_NAME }}</text>
</view>
</u-cell>
<u-cell class="flex-none" :border="false">
<view slot="value" class="flex-between">
<u-button type="info" text="取消" class="bth" @click="popupClose"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</u-popup>
</view>
</template>
<script>
import { getSafetyenvironmentalGoEdit } from "../../api";
export default {
data() {
return {
form: {
INSPECTION_SUBJECT: '',
INSPECTED_DEPARTMENT_NAME: '',
INSPECTED_DEPARTMENT_ID: '',
INSPECTED_SITEUSER_NAME: '',
INSPECTED_SITEUSER_ID: '',
INSPECTION_PLACE: '',
INSPECTION_TYPE_NAME: '',
INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
CREATTIME: '',
situationList: [{ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' }],
inspectorList: [{
id: Math.random(),
inspectionUserShow: false,
INSPECTION_INSPECTOR_ID: '',
INSPECTION_DEPARTMENT_ID: '',
INSPECTION_DEPARTMENT_NAME: '',
INSPECTION_USER_ID: '',
INSPECTION_USER_NAME: ''
}],
hiddenList: [],
INSPECTION_USER_OPINION: '',
INSPECTION_USER_SIGN_IMG: '',
},
INSPECTION_ID: '',
popupShow: false,
hiddenForm: {
hiddenImgs: [],
hiddenVideos: [],
HIDDENDESCR: '',
HIDDENPART_NAME: '',
HIDDENPART: '',
HIDDENLEVEL_NAME: '',
HIDDENLEVEL: '',
HIDDENTYPE_NAME: '',
HIDDENTYPE: '',
DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
LONGITUDE: '',
LATITUDE: '',
CREATOR_NAME: '',
CREATOR: '',
ISRELEVANT: ''
},
modalShow: false,
videoUrl: ''
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
if (this.INSPECTION_ID) {
this.fnGetSafetyenvironmentalGoEdit()
}
},
methods: {
async fnGetSafetyenvironmentalGoEdit() {
let resData = await getSafetyenvironmentalGoEdit({ INSPECTION_ID: this.INSPECTION_ID })
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) {
resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH
}
for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) {
resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH
}
}
this.form = resData.pd
},
showHidden(item) {
this.hiddenForm = item
this.popupShow = true
},
popupClose() {
this.popupShow = false
},
previewImage(current) {
if (false) {
uni.previewImage({
urls: [current],
current
});
}
},
previewVideo(videoUrl) {
this.modalShow = true;
this.videoUrl = videoUrl;
}
},
}
</script>
<style></style>

View File

@ -0,0 +1,121 @@
<template>
<view class="content">
<view class="search card">
<u--input prefixIcon="search" placeholder="请输入关键字" border="surround" v-model="keyword" clearable
shape="circle"></u--input>
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
</view>
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>被检查单位{{ item.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查发起人{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
<text>检查类型{{ item.INSPECTION_TYPE_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查时间 {{ item.INSPECTION_TIME_START }} {{ item.INSPECTION_TIME_END }} </text>
</view>
<view class="flex-between mt-10 subtitle">
<text>
状态
<template v-if="item.INSPECTION_STATUS == '0'"></template>
<template v-else-if="item.INSPECTION_STATUS == '1'">检查人核实中</template>
<template v-else-if="item.INSPECTION_STATUS == '2'">待被检查人确认</template>
<template v-else-if="item.INSPECTION_STATUS == '3'">待指派</template>
<template v-else-if="item.INSPECTION_STATUS == '4'">指派中</template>
<template v-else-if="item.INSPECTION_STATUS == '5'">指派完成</template>
<template v-else-if="item.INSPECTION_STATUS == '6'">检查待验收</template>
<template v-else-if="item.INSPECTION_STATUS == '7'">检查已验收</template>
<template v-else-if="item.INSPECTION_STATUS == '8'">已归档</template>
<template v-else-if="item.INSPECTION_STATUS == '-1'">检查人核实打回</template>
<template v-else-if="item.INSPECTION_STATUS == '-2'">被检查人申辩</template>
</text>
</view>
<view class="flex-end mt-10">
<u-button type="primary" text="查看" size="mini" class="bth-mini"
@click="fnNavigatorDetail(item.INSPECTION_ID)"></u-button>
<u-button
v-show="(item.INSPECTION_STATUS === '6' || item.INSPECTION_STATUS === '5' || item.INSPECTION_STATUS === '7') && item.checkout === 1"
type="primary" text="验收" size="mini" class="bth-mini ml-10"
@click="fnNavigatorAcceptance(item.INSPECTION_ID)"></u-button>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getSafetyenvironmentalCheckList, getSafetyenvironmentalList } from "../../api";
import { initiateList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
keyword: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onShow() {
this.resetList()
},
methods: {
async getData() {
// TODO: ,
// let resData = await getSafetyenvironmentalCheckList({
// INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
// KEYWORDS: this.keyword,
// INSPECTION_STATUS: '3-7',
// showCount: this.pageSize,
// currentPage: this.currentPage,
// ARCHIVE_USER_ID: this.userInfo.USER_ID
// });
// this.list = [...this.list, ...resData.varList];
// this.totalPage = resData.page.totalPage;
this.list = initiateList;
this.totalPage = initiateList.length;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
fnNavigatorDetail(INSPECTION_ID) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/inspector-archives/detail',
params: {
INSPECTION_ID,
}
})
},
fnNavigatorAcceptance(INSPECTION_ID) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/inspector-archives/acceptance-list',
params: {
INSPECTION_ID,
}
})
},
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
}
}
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,414 @@
<template>
<view class="content">
<view class="card">
<u-cell-group :border="false">
<u-cell>
<view slot="title" class="title required">检查题目</view>
<view slot="value">
<u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" disabled>
<u-radio label="安全" name="安全"></u-radio>
<u-radio label="环保" name="环保" class="ml-10"></u-radio>
<u-radio label="综合" name="综合" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">被检查单位</view>
<view slot="value">
<text>{{ form.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">被检查单位现场负责人</view>
<view slot="value">
<text>{{ form.INSPECTED_SITEUSER_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查场所</view>
<view slot="value">
<u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right"
disabled></u--input>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查类型</view>
<view slot="value">
<text>{{ form.INSPECTION_TYPE_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查开始时间</view>
<view slot="value">
<text>{{ form.INSPECTION_TIME_START }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查结束时间</view>
<view slot="value">
<text>{{ form.INSPECTION_TIME_END }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">记录填写时间</view>
<view slot="value">
<text>{{ form.CREATTIME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查情况</view>
</u-cell>
<u-cell class="flex-none">
<view slot="value">
<view class="pr mt-10" v-for="(item) in form.situationList" :key="item.id">
<u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" disabled></u--textarea>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查人员</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<view class="pr mt-10" v-for="(item, index) in form.inspectorList" :key="item.id">
<u-cell-group :border="false" class="border">
<u-cell class="title-show">
<view slot="title">{{ index + 1 }}.检查人员单位</view>
<view slot="value">
<text>{{ item.INSPECTION_DEPARTMENT_NAME }}</text>
</view>
</u-cell>
<u-cell class="title-show" :border="false">
<view slot="title">{{ index + 1 }}.检查人员</view>
<view slot="value">
<text>{{ item.INSPECTION_USER_NAME }}</text>
</view>
</u-cell>
</u-cell-group>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">发现问题</view>
</u-cell>
<u-cell class="title-none">
<view slot="value" style="flex: 1">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">序号</uni-th>
<uni-th align="center">隐患部位</uni-th>
<uni-th align="center">隐患描述</uni-th>
<uni-th align="center">操作</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in form.hiddenList" :key="item.HIDDEN_ID || item.id">
<uni-td>{{ index + 1 }}</uni-td>
<uni-td>{{ item.HIDDENPART_NAME ? item.HIDDENPART_NAME : item.HIDDENPART }}</uni-td>
<uni-td>{{ item.HIDDENDESCR }}</uni-td>
<uni-td>
<view class="flex-between">
<u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon>
</view>
</uni-td>
</uni-tr>
</uni-table>
</view>
</u-cell>
<template v-if="type === 'verify'">
<u-cell class="flex-none">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="form.INSPECTION_USER_OPINION" placeholder="请输入检查人意见"></u--textarea>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
签字
<u-button type="primary" text="手写添加" size="mini" class="bth-mini" @click="signShow = true"></u-button>
</view>
<view slot="value" class="mt-10">
<u--image v-show="form.INSPECTION_USER_SIGN_IMG" :showLoading="true" :src="form.INSPECTION_USER_SIGN_IMG"
width="100%" height="80px" mode="scaleToFill"
@click="previewImage(form.INSPECTION_USER_SIGN_IMG)"></u--image>
<sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
</view>
</u-cell>
<u-cell class="flex-none" :border="false">
<view slot="value" class="flex-between">
<u-button type="primary" class="bth" text="通过" @click="$u.debounce(fnSubmit(1), 1000, true)"></u-button>
<u-button type="error" class="bth ml-10" text="不通过"
@click="$u.debounce(fnSubmit(-1), 1000, true)"></u-button>
</view>
</u-cell>
</template>
<view v-for="(item, index) in esipList" :key="index">
<template v-if="item.INSPECTION_USER_SIGN_IMG">
<u-cell class="flex-none">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<text>{{ item.INSPECTION_USER_OPINION }}</text>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" mode="scaleToFill"
:src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%" height="80px"
@click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">审核状态</view>
<view slot="value"><text>同意</text></view>
</u-cell>
</template>
</view>
</u-cell-group>
</view>
<u-popup :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false"
:customStyle="{ width: '85vw', overflowY: 'auto' }">
<view class="card">
<u-cell-group :border="false">
<u-cell class="flex-none">
<view slot="title" class="title required">隐患照片</view>
<view slot="value" class="mt-10">
<u-upload disabled deletable uploadIcon="plus" :fileList="hiddenForm.hiddenImgs" multiple
:maxCount="4"></u-upload>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title flex-between">
隐患视频
<u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url"
name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon>
</view>
<view slot="value" class="mt-10">
<u-upload disabled deletable accept="video" uploadIcon="plus" :fileList="hiddenForm.hiddenVideos" multiple
:maxCount="1"></u-upload>
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
<view>
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
</view>
</u-modal>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述" disabled></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患部位</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患级别</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENLEVEL_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">是否是相关方</view>
<view slot="value">
<u-radio-group v-model="hiddenForm.ISRELEVANT" placement="row" disabled="false">
<u-radio label="是" name="1" class="ml-10"></u-radio>
<u-radio label="否" name="2" class="ml-10"></u-radio>
</u-radio-group>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患类型</view>
<view slot="value">
<text>{{ hiddenForm.HIDDENTYPE_NAME }}</text>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现时间</view>
<view slot="value">
<text>{{ hiddenForm.DISCOVERYTIME }}</text>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患上报位置</view>
<view slot="value" class="mt-10">
<view>经度:{{ hiddenForm.LONGITUDE }}</view>
<view>纬度:{{ hiddenForm.LATITUDE }}</view>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title required">隐患位置描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述" disabled></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现人</view>
<view slot="value">
<text>{{ hiddenForm.CREATOR_NAME }}</text>
</view>
</u-cell>
<u-cell class="flex-none" :border="false">
<view slot="value" class="flex-between">
<u-button type="info" text="取消" class="bth" @click="popupClose"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</u-popup>
</view>
</template>
<script>
import { getSafetyenvironmentalGoEdit, setSafetyenvironmentalVerify } from "../../api";
import sign from "../../../components/sign/sign";
export default {
components: {
sign,
},
data() {
return {
form: {
INSPECTION_SUBJECT: '',
INSPECTED_DEPARTMENT_NAME: '',
INSPECTED_DEPARTMENT_ID: '',
INSPECTED_SITEUSER_NAME: '',
INSPECTED_SITEUSER_ID: '',
INSPECTION_PLACE: '',
INSPECTION_TYPE_NAME: '',
INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
CREATTIME: '',
situationList: [{ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' }],
inspectorList: [{
id: Math.random(),
inspectionUserShow: false,
INSPECTION_INSPECTOR_ID: '',
INSPECTION_DEPARTMENT_ID: '',
INSPECTION_DEPARTMENT_NAME: '',
INSPECTION_USER_ID: '',
INSPECTION_USER_NAME: ''
}],
hiddenList: [],
INSPECTION_USER_OPINION: '',
INSPECTION_USER_SIGN_IMG: ''
},
rules: {
'INSPECTION_USER_OPINION': { required: true, message: '请输入检查人意见' },
'INSPECTION_USER_SIGN_IMG': { required: true, message: '请签字' },
},
INSPECTION_ID: '',
type: '',
INSPECTION_USER_ID: '',
INSPECTION_INSPECTOR_ID: '',
popupShow: false,
hiddenForm: {
hiddenImgs: [],
hiddenVideos: [],
HIDDENDESCR: '',
HIDDENPART_NAME: '',
HIDDENPART: '',
HIDDENLEVEL_NAME: '',
HIDDENLEVEL: '',
HIDDENTYPE_NAME: '',
HIDDENTYPE: '',
DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
LONGITUDE: '',
LATITUDE: '',
CREATOR_NAME: '',
CREATOR: '',
},
signShow: false,
modalShow: false,
videoUrl: '',
esipList: [] //
}
},
onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.type = event.type
this.INSPECTION_INSPECTOR_ID = event.INSPECTION_INSPECTOR_ID
this.INSPECTION_USER_ID = event.INSPECTION_USER_ID
if (this.INSPECTION_ID) {
this.fnGetSafetyenvironmentalGoEdit()
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
methods: {
async fnGetSafetyenvironmentalGoEdit() {
let resData = await getSafetyenvironmentalGoEdit({ INSPECTION_ID: this.INSPECTION_ID })
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) {
resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH
}
for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) {
resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH
}
}
this.form = resData.pd
this.esipList = resData.esipList
},
async fnSubmit(INSPECTION_STATUS) {
for (const key in this.rules) {
if (!this.form[key]) {
uni.showToast({
title: this.rules[key].message,
icon: "none"
})
return;
}
}
await setSafetyenvironmentalVerify({
filePath: this.form.INSPECTION_USER_SIGN_IMG,
name: 'FFILE',
formData: {
INSPECTION_STATUS,
INSPECTION_ID: this.INSPECTION_ID,
INSPECTION_INSPECTOR_ID: this.INSPECTION_INSPECTOR_ID,
INSPECTION_USER_ID: this.INSPECTION_USER_ID,
INSPECTION_USER_OPINION: this.form.INSPECTION_USER_OPINION,
INSPECTION_USER_SIGN_TIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
ACTION_USER_ID: this.userInfo.USER_ID,
ACTION_ID: this.userInfo.USER_ID,
},
})
uni.showToast({
title: '核查成功',
})
uni.$u.route({
type: 'navigateBack'
})
},
showHidden(item) {
this.hiddenForm = item
this.popupShow = true
},
popupClose() {
this.popupShow = false
},
signConfirm(signImg) {
this.form.INSPECTION_USER_SIGN_IMG = signImg.filePath
},
previewImage(current) {
if (false) {
uni.previewImage({
urls: [current],
current
});
}
},
previewVideo(videoUrl) {
this.modalShow = true;
this.videoUrl = videoUrl;
}
},
}
</script>
<style></style>

View File

@ -0,0 +1,119 @@
<template>
<view class="content">
<view class="search card">
<u--input prefixIcon="search" placeholder="请输入关键字" border="surround" v-model="keyword" clearable
shape="circle"></u--input>
<u-button class="bth-mini ml-10" type="success" text="确定" @click="resetList"></u-button>
</view>
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
<u-list-item v-for="(item, index) in list" :key="index">
<view>
<view class="flex-between main-title">
<text>被检查单位{{ item.INSPECTED_CORPINFO_ID_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查发起人{{ item.INSPECTION_ORIGINATOR_NAME }}</text>
<text>检查类型{{ item.INSPECTION_TYPE_NAME }}</text>
</view>
<view class="flex-between mt-10 subtitle">
<text>检查时间 {{ item.INSPECTION_TIME_START }} {{ item.INSPECTION_TIME_END }} </text>
</view>
<view class="flex-between mt-10 subtitle">
<text>
状态
<template v-if="item.INSPECTION_STATUS == '0'"></template>
<template v-else-if="item.INSPECTION_STATUS == '1'">检查人核实中</template>
<template v-else-if="item.INSPECTION_STATUS == '2'">待被检查人确认</template>
<template v-else-if="item.INSPECTION_STATUS == '3'">待指派</template>
<template v-else-if="item.INSPECTION_STATUS == '4'">指派中</template>
<template v-else-if="item.INSPECTION_STATUS == '5'">指派完成</template>
<template v-else-if="item.INSPECTION_STATUS == '6'">检查待验收</template>
<template v-else-if="item.INSPECTION_STATUS == '7'">检查已验收</template>
<template v-else-if="item.INSPECTION_STATUS == '8'">已归档</template>
<template v-else-if="item.INSPECTION_STATUS == '-1'">检查人核实打回</template>
<template v-else-if="item.INSPECTION_STATUS == '-2'">被检查人申辩</template>
</text>
</view>
<view class="flex-end mt-10">
<u-button type="primary" text="查看" size="mini" class="bth-mini"
@click="fnNavigatorDetail(item.INSPECTION_ID, item.INSPECTION_USER_ID, item.INSPECTION_INSPECTOR_ID, 'view')"></u-button>
<u-button
v-if="!validStr(item.INSPECTION_USER_SIGN_TIME) && (item.INSPECTION_STATUS == '0' || item.INSPECTION_STATUS == '1')"
type="primary" text="核实" size="mini" class="bth-mini ml-10"
@click="fnNavigatorDetail(item.INSPECTION_ID, item.INSPECTION_USER_ID, item.INSPECTION_INSPECTOR_ID, 'verify')"></u-button>
</view>
</view>
</u-list-item>
</u-list>
<empty v-else></empty>
</view>
</template>
<script>
import { getSafetyenvironmentalinspectorList } from "../../api";
import { initiateList } from '../../../Mock/safetyEnvirData';
export default {
data() {
return {
keyword: '',
INSPECTION_STATUS: '',
pageSize: 10,
currentPage: 1,
totalPage: 0,
list: [],
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
onShow() {
this.resetList()
},
methods: {
validStr(str) {
if (str != null && str != '' && typeof (str) != 'undefined' && str != 'undefined' && str != 0 && str != 'null') { return true }
return false
},
async getData() {
// TODO: ,
// let resData = await getSafetyenvironmentalinspectorList({
// INSPECTION_USER_ID: this.userInfo.USER_ID,
// KEYWORDS: this.keyword,
// showCount: this.pageSize,
// currentPage: this.currentPage,
// });
// this.list = [...this.list,...resData.varList];
// this.totalPage = resData.page.totalPage;
this.list = initiateList;
this.totalPage = initiateList.length;
},
resetList() {
this.pageSize = 10
this.currentPage = 1
this.list = []
this.getData()
},
fnNavigatorDetail(INSPECTION_ID, INSPECTION_USER_ID, INSPECTION_INSPECTOR_ID, type) {
uni.$u.route({
url: '/safetyEnvirSubPackages/pages/inspector-confirms/detail',
params: {
INSPECTION_ID,
INSPECTION_USER_ID,
INSPECTION_INSPECTOR_ID,
type
}
})
},
scrolltolower() {
this.currentPage++;
if (this.totalPage >= this.currentPage) this.getData();
},
}
}
</script>
<style scoped lang="scss"></style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -75,14 +75,13 @@
.main-title {
color: #333333;
font-size: 30rpx;
font-weight: bold;
// font-weight: bold;
margin-bottom: 20rpx;
}
.subtitle {
color: #888888;
font-size: 28rpx;
font-size: 26rpx;
}
.card {

View File

@ -22,7 +22,7 @@ function post(url, data) {
"Content-type": "application/x-www-form-urlencoded",
},
success: (res) => {
if (res.statusCode != 200) {
if (res.statusCode !== 200) {
uni.showToast({
title: "网络错误请重试," + res.statusCode,
icon: "error",