From a11d3cc2f836a6c9e7c944fa6ad3aab7b48d551a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9A=AE?= <1944342241@qq.com> Date: Sun, 18 Jan 2026 16:06:37 +0800 Subject: [PATCH] =?UTF-8?q?1.18=E6=95=B4=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 8 +- pages.json | 92 +- pages/closeout/application.vue | 205 +++- pages/closeout/editor.vue | 141 ++- pages/hiddendanger/Inspection.vue | 365 ++++--- pages/hiddendanger/acceptance.vue | 238 ++++- pages/hiddendanger/assignment.vue | 210 ++++ pages/hiddendanger/rectification.vue | 239 ++--- pages/hiddendanger/view.vue | 50 +- pages/index/index.vue | 131 +-- pages/login/agreement.vue | 27 + pages/login/enterprise.vue | 214 +++++ pages/login/forget.vue | 296 ++++++ pages/login/login.vue | 391 ++++++++ pages/login/reg.vue | 365 +++++++ pages/login/success.vue | 31 + pages/map/map.vue | 18 + pages/membermanagemen/membermanagemen.vue | 231 +++-- pages/personalcenter/my.vue | 20 +- request/api.js | 94 ++ request/request.js | 41 +- static/index/Bell2x.png | Bin 0 -> 48423 bytes static/index/Bell_BG2x.png | Bin 0 -> 36416 bytes static/index/cl.png | Bin 0 -> 2914 bytes static/index/eye.png | Bin 0 -> 1410 bytes static/index/index_bg.png | Bin 0 -> 40445 bytes static/index/index_bg2.png | Bin 0 -> 22151 bytes static/index/lock.png | Bin 0 -> 780 bytes static/index/op.png | Bin 0 -> 1410 bytes static/index/phone.png | Bin 0 -> 513 bytes static/index/photos.png | Bin 0 -> 609 bytes static/index/蒙版组 260.png | Bin 0 -> 2846 bytes static/index/蒙版组 261.png | Bin 0 -> 1320 bytes static/tabBar/{组 20264.png => home.png} | Bin static/tabBar/{组 20261.png => map.png} | Bin static/tabBar/{组 20263.png => my.png} | Bin static/tabBar/{组 20262.png => warning.png} | Bin unpackage/dist/dev/mp-weixin/app.js | 8 + unpackage/dist/dev/mp-weixin/app.json | 51 +- unpackage/dist/dev/mp-weixin/common/assets.js | 36 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 5 + .../mp-weixin/pages/closeout/application.js | 216 ++++- .../mp-weixin/pages/closeout/application.json | 3 +- .../mp-weixin/pages/closeout/application.wxml | 2 +- .../mp-weixin/pages/closeout/application.wxss | 10 + .../dev/mp-weixin/pages/closeout/editor.js | 173 +++- .../dev/mp-weixin/pages/closeout/editor.json | 3 +- .../dev/mp-weixin/pages/closeout/editor.wxml | 2 +- .../dev/mp-weixin/pages/closeout/editor.wxss | 36 +- .../pages/hiddendanger/Inspection.js | 239 +++-- .../pages/hiddendanger/Inspection.json | 4 +- .../pages/hiddendanger/Inspection.wxml | 2 +- .../pages/hiddendanger/Inspection.wxss | 19 + .../pages/hiddendanger/acceptance.js | 194 +++- .../pages/hiddendanger/acceptance.wxml | 2 +- .../pages/hiddendanger/acceptance.wxss | 16 + .../pages/hiddendanger/assignment.js | 149 +++ .../pages/hiddendanger/assignment.json | 7 + .../pages/hiddendanger/assignment.wxml | 1 + .../pages/hiddendanger/assignment.wxss | 63 ++ .../pages/hiddendanger/rectification.js | 137 +-- .../pages/hiddendanger/rectification.json | 5 +- .../pages/hiddendanger/rectification.wxml | 2 +- .../dev/mp-weixin/pages/hiddendanger/view.js | 33 +- .../mp-weixin/pages/hiddendanger/view.wxml | 2 +- .../dist/dev/mp-weixin/pages/index/index.js | 84 +- .../dist/dev/mp-weixin/pages/index/index.wxml | 2 +- .../dist/dev/mp-weixin/pages/index/index.wxss | 4 + .../dev/mp-weixin/pages/login/agreement.js | 25 + .../dev/mp-weixin/pages/login/agreement.json | 5 + .../dev/mp-weixin/pages/login/agreement.wxml | 1 + .../dev/mp-weixin/pages/login/agreement.wxss | 26 + .../dev/mp-weixin/pages/login/enterprise.js | 152 +++ .../dev/mp-weixin/pages/login/enterprise.json | 8 + .../dev/mp-weixin/pages/login/enterprise.wxml | 1 + .../dev/mp-weixin/pages/login/enterprise.wxss | 59 ++ .../dist/dev/mp-weixin/pages/login/forget.js | 168 ++++ .../dev/mp-weixin/pages/login/forget.json | 5 + .../dev/mp-weixin/pages/login/forget.wxml | 1 + .../dev/mp-weixin/pages/login/forget.wxss | 116 +++ .../dist/dev/mp-weixin/pages/login/login.js | 99 ++ .../dist/dev/mp-weixin/pages/login/login.json | 5 + .../dist/dev/mp-weixin/pages/login/login.wxml | 1 + .../dist/dev/mp-weixin/pages/login/login.wxss | 182 ++++ .../dist/dev/mp-weixin/pages/login/reg.js | 201 ++++ .../dist/dev/mp-weixin/pages/login/reg.json | 9 + .../dist/dev/mp-weixin/pages/login/reg.wxml | 1 + .../dist/dev/mp-weixin/pages/login/reg.wxss | 128 +++ .../dist/dev/mp-weixin/pages/login/success.js | 18 + .../dev/mp-weixin/pages/login/success.json | 4 + .../dev/mp-weixin/pages/login/success.wxml | 1 + .../dev/mp-weixin/pages/login/success.wxss | 6 + unpackage/dist/dev/mp-weixin/pages/map/map.js | 8 + .../dist/dev/mp-weixin/pages/map/map.json | 4 + .../dist/dev/mp-weixin/pages/map/map.wxml | 1 + .../dist/dev/mp-weixin/pages/map/map.wxss | 30 + .../pages/membermanagemen/membermanagemen.js | 161 +++- .../membermanagemen/membermanagemen.wxml | 2 +- .../pages/personalcenter/helpcenter.js | 2 +- .../dev/mp-weixin/pages/personalcenter/my.js | 28 +- .../mp-weixin/pages/personalcenter/my.wxml | 2 +- .../dist/dev/mp-weixin/project.config.json | 19 +- .../dev/mp-weixin/project.private.config.json | 16 - unpackage/dist/dev/mp-weixin/request/api.js | 82 ++ .../dist/dev/mp-weixin/request/request.js | 36 +- .../dev/mp-weixin/static/index/Bell2x.png | Bin 0 -> 48423 bytes .../dev/mp-weixin/static/index/Bell_BG2x.png | Bin 0 -> 36416 bytes .../dist/dev/mp-weixin/static/index/cl.png | Bin 0 -> 2914 bytes .../dist/dev/mp-weixin/static/index/eye.png | Bin 0 -> 1410 bytes .../dev/mp-weixin/static/index/index_bg.png | Bin 0 -> 40445 bytes .../dev/mp-weixin/static/index/index_bg2.png | Bin 0 -> 22151 bytes .../dist/dev/mp-weixin/static/index/lock.png | Bin 0 -> 780 bytes .../dist/dev/mp-weixin/static/index/op.png | Bin 0 -> 1410 bytes .../dist/dev/mp-weixin/static/index/phone.png | Bin 0 -> 513 bytes .../dev/mp-weixin/static/index/photos.png | Bin 0 -> 609 bytes .../dev/mp-weixin/static/index/蒙版组 260.png | Bin 0 -> 2846 bytes .../dev/mp-weixin/static/index/蒙版组 261.png | Bin 0 -> 1320 bytes .../static/tabBar/{组 20264.png => home.png} | Bin .../static/tabBar/{组 20261.png => map.png} | Bin .../static/tabBar/{组 20263.png => my.png} | Bin .../tabBar/{组 20262.png => warning.png} | Bin .../components/u-form-item/props.js | 57 ++ .../components/u-form-item/u-form-item.js | 142 +++ .../components/u-form-item/u-form-item.json | 7 + .../components/u-form-item/u-form-item.wxml | 1 + .../components/u-form-item/u-form-item.wxss | 94 ++ .../uview-plus/components/u-form/props.js | 49 + .../uview-plus/components/u-form/u-form.js | 208 ++++ .../uview-plus/components/u-form/u-form.json | 4 + .../uview-plus/components/u-form/u-form.wxml | 1 + .../uview-plus/components/u-form/u-form.wxss | 0 .../uview-plus/components/u-line/props.js | 37 + .../uview-plus/components/u-line/u-line.js | 38 + .../uview-plus/components/u-line/u-line.json | 4 + .../uview-plus/components/u-line/u-line.wxml | 1 + .../uview-plus/components/u-line/u-line.wxss | 29 + .../uview-plus/libs/function/index.js | 2 + .../uview-plus/libs/util/async-validator.js | 893 ++++++++++++++++++ 138 files changed, 7241 insertions(+), 856 deletions(-) create mode 100644 pages/hiddendanger/assignment.vue create mode 100644 pages/login/agreement.vue create mode 100644 pages/login/enterprise.vue create mode 100644 pages/login/forget.vue create mode 100644 pages/login/login.vue create mode 100644 pages/login/reg.vue create mode 100644 pages/login/success.vue create mode 100644 pages/map/map.vue create mode 100644 static/index/Bell2x.png create mode 100644 static/index/Bell_BG2x.png create mode 100644 static/index/cl.png create mode 100644 static/index/eye.png create mode 100644 static/index/index_bg.png create mode 100644 static/index/index_bg2.png create mode 100644 static/index/lock.png create mode 100644 static/index/op.png create mode 100644 static/index/phone.png create mode 100644 static/index/photos.png create mode 100644 static/index/蒙版组 260.png create mode 100644 static/index/蒙版组 261.png rename static/tabBar/{组 20264.png => home.png} (100%) rename static/tabBar/{组 20261.png => map.png} (100%) rename static/tabBar/{组 20263.png => my.png} (100%) rename static/tabBar/{组 20262.png => warning.png} (100%) create mode 100644 unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/agreement.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/agreement.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/agreement.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/agreement.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/enterprise.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/enterprise.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/forget.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/forget.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/forget.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/forget.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/reg.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/reg.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/reg.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/reg.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/success.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/success.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/success.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/success.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/map/map.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/map/map.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/map/map.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/map/map.wxss delete mode 100644 unpackage/dist/dev/mp-weixin/project.private.config.json create mode 100644 unpackage/dist/dev/mp-weixin/static/index/Bell2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/Bell_BG2x.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/cl.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/eye.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/index_bg.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/index_bg2.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/lock.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/op.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/phone.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/photos.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/蒙版组 260.png create mode 100644 unpackage/dist/dev/mp-weixin/static/index/蒙版组 261.png rename unpackage/dist/dev/mp-weixin/static/tabBar/{组 20264.png => home.png} (100%) rename unpackage/dist/dev/mp-weixin/static/tabBar/{组 20261.png => map.png} (100%) rename unpackage/dist/dev/mp-weixin/static/tabBar/{组 20263.png => my.png} (100%) rename unpackage/dist/dev/mp-weixin/static/tabBar/{组 20262.png => warning.png} (100%) create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/props.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/props.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/props.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/util/async-validator.js diff --git a/manifest.json b/manifest.json index 4474113..868f952 100644 --- a/manifest.json +++ b/manifest.json @@ -74,7 +74,13 @@ "es6" : true, "postcss" : true, "minified" : true - } + }, + "permission" : { + "scope.userLocation" : { + "desc" : "你的位置信息将用于选择隐患位置" + } + }, + "requiredPrivateInfos" : ["chooseLocation", "getLocation"] }, "mp-toutiao" : { "appid" : "", diff --git a/pages.json b/pages.json index 936941d..fec7d84 100644 --- a/pages.json +++ b/pages.json @@ -14,6 +14,12 @@ "navigationBarTitleText": "三查一曝光" } }, + { + "path": "pages/map/map", + "style": { + "navigationBarTitleText": "一张图" + } + }, { "path": "pages/plandetail/plandetail", "style": { @@ -98,6 +104,12 @@ "navigationBarTitleText": "隐患验收" } }, + { + "path":"pages/hiddendanger/assignment", + "style": { + "navigationBarTitleText": "隐患交办" + } + }, { "path":"pages/closeout/application", "style": { @@ -170,7 +182,53 @@ "navigationBarTitleText": "编辑资料" } - } + }, + { + "path" : "pages/login/login", + "style" : + { + "navigationBarTitleText" : "登录页面", + "navigationStyle": "custom" + } + }, + { + "path" : "pages/login/reg", + "style" : + { + "navigationBarTitleText" : "注册账号", + "navigationStyle": "custom" + } + }, + { + "path" : "pages/login/enterprise", + "style" : + { + "navigationBarTitleText" : "注册新企业" + } + }, + { + "path" : "pages/login/success", + "style" : + { + "navigationBarTitleText" : "注册成功" + } + }, + { + "path" : "pages/login/forget", + "style" : + { + "navigationBarTitleText" : "忘记密码", + "navigationStyle": "custom" + } + }, + { + "path" : "pages/login/agreement", + "style" : + { + "navigationBarTitleText" : "用户协议", + "navigationStyle": "custom" + } + } ], "globalStyle": { "navigationBarTextStyle": "white", @@ -178,5 +236,37 @@ "navigationBarBackgroundColor": "#007aff", "backgroundColor": "#F8F8F8" }, + "tabBar": { + "color": "#999999", + "selectedColor": "#007aff", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "static/tabBar/home.png", + "selectedIconPath": "static/tabBar/home.png" + }, + { + "pagePath": "pages/map/map", + "text": "一张图", + "iconPath": "static/tabBar/map.png", + "selectedIconPath": "static/tabBar/map.png" + }, + { + "pagePath": "pages/Inspectionwarning/Inspectionwarning", + "text": "预警", + "iconPath": "static/tabBar/warning.png", + "selectedIconPath": "static/tabBar/warning.png" + }, + { + "pagePath": "pages/personalcenter/my", + "text": "我的", + "iconPath": "static/tabBar/my.png", + "selectedIconPath": "static/tabBar/my.png" + } + ] + }, "uniIdRouter": {} } diff --git a/pages/closeout/application.vue b/pages/closeout/application.vue index ba1b800..16d7719 100644 --- a/pages/closeout/application.vue +++ b/pages/closeout/application.vue @@ -1,25 +1,26 @@ \ No newline at end of file diff --git a/pages/closeout/editor.vue b/pages/closeout/editor.vue index 52dbd71..0692b17 100644 --- a/pages/closeout/editor.vue +++ b/pages/closeout/editor.vue @@ -3,36 +3,133 @@ 隐患 - * - - - 整改时限 - * - - - 隐患治理责任单位 - - 主要负责人 - - 主要治理内容 - - 隐患治理完成情况 - - 隐患治理责任单位自行验收的情况 - - - - + + 隐患日期 + + 隐患治理责任单位 + + 主要负责人 + + 创建时间 + + 状态 + + + + - - \ No newline at end of file + + .result-btn { + flex: 1; + height: 80rpx; + line-height: 80rpx; + border-radius: 8rpx; + background: #f5f5f5; + color: #666; + font-size: 28rpx; + + &::after { + border: none; + } + + &.active { + background: #2667E9; + color: #fff; + } + } + diff --git a/pages/hiddendanger/assignment.vue b/pages/hiddendanger/assignment.vue new file mode 100644 index 0000000..18ce30b --- /dev/null +++ b/pages/hiddendanger/assignment.vue @@ -0,0 +1,210 @@ + + + + + \ No newline at end of file diff --git a/pages/hiddendanger/rectification.vue b/pages/hiddendanger/rectification.vue index 3a09cd4..034a523 100644 --- a/pages/hiddendanger/rectification.vue +++ b/pages/hiddendanger/rectification.vue @@ -28,141 +28,154 @@ {{ selectedDate || '请选择日期' }} - - - 整改人员 - * + + + + - - - + 整改图片/视频 * - + \ No newline at end of file + diff --git a/pages/index/index.vue b/pages/index/index.vue index 22d20ab..3d1e902 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -5,10 +5,10 @@ - 湘西和谐云大数据产业发展有限公司 + {{ userInfo.deptName || '未知部门' }} - 手机号: - 17374339800 + 用户: + {{ userInfo.nickName || userInfo.username || '未登录' }} @@ -18,11 +18,11 @@ - - - 功能菜单 + + + 功能菜单 - + {{ item.name}} @@ -87,41 +87,41 @@ - + 我的隐患排查 - + 隐患 #15 标题: - 有隐患 + {{item.title}} 隐患来源: - 企业自查 + {{item.source}} 隐患位置: - 湖南省湘西土家族苗族自治州吉首市人民北路105号 + {{item.address}} 隐患等级: - 一般隐患 + {{item.levelName}} 隐患状态: - 待验收 + {{item.statusName}} 发现时间: - 2025-11-11 17:08:09 + {{item.createdAt}} - + @@ -129,41 +129,41 @@ - - - - - - 首页 - - - - - - 一张图 - - - - - - 预警 - - - - - - 我的 - - @@ -286,7 +302,8 @@ .content {} .grid-list { - // gap: 5px 5px; + gap: 30rpx; + margin-top: 30rpx; } .list { diff --git a/pages/login/agreement.vue b/pages/login/agreement.vue new file mode 100644 index 0000000..43ad64b --- /dev/null +++ b/pages/login/agreement.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/pages/login/enterprise.vue b/pages/login/enterprise.vue new file mode 100644 index 0000000..58877fd --- /dev/null +++ b/pages/login/enterprise.vue @@ -0,0 +1,214 @@ + + + + + \ No newline at end of file diff --git a/pages/login/forget.vue b/pages/login/forget.vue new file mode 100644 index 0000000..72b69ce --- /dev/null +++ b/pages/login/forget.vue @@ -0,0 +1,296 @@ + + + + + \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue new file mode 100644 index 0000000..9e5939b --- /dev/null +++ b/pages/login/login.vue @@ -0,0 +1,391 @@ + + + + + diff --git a/pages/login/reg.vue b/pages/login/reg.vue new file mode 100644 index 0000000..21cc8b3 --- /dev/null +++ b/pages/login/reg.vue @@ -0,0 +1,365 @@ + + + + + \ No newline at end of file diff --git a/pages/login/success.vue b/pages/login/success.vue new file mode 100644 index 0000000..38c3d25 --- /dev/null +++ b/pages/login/success.vue @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git a/pages/map/map.vue b/pages/map/map.vue new file mode 100644 index 0000000..53a3a2c --- /dev/null +++ b/pages/map/map.vue @@ -0,0 +1,18 @@ + + + + + + diff --git a/pages/membermanagemen/membermanagemen.vue b/pages/membermanagemen/membermanagemen.vue index 41d35fd..ad339d9 100644 --- a/pages/membermanagemen/membermanagemen.vue +++ b/pages/membermanagemen/membermanagemen.vue @@ -1,6 +1,6 @@ + \ No newline at end of file diff --git a/pages/personalcenter/my.vue b/pages/personalcenter/my.vue index 068fbe8..82576cd 100644 --- a/pages/personalcenter/my.vue +++ b/pages/personalcenter/my.vue @@ -67,7 +67,7 @@ - + @@ -98,6 +98,24 @@ url:'/pages/personalcenter/account' }) } + //退出登录 + const handleLogout = () => { + uni.showModal({ + title: '提示', + content: '确定要退出登录吗?', + success: function (res) { + if (res.confirm) { + console.log('用户点击确定'); + uni.clearStorageSync() + uni.reLaunch({ + url:'/pages/login/login' + }) + } else if (res.cancel) { + console.log('用户点击取消'); + } + } + }); + } diff --git a/request/api.js b/request/api.js index 288d6c3..255aca5 100644 --- a/request/api.js +++ b/request/api.js @@ -37,6 +37,14 @@ export function addHiddenDanger(params) { data: params }); } +//交办隐患 +export function assignHiddenDanger(params) { + return requestAPI({ + url: '/frontend/hazard/assign', + method: 'POST', + data: params + }); +} //文件图片上传 export function uploadFile(params) { return requestAPI({ @@ -61,6 +69,15 @@ export function getHiddenDangerDetail(params) { data: params }); } +//获取隐患排查列表 +export function getHiddenDangerList(params) { + return requestAPI({ + url: '/frontend/hazard/my/list', + method: 'GET', + data: params + }); +} + //提交整改 export function submitRectification(params) { return requestAPI({ @@ -75,4 +92,81 @@ export function getHiddenDangerLabelList() { url: '/frontend/hazard/tag/list', method: 'GET' }); +} +//获取部门人员列表(本部门、上级部门、上上级部门) +export function getDepartmentPersonUsers(params) { + return requestAPI({ + url: '/frontend/hazard/dept/users', + method: 'GET', + data: params + }); +} +//成员管理 +//添加成员 +export function addMember(params) { + return requestAPI({ + url: '/frontend/member/add', + method: 'POST', + data: params + }); +} +//获取成员列表 +export function getMemberList(params) { + return requestAPI({ + url: '/frontend/member/list', + method: 'GET', + data: params + }); +} +//锁定/解锁成员 +export function lockOrUnlockMember(params) { + return requestAPI({ + url: '/frontend/member/lock', + method: 'POST', + data: params + }); +} +//销号申请 +//申请销号 +export function applyDelete(params) { + return requestAPI({ + url: '/frontend/hazard/writeoff/apply', + method: 'POST', + data: params + }); +} +//获取验收完成的隐患列表(可申请销号) +export function getAcceptanceList(params) { + return requestAPI({ + url: '/frontend/hazard/verified/list', + method: 'GET', + data: params + }); +} +//获取我的销号申请列表 +export function getMyWriteOffList(params) { + return requestAPI({ + url: '/frontend/hazard/writeoff/my/list', + method: 'GET', + data: params + }); +} + +//验收整改 +export function acceptanceRectification(params) { + return requestAPI({ + url: '/frontend/hazard/verify', + method: 'POST', + data: params + }); +} + +//登录 +export function login(params) { + return requestAPI({ + url: '/frontend/auth/login', + method: 'POST', + data: params, + noAuth: true // 登录接口不需要 Authorization + }); } \ No newline at end of file diff --git a/request/request.js b/request/request.js index d44b2ff..58fc448 100644 --- a/request/request.js +++ b/request/request.js @@ -7,15 +7,14 @@ import Request from './luch-request/index.js'; const http = new Request({ baseURL: baseUrl, - timeout: 10000, - header: { - // 'content-type': 'application/json', - 'Authorization': "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNzQ5NGU2MzAtNTRlYS00ZTM5LWIxYjUtNzc2MzY5NTRhYmJmIn0.7l5CMwFitlpXniZ6PTR5DqN8ASFTFZ1DCUZKjOtr5CpuXWiPHeSW19nY8XKfGdxMvB7j-OnXuSznLRjx-N7K9g" - } + timeout: 10000 }) -// 固定的 token -const AUTH_TOKEN = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNTQyMjJlODYtZDUyNS00ZTA0LWI3Y2QtMGU1ZWYzYmIwM2EwIn0.x8zPXafDGVjIDIcAdWsWT3F2fU20QHVLFR15b251LfwpfRt_UaDo1-bvHEyi8hxqVkiStOqi09TTUTPBgjPYkw"; +// 动态获取 token(从登录接口存储的) +const getToken = () => { + const token = uni.getStorageSync('token'); + return token ? `Bearer ${token}` : ''; +}; // 请求之前查看是否为空 const isEmptyObject = (obj) => { return Object.keys(obj).length === 0; @@ -44,7 +43,7 @@ function showToast(title) { // 请求 const requestAPI = (config) => { // 支持对象参数或传统参数 - let { url, method = 'GET', data = {} } = typeof config === 'object' && config.url ? config : { url: config, method: arguments[1] || 'GET', data: arguments[2] || {} }; + let { url, method = 'GET', data = {}, noAuth = false } = typeof config === 'object' && config.url ? config : { url: config, method: arguments[1] || 'GET', data: arguments[2] || {} }; if (method == 'GET' && !isEmptyObject(data)) { url += '?' + objectToQueryString(data); @@ -53,14 +52,24 @@ const requestAPI = (config) => { uni.showLoading({ title: '加载中...' }); + + // 构建 header,登录等接口不需要 Authorization + const header = { + 'Content-Type': 'application/json' + }; + if (!noAuth) { + const token = getToken(); + if (token) { + header['Authorization'] = token; + } + } + return new Promise((resolve, reject) => { uni.request({ url: baseUrl + url, method, data, - header: { - 'Authorization': AUTH_TOKEN - }, + header, success: (res) => { uni.hideLoading(); @@ -79,8 +88,14 @@ const requestAPI = (config) => { resolve(res.data); } else if (res.data.code === 401) { // token过期处理 - uni.removeStorageSync('_user_token_'); + uni.removeStorageSync('token'); + uni.removeStorageSync('userInfo'); showToast('登录已过期,请重新登录'); + setTimeout(() => { + uni.reLaunch({ + url: '/pages/login/login' + }); + }, 1500); reject('401'); } else { showToast(res.data.msg || '请求失败'); @@ -109,4 +124,4 @@ const requestAPI = (config) => { }; // 文件末尾应该导出 -export { requestAPI,baseUrl,AUTH_TOKEN }; \ No newline at end of file +export { requestAPI, baseUrl, getToken }; \ No newline at end of file diff --git a/static/index/Bell2x.png b/static/index/Bell2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2db94f2c87c6fa83422d2d469ee22181777cb7b GIT binary patch literal 48423 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 W?PpGoM1{ow0000HMj=~!Fl<< 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 ZvGQXW^N>dU76|y00V)iXiy3|T{{XkaAz=Uj literal 0 HcmV?d00001 diff --git a/static/index/cl.png b/static/index/cl.png new file mode 100644 index 0000000000000000000000000000000000000000..66d6ea1066f12f496a3be90c2d78fc9bd16c7822 GIT binary patch literal 2914 zcmcgud0Z3M8jTiEQ0p!z3Td)q&%Kk> z@ae$=+(x-^IGh2YAsQX~lsK-wF6_P1?%B*fT&a*bG>6k~sN?Fz$;|TLa9oOr2m@mX zdj~>DGap7tBgVIzDHhG)1Wd70FtQk9xJE3Ru&8(~rR6*>fvR|s(l9|7rN&~2kR?`Z z){^NF$dbi~66H;q%nh(ZYydOHz+Ai8WT7Fuiq{brV%v^xkjL$SFpE{ZKu1EZAuOD$ zCaoA(%9jC%P$J^Wm3*O0pcF|aaYX{592Cewp%@SdA%P4ME4f`i9-GaI;*d`Bc2_R; zO~s307zzSGo6W|ziTR{88Wbv(N>CsIMIwMj0Cb{-f$e~W9@`y3gVBhUpcsO*a2*k0 zBN@-Acr4S-63kRjSPR`H6Dt^Khbd6V7dT4l0HR0_j*7RMI+CLZh?y`mW?^U+E9}8i zF(gCMG2|bF?iqe50V{1-SWk{uaxt5GQqYVxfi0s;kXNGVh(rnlbr?;?TMHnzAwNr4a{IF9=m2rKp+A{iU^?$k}4pv zVxm9+2?U+cFcKy3#NR{ZkU$AZg)c!_!=Nw&|0NhjAe^+CVYXbt3`b)iWr^l-dqjlP zq=~e$iCK2y7yCoi>ToNG6DD?m)&&P~L$zv|P$`oEBEGPLZde!;YM~j}f?%N<6_1sM zPY@`C%TTdQ&bkSg3lRX5N|b;RF&Y6BW$&y2LQINu&)1Mhyu$#F`JHh)RV~#V8ERaWM+u zFeU;}r9=cMg#sBM6G;V#Ow6*97#*hX@DUV3(Ci8)c5S0sSX@`jL~uK-1Hp)6OQ?8= z!wVS7>*^+6p~v6K+%?}8gRw#X#3h~CX%c5_uoVl8X0`hZ4}yP0orV+soVXm8BSHm+ z0VpPt0wSpd1r(T(U00O&aLL$ey3;#Xw-+1=FC*CCq5(8VJG4^Z)dH;JUf6tSh z9RF{nfQ|#T(_7$gZPzjO!r{vK=#Vqzlyq zM#L*c!(=WLo2i@UlK@+5x7#c3$09hAbn*(7qls2&s%4(bQ0f`_T+ z)=c~HO|hT%xDR!u>$IVSZ5kjQe&XJ?A8*1Z@sxDp-W8}C`Yi|f;fjkmb#{dca^Cb<1;nUBUi zLSH{Nxn=hKYvE}=bXvt}tcs}cbcapf|FQ+En*Ax5_9!x^ZJX1%zMji>X^#c$NWbd8 zzt`sE;kIFM3wX!Uh7V?jOs|Z4@4JUzA4}iodYw_1ZOi59rxIjU;_&l7&8zl+AK$E9 zN5~TQ`3Kb>_Vbui_atZs zw>&r3{AKacb1Uy#nwpo($H-UZX-%7)3tQ4BSAX_2KIcF~-%Fa_&x&e--TBe7CwY;9 z%0}PfP{WFlwImFGlI+rZ^|zTDjs)zaGS6JQ#Yk|*C2Yfu?b?HA=Z*IqbnW->0o2m4f{G6H%bo;3E)%C3t z^*6ZqO28z^L%RikyyqZ~hrv@n~ zK2c^++-@;P9S(>H_;S0qlV9!Zsg;@K8_sy&vf$NGQ+CMVO|cPka~qQbqC8B2rJ7GK z`xMp3K3nD_OUZ3eKc6rHz+FUSJyXJ AvH$=8 literal 0 HcmV?d00001 diff --git a/static/index/eye.png b/static/index/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..5d037bf70cd9a8327f045a6f0f6993c4920041a7 GIT binary patch literal 1410 zcmV-|1%3L7P)Px)JV``BR9Hu~S8Iq=Wf*?mZ!Q{awXrU2&<_O#4TP11{GpXdWS}Ut;EDzkQsx;q zl_lJ{op*OyO8|5Nm zf({VfhR6g!*9o{nWSxzNw_U7f$7_#l0Zyd1K&cN(!h+xOR(?$)_TKNsy@8>_FIXbG zAXo*$OfSRb?{b@nKJr_+Baz7VKbzHafY~daG$M*H06;k#BI8iB&X+fDnm%;^pjFKp ztt%&(AcfuXXlxHNPk7lX0kZ}B6UJ&$I1b>+$BHH(CO|MC+OfJqfn!5$$o(ReP%f#>{>M+E0McRS*+9OQ+)#3?ujV4(8r$Bk-I^FNUH| z0h;d-vMqX8J6bDK4J>7(0famPm?v0o>)~z3yaLUUVvz%>wNx!BGkhlR}A z-J(pPj`5-A5Kz}Z)as%<0g|f#y;vc08G;4XbxlSUurVGE{alpmPaf8UB;$U=a)!g9 z)z!d~nG+!Dc2y({-@9XOZtL(J0b!GSV&EZiSj4Q277orc5ojL+p~aPN7P|FlAya7} zb@*iqa@LD45LwTWkP~W7WOhQ)KCgptpY~=^hEvAp0M>f=8O7w-LYoT2$;>w(desY< zSXkB{)h;-|l13*8m#cI{0IJHRyByY@Ed$H!2WY#OAIr4f8i;K>Mx4t00?# zM7v_k=?P;gDV)c2Fl94Sb&eyUXDWaV0u=S~V~M;!5DD$2_>i$d*>%ZlnRuOJ+E)e6 z7%d3OeSrLp)#xmTw=ORM8#0bTytpaj$mQlR?-(y+WioRKM2p?ANrJvSFSN%Ye}T-0mO!cV?l*v2m>iqO%=wC2I}Ok) zjSnPw66qDeMJRR2BfJLbub!c-^}?KJ z&{zp2_PAA?0j;SQS&YM>l#Qh!$Gm{r{ZjnsB*I(>TF8esvG50Azr@Y!$lbqDFWV~Z zMh6eh^DF-d2n&k)mT7Joi1i%(&%nHZH~XFW&{GKdj|1X7s7WZKN46UO0Bg<+J5`m3 Q{r~^~07*qoM6N<$f*y4`g>O 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 literal 0 HcmV?d00001 diff --git a/static/index/lock.png b/static/index/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..fe9de5a0fa4e4812f5124e2ae9fa7685f81331e1 GIT binary patch literal 780 zcmV+n1M~ceP)Px%#z{m$R9HvtmrZCBK@`W|o7AK%9t17ut%r&VUOY-GTF6D-rZM2LhXxcCEmk~; zpy;tjML|U&2p$9@{n(vt#Xt@U3ija5i(oH8jS4-aB@M}pnKDVYHXpMqwU_K^5C3_; z_x^9@?GC~YJ-9<$2n^2W^F764@g!qx2mtz3;)wVQ02ZRrXf7U)|28Sc7@Wyudi(nN zt|H=Xrxd zhz5JkqAvV0H#M(g%#?F13sZw7A*o|>BKk4B>(>ekjO&PplA ziD;==Fx`&phqDdmU83sH%J3ADKMBZueL)*5;JAualAfrS=h)an?;&B+TJ{8~e+G!$6wFQTP z1YNVG$GKc?@7mg0eOLsI*HK?66n>=B=~4r%cH!#k>QewvHgD&%RGWBX4KU~YLTy5Y z>SfR@*N2L4>#NPQ-PJa7?1F<>y(p!;4FKv(MfwN9xZR7`}W9N0EnBC zLxU~L+U5UR`RB3;JT#byHVvOHxRc#otBucbrBXSVOeVkjj?<&snZDS`;w|4}&Uw&T zJs*q3M%9(YbzL<;vH;NgKfvn@DP__3vv11XxU{*h`=ECDx?;TYABBxw?KsY1MEn#c z`=B{UDYKiV&&uP1en1g94O0000< KMNUMnLSTZ6qHPxd literal 0 HcmV?d00001 diff --git a/static/index/op.png b/static/index/op.png new file mode 100644 index 0000000000000000000000000000000000000000..5d037bf70cd9a8327f045a6f0f6993c4920041a7 GIT binary patch literal 1410 zcmV-|1%3L7P)Px)JV``BR9Hu~S8Iq=Wf*?mZ!Q{awXrU2&<_O#4TP11{GpXdWS}Ut;EDzkQsx;q zl_lJ{op*OyO8|5Nm zf({VfhR6g!*9o{nWSxzNw_U7f$7_#l0Zyd1K&cN(!h+xOR(?$)_TKNsy@8>_FIXbG zAXo*$OfSRb?{b@nKJr_+Baz7VKbzHafY~daG$M*H06;k#BI8iB&X+fDnm%;^pjFKp ztt%&(AcfuXXlxHNPk7lX0kZ}B6UJ&$I1b>+$BHH(CO|MC+OfJqfn!5$$o(ReP%f#>{>M+E0McRS*+9OQ+)#3?ujV4(8r$Bk-I^FNUH| z0h;d-vMqX8J6bDK4J>7(0famPm?v0o>)~z3yaLUUVvz%>wNx!BGkhlR}A z-J(pPj`5-A5Kz}Z)as%<0g|f#y;vc08G;4XbxlSUurVGE{alpmPaf8UB;$U=a)!g9 z)z!d~nG+!Dc2y({-@9XOZtL(J0b!GSV&EZiSj4Q277orc5ojL+p~aPN7P|FlAya7} zb@*iqa@LD45LwTWkP~W7WOhQ)KCgptpY~=^hEvAp0M>f=8O7w-LYoT2$;>w(desY< zSXkB{)h;-|l13*8m#cI{0IJHRyByY@Ed$H!2WY#OAIr4f8i;K>Mx4t00?# zM7v_k=?P;gDV)c2Fl94Sb&eyUXDWaV0u=S~V~M;!5DD$2_>i$d*>%ZlnRuOJ+E)e6 z7%d3OeSrLp)#xmTw=ORM8#0bTytpaj$mQlR?-(y+WioRKM2p?ANrJvSFSN%Ye}T-0mO!cV?l*v2m>iqO%=wC2I}Ok) zjSnPw66qDeMJRR2BfJLbub!c-^}?KJ z&{zp2_PAA?0j;SQS&YM>l#Qh!$Gm{r{ZjnsB*I(>TF8esvG50Azr@Y!$lbqDFWV~Z zMh6eh^DF-d2n&k)mT7Joi1i%(&%nHZH~XFW&{GKdj|1X7s7WZKN46UO0Bg<+J5`m3 Q{r~^~07*qoM6N<$fPx$yGcYrR9HvtmoZBNF%-xDuiQ|mi<^U^1vdwASLmQ5Z5YmF){MvFjZ`Z2`c-ELT&vYqT-UuIqUDf4f4B?aSO`({cMiZxsRaP{ z0L*jZjhPEl$`eo64?Y4=VCFZi^;Ra6xeH6LR4Q|cMB)@c4nVinYR%{K`L5CRgRcRk zn7J&a+z$)&;vL6XWagLt`k)PkN+~uPTI-E;I(-v?qg038 zQ-kJpog<>N|Jqs1{3NAJdin!HU$57#PN#DPU~|%NldXPra{CQzI{NSf z06PFo;bw&#M7vj=7+6sV@!;2*t@=3REdLZfwHbc^+4#mZplv6%00000NkvXXu0mjf D;PmHP literal 0 HcmV?d00001 diff --git a/static/index/photos.png b/static/index/photos.png new file mode 100644 index 0000000000000000000000000000000000000000..aca5bcd74201130df62d9a4d8280e55c7dd55f4e GIT binary patch literal 609 zcmV-n0-pVeP)Px%8%ab#R7gw3mcfh7Q545N-?ES_tYkqE3reB<0qiVBS&$KBwiXt4%EG*|XJIi# zp_CK(>z6sdc0$5{0rLJT6UR4|f0rvo&bm-iA6Ifg=f!Dx$;0v%FI9PwZ73xDEn(A)p zn}MV#ykyzl3&c&C?!%&$z)#?eq$e4;?HS+}upx^b-GZzMW9P>u4e!3~1Es?+15-d; z&mTqpN2TC3Ngr!Wkhn7`0yiaHtiY#%`z!1&RGOCbw8n;OhBB+c9254>3`fftgF)*U^rvS*lck}lMo4@I#(T?v^2HzZxEV84KkS@rT3d@66j zuA1{8yA>IMSxE!i+kkHk#fKp!XZXh0jz)}zTybRt)?I;h?}4@4f^f!n*|B9u5c%Ui zaJJgvs4ykzd2OtCc&-4)suM=xaKd;aVi<|$J70-r0t^R|%!&gf zikuvg=t8yKrP4pCtpr9&+^(Mg^=~BGyUTwuGoDMgJr>Z1z&P&9v3Ve-*vGzRmoa=SV;p&aWymoyD{39diSiK^VmzcZG;{7>F7PM3eT~ZF)Vj4{ap|Y$)g80NxCCqmmBb2z7 z%7&(YXcQc+fYwLBk?d)ddo)UmIorLYoT`^Ga&@{bq3jDn02}Z>=b;OFjO{L;leCGc z;VGdcB^yLU>nDkiA)XoRaD_k0P5N&)8j`!USZk}_sahR*|MlL`!N?GdlM@u~2Xt`{ z*NY`_8-p$+edYq1(c8j8IBPxK613<^Kc~G(i#M7<5^oafCG``VBq4D9isSqMepu_4 z)0%lY0b3o^7U)s6_woJ9xI!tyS;Pq<;!)M{?1)mx!b-Arh@CUZWNo%abvD=`r^mKI ziCAS8p;KIh2&KsfynyOw&|pK+0L{E>b#f~98vJ6ht>wmxX&K3}gX~QfmV3$8AV_oj zQdlIrh@Mv=d z{`X3*WvxA~=nOJ0%b4bz=Yp5rIZLg;<)3EQC}9z6_oMG{TvnPY_I66?s+g@NnZ#WV zjriMpC;Luf#==~d!EHY;m)9ay?*7nKA+z)S3MQY;y6Ey{>Ztr-a9S;P)DiZH4Jj;Z z$t__AbuY%d%*&wv{;ehdN-z}xh@pI0##ZBRU$*q>V~h@)CFL0+a=2q zq;0e@R=#MnhlgBjL~;62i*4)wb;6-$Pz*r{T)xSL&ZmRg7sFB<+nys|r6uGgO922s zWqHtz)P2@tVmvS;r%EsXw-3v}f~1#ZX)2kP?&>E%OYYs;G?)nT3hqGd1>V12 z2Dit00KD@IB(KZiIs7`?8x>x50H`-f_XtT#8S-&-1D@_J#S&coO7G{O4Z>%^N8Hq_ z2lH-{HeET158**3GMNd^$&!&%_}y4pw#{5(Tr-y$f`D{rT)g>oRh`A?ERL6OX|f=rNal38pacbQU6hp^Yk zDga3Nq|>G8y=VvmfXQty=*~#ODtBko}Fqm!;liHv3pf4BiRc788 zpy`&1=bT7@Pq>%O1Y-A@&LIyC)^O*Xco2)Hg-uS{{}Mm#g;&h1sR~~8C}9n@$g#QK zk2;&4OH{Nc1Vm5E1t8PY&#)uc#u=3pb8q|4iQ=)o%$`12i=%_LQfw4AVVdQ7#$S;% z&d=e#Ii#a~DzwsZQrl4XeEWzP)&>22xlLcx*kiCuTm@qmrlbyCex5p|xV=G&M1@Qa zM0R@>#P}1-v0`CTfQ|gy5VJhJX>u2y0d!G48X zdqsm{3FFtUitSGegzUYuV;$& z!_&13qiw3B(m>o6 zc)Hq6Cx>_v-_0f}ZBHu%eSkVXhX6X>ET`RM`30aOvm0%VFMh6gr8KiIrrfx1yO=8y z0`#e_b;N!x=gH`WbF`zksSUm|9^AqH>l)vJ^+~fbqGRv)W#t(Q38@ZOK2Z8_007hB zva1%-jl$V)YvM3*yTt!z;!>ku zO5{Gv&o_MZE^&!vF_vZ<9`1a{GAy;IJ#hbNgSILX<7j}Y6YvB@C)oF=l*cV{hV*ER|O@QuNUb9g6S;6tcC{YDYOe&nesTnT!IN*Hp%ku zVLGho)Qg6GK9c8`WBs>%W(pOIj$p*sVf8fhRYFrPACp62Z2vufP)&J#{D4c6iUsOU zblPuMEKR)N+)$YRD6emh=WOaOjZnrb{h9o;4ADbxc4a-c36 z4$8=$jHl1I)kENRJVuhr6T8K(ze}i zESXq$!jy_+bd4~xy%}v*5e{iuYLTd>QnW=0XTSH{%!j*L-&mSYuAhS5 z@ST0?Y-ve-eVS&u0MQaT#_c{$Di{E(L#^zk7BYvdcKcVD*b( zJfdA!NjcU~ou@2Dli?GXxxT-=SEdC-994{$)Ie)N9IG%2H{B_1BVj1ou~bsin5&Vt z#rA(4vf2K?;uf5q_-r;uvitU{wRQ7!yPcgUOEV1CZVP=;)X5Y8Y&1pok7MM6+kP&iB!1pojqPrwrprw6yTZPm(J=i~0A8j(^VZEEc9 z^3Fz@kRwTwB3qvI7^J5$-~U9+sPX%MrVDl?Nsg85dG8^9!3O-me|NOnX@_mwNODSa z_TD-`G@(Q6W8JGGZw~0pm-F*qduK0QTz}a*($)PB_B8$Ui*4O`wn-0uO}_tms(&k6 zPqnxEbienHW1ik}%x&uZ^U)~Bhhs9g)%x-IvqtXJ+8TbZ`?99!D@V+gHL|`^lkWPm zN_|iHj4$bX%HQNOMl5QW%B+~FRJf*Ur5cRFh*}LPr@^9__gK)#rB=?xf_knpV?nAO zWerphMhj}A=TfO$7$WlympY{qtwu&G4OJtuvTI;c6%C`S1w~e}R-#8$Wyqlzj#37s zOh$L`z+uW*2ukvRbYU`;?vzmq5Jee9i2m3Dy0Cc-FPML~o_ltw}Uq(DMR-54S0jwp>$I*23`NJEkhiYSc{ z5)BbelqEX*7if?`lo1UQ5e>R<0tr0?B-plXNYX9aZQHhO+qP}nwr$(CZQJfUfm#_6 z8Sh05Afo>c97&3s6|(|tMeQRT;~xM300000000000D#n``_9~a`pLI{|Gqsrxp_vP zQmFs{0000000000h>t~l3Guu|)SESt{{tslasq8OEr^?lI_C}m*q;ut1VmpJ* zP9f=s_d=|Vf!u0`8;&1-4qi%XaCU*g}FNbXc9jP zDt0R%762AfGbtbr1D?4nb|M?y)%Y7*hssIeM~CVr4aQbW-Ij*$b6Z;S#BFKoU$>>x zR0-Ae+;#E$pWC|s{nB8wSo_w~VEp-1gKe-mhG;N8KBB>PFVeIKzpue~XoJd$3k|Eb zpv5YPYbWWfEBDmQk+aS|9l~)vNs=TuBLF+?M`% z^BeIBNr!~XAr>2-y3z~&Sk(hplO3}jr>l206^zlet2DJNz0A3_SpHtss$D6o zW-Nzvexp%)+C{^jw{n6yieK4F?R8vlYwN4<0>J{~{nUcKHa{JRP3AHq4%qn)acXSI eU?;zAq%78H^oqUrzy16B_0jQ-Q+pLpDg^~8ABijg literal 0 HcmV?d00001 diff --git a/static/tabBar/组 20264.png b/static/tabBar/home.png similarity index 100% rename from static/tabBar/组 20264.png rename to static/tabBar/home.png diff --git a/static/tabBar/组 20261.png b/static/tabBar/map.png similarity index 100% rename from static/tabBar/组 20261.png rename to static/tabBar/map.png diff --git a/static/tabBar/组 20263.png b/static/tabBar/my.png similarity index 100% rename from static/tabBar/组 20263.png rename to static/tabBar/my.png diff --git a/static/tabBar/组 20262.png b/static/tabBar/warning.png similarity index 100% rename from static/tabBar/组 20262.png rename to static/tabBar/warning.png diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js index f264b7b..92d3c9d 100644 --- a/unpackage/dist/dev/mp-weixin/app.js +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -4,6 +4,7 @@ const common_vendor = require("./common/vendor.js"); const uni_modules_uviewPlus_index = require("./uni_modules/uview-plus/index.js"); if (!Math) { "./pages/index/index.js"; + "./pages/map/map.js"; "./pages/plandetail/plandetail.js"; "./pages/Inspectionresult/Inspectionresult.js"; "./pages/membermanagemen/membermanagemen.js"; @@ -18,6 +19,7 @@ if (!Math) { "./pages/hiddendanger/view.js"; "./pages/hiddendanger/rectification.js"; "./pages/hiddendanger/acceptance.js"; + "./pages/hiddendanger/assignment.js"; "./pages/closeout/application.js"; "./pages/closeout/editor.js"; "./pages/equipmentregistration/equipmentregistration.js"; @@ -29,6 +31,12 @@ if (!Math) { "./pages/personalcenter/settings.js"; "./pages/personalcenter/account.js"; "./pages/personalcenter/edit.js"; + "./pages/login/login.js"; + "./pages/login/reg.js"; + "./pages/login/enterprise.js"; + "./pages/login/success.js"; + "./pages/login/forget.js"; + "./pages/login/agreement.js"; } const _sfc_main = { onLaunch: function() { diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json index f8a4939..a5e0473 100644 --- a/unpackage/dist/dev/mp-weixin/app.json +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -1,6 +1,7 @@ { "pages": [ "pages/index/index", + "pages/map/map", "pages/plandetail/plandetail", "pages/Inspectionresult/Inspectionresult", "pages/membermanagemen/membermanagemen", @@ -15,6 +16,7 @@ "pages/hiddendanger/view", "pages/hiddendanger/rectification", "pages/hiddendanger/acceptance", + "pages/hiddendanger/assignment", "pages/closeout/application", "pages/closeout/editor", "pages/equipmentregistration/equipmentregistration", @@ -25,7 +27,13 @@ "pages/personalcenter/notification", "pages/personalcenter/settings", "pages/personalcenter/account", - "pages/personalcenter/edit" + "pages/personalcenter/edit", + "pages/login/login", + "pages/login/reg", + "pages/login/enterprise", + "pages/login/success", + "pages/login/forget", + "pages/login/agreement" ], "window": { "navigationBarTextStyle": "white", @@ -33,5 +41,46 @@ "navigationBarBackgroundColor": "#007aff", "backgroundColor": "#F8F8F8" }, + "tabBar": { + "color": "#999999", + "selectedColor": "#007aff", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页", + "iconPath": "static/tabBar/home.png", + "selectedIconPath": "static/tabBar/home.png" + }, + { + "pagePath": "pages/map/map", + "text": "一张图", + "iconPath": "static/tabBar/map.png", + "selectedIconPath": "static/tabBar/map.png" + }, + { + "pagePath": "pages/Inspectionwarning/Inspectionwarning", + "text": "预警", + "iconPath": "static/tabBar/warning.png", + "selectedIconPath": "static/tabBar/warning.png" + }, + { + "pagePath": "pages/personalcenter/my", + "text": "我的", + "iconPath": "static/tabBar/my.png", + "selectedIconPath": "static/tabBar/my.png" + } + ] + }, + "permission": { + "scope.userLocation": { + "desc": "你的位置信息将用于选择隐患位置" + } + }, + "requiredPrivateInfos": [ + "chooseLocation", + "getLocation" + ], "usingComponents": {} } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js index c1f7059..5ef40ef 100644 --- a/unpackage/dist/dev/mp-weixin/common/assets.js +++ b/unpackage/dist/dev/mp-weixin/common/assets.js @@ -1,27 +1,29 @@ "use strict"; -const _imports_0$2 = "/static/蒙版组 273.png"; -const _imports_1$2 = "/static/tabbar/组 20264.png"; -const _imports_2$1 = "/static/tabbar/组 20261.png"; -const _imports_3$1 = "/static/tabbar/组 20262.png"; -const _imports_4$1 = "/static/tabbar/组 20263.png"; -const _imports_0$1 = "/static/my/Helpcenter.png"; -const _imports_1$1 = "/static/my/CustomerService.png"; +const _imports_0$5 = "/static/蒙版组 273.png"; +const _imports_0$4 = "/static/my/Helpcenter.png"; +const _imports_1$2 = "/static/my/CustomerService.png"; const _imports_2 = "/static/my/Account.png"; -const _imports_3 = "/static/my/Notification.png"; +const _imports_3$1 = "/static/my/Notification.png"; const _imports_4 = "/static/my/Delete.png"; const _imports_5 = "/static/my/Settings.png"; -const _imports_0 = "/static/my/Customer service.png"; -const _imports_1 = "/static/my/Phone.png"; -exports._imports_0 = _imports_0$2; -exports._imports_0$1 = _imports_0$1; -exports._imports_0$2 = _imports_0; +const _imports_0$3 = "/static/my/Customer service.png"; +const _imports_1$1 = "/static/my/Phone.png"; +const _imports_0$2 = "/static/index/index_bg.png"; +const _imports_0$1 = "/static/index/phone.png"; +const _imports_1 = "/static/index/lock.png"; +const _imports_3 = "/static/index/photos.png"; +const _imports_0 = "/static/index/蒙版组 260.png"; +exports._imports_0 = _imports_0$5; +exports._imports_0$1 = _imports_0$4; +exports._imports_0$2 = _imports_0$3; +exports._imports_0$3 = _imports_0$2; +exports._imports_0$4 = _imports_0$1; +exports._imports_0$5 = _imports_0; exports._imports_1 = _imports_1$2; exports._imports_1$1 = _imports_1$1; exports._imports_1$2 = _imports_1; -exports._imports_2 = _imports_2$1; -exports._imports_2$1 = _imports_2; +exports._imports_2 = _imports_2; exports._imports_3 = _imports_3$1; exports._imports_3$1 = _imports_3; -exports._imports_4 = _imports_4$1; -exports._imports_4$1 = _imports_4; +exports._imports_4 = _imports_4; exports._imports_5 = _imports_5; diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js index ddec472..e2beea0 100644 --- a/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -7775,6 +7775,7 @@ const createSubpackageApp = initCreateSubpackageApp(); const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => { !isInSSRComponentSetup && injectHook(lifecycle, hook, target); }; +const onShow = /* @__PURE__ */ createHook(ON_SHOW); const onLoad = /* @__PURE__ */ createHook(ON_LOAD); /*! * vue-router v4.3.0 @@ -7812,6 +7813,9 @@ exports.n = n; exports.nextTick$1 = nextTick$1; exports.o = o; exports.onLoad = onLoad; +exports.onMounted = onMounted; +exports.onShow = onShow; +exports.onUnmounted = onUnmounted; exports.p = p; exports.r = r; exports.reactive = reactive; @@ -7821,4 +7825,5 @@ exports.s = s; exports.sr = sr; exports.t = t; exports.useRouter = useRouter; +exports.watch = watch; exports.wx$1 = wx$1; diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/application.js b/unpackage/dist/dev/mp-weixin/pages/closeout/application.js index ef28a61..b5ea90f 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/application.js +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/application.js @@ -1,76 +1,204 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); +const request_api = require("../../request/api.js"); if (!Array) { - const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_picker2 = common_vendor.resolveComponent("up-picker"); const _easycom_up_datetime_picker2 = common_vendor.resolveComponent("up-datetime-picker"); + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); - (_easycom_up_input2 + _easycom_up_datetime_picker2 + _easycom_up_textarea2 + _easycom_u_popup2)(); + (_easycom_up_picker2 + _easycom_up_datetime_picker2 + _easycom_up_input2 + _easycom_up_textarea2 + _easycom_u_popup2)(); } -const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_picker = () => "../../uni_modules/uview-plus/components/u-picker/u-picker.js"; const _easycom_up_datetime_picker = () => "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js"; +const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; const _easycom_up_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"; const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js"; if (!Math) { - (_easycom_up_input + _easycom_up_datetime_picker + _easycom_up_textarea + _easycom_u_popup)(); + (_easycom_up_picker + _easycom_up_datetime_picker + _easycom_up_input + _easycom_up_textarea + _easycom_u_popup)(); } const _sfc_main = { __name: "application", setup(__props) { const showAddPopup = common_vendor.ref(false); - const handleAdd = () => { - showAddPopup.value = false; - common_vendor.index.showToast({ - title: "新增成功", - icon: "success" - }); + const showHazardPicker = common_vendor.ref(false); + const showDatePicker = common_vendor.ref(false); + const selectedHazard = common_vendor.ref(""); + const selectedHazardId = common_vendor.ref(""); + const hazardColumns = common_vendor.ref([["暂无数据"]]); + const hazardList = common_vendor.ref([]); + const dateValue = common_vendor.ref(Date.now()); + const formData = common_vendor.reactive({ + rectifyDeadline: "", + // 整改时限 + responsibleDeptName: "", + // 隐患治理责任单位 + responsiblePerson: "", + // 主要负责人 + mainTreatmentContent: "", + // 主要治理内容 + treatmentResult: "", + // 隐患治理完成内容 + selfVerifyContent: "" + // 责任单位自行验收情况 + }); + const fetchHazardList = async () => { + try { + const res = await request_api.getMyWriteOffList(); + if (res.code === 0 && res.data) { + const list = res.data; + hazardList.value = list; + if (list.length > 0) { + hazardColumns.value = [list.map((item) => item.hazardTitle || `隐患${item.hazardId}`)]; + } + console.log("隐患列表:", list); + } + } catch (error) { + console.error("获取隐患列表失败:", error); + } + }; + const onHazardConfirm = (e) => { + console.log("选择的隐患:", e); + if (e.value && e.value.length > 0) { + selectedHazard.value = e.value[0]; + const index = e.indexs[0]; + if (hazardList.value[index]) { + selectedHazardId.value = hazardList.value[index].hazardId; + } + } + showHazardPicker.value = false; + }; + const onDateConfirm = (e) => { + console.log("选择的日期时间:", e); + const date = new Date(e.value); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + const hours = String(date.getHours()).padStart(2, "0"); + const minutes = String(date.getMinutes()).padStart(2, "0"); + const seconds = String(date.getSeconds()).padStart(2, "0"); + formData.rectifyDeadline = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + showDatePicker.value = false; + }; + const resetForm = () => { + selectedHazard.value = ""; + selectedHazardId.value = ""; + formData.rectifyDeadline = ""; + formData.responsibleDeptName = ""; + formData.responsiblePerson = ""; + formData.mainTreatmentContent = ""; + formData.treatmentResult = ""; + formData.selfVerifyContent = ""; + }; + const handleAdd = async () => { + if (!selectedHazardId.value) { + common_vendor.index.showToast({ title: "请选择隐患", icon: "none" }); + return; + } + const params = { + hazardId: Number(selectedHazardId.value), + // 隐患ID(必需) + rectifyDeadline: formData.rectifyDeadline || "", + // 整改时限 + responsiblePerson: formData.responsiblePerson || "", + // 主要负责人 + mainTreatmentContent: formData.mainTreatmentContent || "", + // 主要治理内容 + treatmentResult: formData.treatmentResult || "", + // 隐患治理完成内容 + selfVerifyContent: formData.selfVerifyContent || "" + // 责任单位自行验收情况 + }; + console.log("提交数据:", params); + try { + const res = await request_api.applyDelete(params); + if (res.code === 0) { + common_vendor.index.showToast({ title: "申请成功", icon: "success" }); + showAddPopup.value = false; + resetForm(); + } else { + common_vendor.index.showToast({ title: res.msg || "申请失败", icon: "none" }); + } + } catch (error) { + console.error("申请失败:", error); + common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + } }; - const value1 = common_vendor.ref(Date.now()); const editor = () => { common_vendor.index.navigateTo({ url: "/pages/closeout/editor" }); }; + common_vendor.onMounted(() => { + fetchHazardList(); + }); return (_ctx, _cache) => { return { - a: common_vendor.o(($event) => editor()), + a: common_vendor.f(hazardList.value, (item, index, i0) => { + return { + a: common_vendor.t(item.hazardTitle), + b: common_vendor.t(item.statusName), + c: common_vendor.t(item.hazardCreatedAt), + d: common_vendor.t(item.responsibleDeptName), + e: common_vendor.t(item.responsiblePerson), + f: common_vendor.t(item.createdAt), + g: common_vendor.o(($event) => editor(), index), + h: index + }; + }), b: common_vendor.o(($event) => showAddPopup.value = true), c: common_vendor.o(($event) => showAddPopup.value = false), - d: common_vendor.p({ - placeholder: "请选择隐患" - }), - e: common_vendor.o(($event) => value1.value = $event), - f: common_vendor.p({ - hasInput: true, - show: _ctx.show, - mode: "date", - modelValue: value1.value - }), - g: common_vendor.p({ - placeholder: "请输入隐患治理责任单位" - }), - h: common_vendor.p({ - placeholder: "请输入主要负责人" - }), - i: common_vendor.o(($event) => _ctx.value = $event), + d: common_vendor.t(selectedHazard.value || "请选择隐患"), + e: common_vendor.n(selectedHazard.value ? "" : "text-gray"), + f: common_vendor.o(($event) => showHazardPicker.value = true), + g: common_vendor.o(onHazardConfirm), + h: common_vendor.o(($event) => showHazardPicker.value = false), + i: common_vendor.o(($event) => showHazardPicker.value = false), j: common_vendor.p({ - placeholder: "请输入主要治理内容", - modelValue: _ctx.value + show: showHazardPicker.value, + columns: hazardColumns.value }), - k: common_vendor.o(($event) => _ctx.value = $event), - l: common_vendor.p({ - placeholder: "请输入隐患治理完成情况", - modelValue: _ctx.value - }), - m: common_vendor.o(($event) => _ctx.value = $event), - n: common_vendor.p({ - placeholder: "请输入隐患治理责任单位自行验收的情况", - modelValue: _ctx.value - }), - o: common_vendor.o(($event) => showAddPopup.value = false), - p: common_vendor.o(handleAdd), - q: common_vendor.o(($event) => showAddPopup.value = false), + k: common_vendor.t(formData.rectifyDeadline || "请选择整改时限"), + l: common_vendor.n(formData.rectifyDeadline ? "" : "text-gray"), + m: common_vendor.o(($event) => showDatePicker.value = true), + n: common_vendor.o(onDateConfirm), + o: common_vendor.o(($event) => showDatePicker.value = false), + p: common_vendor.o(($event) => showDatePicker.value = false), + q: common_vendor.o(($event) => dateValue.value = $event), r: common_vendor.p({ + show: showDatePicker.value, + mode: "datetime", + modelValue: dateValue.value + }), + s: common_vendor.o(($event) => formData.responsibleDeptName = $event), + t: common_vendor.p({ + placeholder: "请输入隐患治理责任单位", + modelValue: formData.responsibleDeptName + }), + v: common_vendor.o(($event) => formData.responsiblePerson = $event), + w: common_vendor.p({ + placeholder: "请输入主要负责人", + modelValue: formData.responsiblePerson + }), + x: common_vendor.o(($event) => formData.mainTreatmentContent = $event), + y: common_vendor.p({ + placeholder: "请输入主要治理内容", + modelValue: formData.mainTreatmentContent + }), + z: common_vendor.o(($event) => formData.treatmentResult = $event), + A: common_vendor.p({ + placeholder: "请输入隐患治理完成情况", + modelValue: formData.treatmentResult + }), + B: common_vendor.o(($event) => formData.selfVerifyContent = $event), + C: common_vendor.p({ + placeholder: "请输入隐患治理责任单位自行验收的情况", + modelValue: formData.selfVerifyContent + }), + D: common_vendor.o(($event) => showAddPopup.value = false), + E: common_vendor.o(handleAdd), + F: common_vendor.o(($event) => showAddPopup.value = false), + G: common_vendor.p({ show: showAddPopup.value, mode: "center", round: "20" diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/application.json b/unpackage/dist/dev/mp-weixin/pages/closeout/application.json index 37e1577..91b4492 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/application.json +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/application.json @@ -1,8 +1,9 @@ { "navigationBarTitleText": "销号申请", "usingComponents": { - "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", + "up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker", "up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker", + "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", "up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea", "u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup" } diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxml b/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxml index d319964..655f726 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxml @@ -1 +1 @@ -发现火苗已审核隐患日期:2025-11-11责任单位:吉首网络有限公司判定人员:张起创建时间:2025-11-14 06:33:49新增销号申请×隐患*整改时限*隐患治理责任单位主要负责人主要治理内容隐患治理完成内容隐患治理责任单位自行验收的情况 \ No newline at end of file +{{item.a}}{{item.b}}隐患日期:{{item.c}}责任单位:{{item.d}}判定人员:{{item.e}}创建时间:{{item.f}}新增销号申请×隐患*{{d}}整改时限{{k}}隐患治理责任单位主要负责人主要治理内容隐患治理完成内容隐患治理责任单位自行验收的情况 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxss b/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxss index 3f8bd14..c7dcc43 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/application.wxss @@ -75,4 +75,14 @@ } .popup-footer .btn-confirm.data-v-4b6250eb { color: #fff; +} +.picker-input.data-v-4b6250eb { + background: #fff; + border-radius: 8rpx; + padding: 24rpx 20rpx; + margin-bottom: 20rpx; + border: 1rpx solid #eee; +} +.picker-input text.data-v-4b6250eb { + font-size: 28rpx; } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.js b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.js index 08332cd..7885122 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.js +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.js @@ -1,46 +1,145 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); -const _sfc_main = {}; +const request_api = require("../../request/api.js"); if (!Array) { const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); - const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); - (_easycom_up_input2 + _easycom_up_textarea2)(); + _easycom_up_input2(); } const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; -const _easycom_up_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"; if (!Math) { - (_easycom_up_input + _easycom_up_textarea)(); + _easycom_up_input(); } -function _sfc_render(_ctx, _cache) { - return { - a: common_vendor.p({ - placeholder: "请输入内容" - }), - b: common_vendor.p({ - placeholder: "请输入内容" - }), - c: common_vendor.p({ - placeholder: "请输入内容" - }), - d: common_vendor.p({ - placeholder: "请输入内容" - }), - e: common_vendor.o(($event) => _ctx.value1 = $event), - f: common_vendor.p({ - placeholder: "请输入内容", - modelValue: _ctx.value1 - }), - g: common_vendor.o(($event) => _ctx.value1 = $event), - h: common_vendor.p({ - placeholder: "请输入内容", - modelValue: _ctx.value1 - }), - i: common_vendor.o(($event) => _ctx.value1 = $event), - j: common_vendor.p({ - placeholder: "请输入内容", - modelValue: _ctx.value1 - }) - }; -} -const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +const _sfc_main = { + __name: "editor", + setup(__props) { + const getPageOptions = () => { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + return (currentPage == null ? void 0 : currentPage.options) || {}; + }; + const pageId = common_vendor.ref(""); + const canEdit = common_vendor.ref(false); + const formData = common_vendor.reactive({ + id: "", + hazardId: "", + hazardTitle: "", + // 隐患标题 + hazardCreatedAt: "", + // 隐患日期 + responsibleDeptName: "", + // 隐患治理责任单位 + responsiblePerson: "", + // 主要负责人 + createdAt: "", + // 创建时间 + statusName: "" + // 状态 + }); + const fetchDetail = async (id) => { + console.log("=== fetchDetail 被调用 ===, id:", id); + try { + const res = await request_api.getMyWriteOffList(); + console.log("接口返回:", res); + if (res.code === 0 && res.data && res.data.length > 0) { + const list = res.data; + let data = null; + if (id) { + data = list.find((item) => item.id == id); + } + if (!data) { + data = list[0]; + } + console.log("绑定数据:", data); + formData.id = data.id; + formData.hazardId = data.hazardId; + formData.hazardTitle = data.hazardTitle || ""; + formData.hazardCreatedAt = data.hazardCreatedAt || ""; + formData.responsibleDeptName = data.responsibleDeptName || ""; + formData.responsiblePerson = data.responsiblePerson || ""; + formData.createdAt = data.createdAt || ""; + formData.statusName = data.statusName || ""; + if (data.status == 1 || data.statusName === "待审核") { + canEdit.value = true; + console.log("状态为待审核,可以编辑"); + } else { + canEdit.value = false; + console.log("状态为已审核,不可编辑"); + } + } + } catch (error) { + console.error("获取详情失败:", error); + } + }; + const handleCancel = () => { + common_vendor.index.navigateBack(); + }; + const handleSubmit = async () => { + console.log("保存数据:", formData); + common_vendor.index.showToast({ title: "保存成功", icon: "success" }); + setTimeout(() => { + common_vendor.index.navigateBack(); + }, 1500); + }; + common_vendor.onLoad((options) => { + console.log("=== onLoad 触发 ==="); + console.log("options:", options); + pageId.value = (options == null ? void 0 : options.id) || ""; + fetchDetail(pageId.value); + }); + common_vendor.onMounted(() => { + console.log("=== onMounted 触发 ==="); + if (!pageId.value) { + const options = getPageOptions(); + console.log("备用获取参数:", options); + pageId.value = (options == null ? void 0 : options.id) || ""; + fetchDetail(pageId.value); + } + }); + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.o(($event) => formData.hazardTitle = $event), + b: common_vendor.p({ + placeholder: "", + disabled: true, + modelValue: formData.hazardTitle + }), + c: common_vendor.o(($event) => formData.hazardCreatedAt = $event), + d: common_vendor.p({ + placeholder: "", + disabled: true, + modelValue: formData.hazardCreatedAt + }), + e: common_vendor.o(($event) => formData.responsibleDeptName = $event), + f: common_vendor.p({ + placeholder: "请输入", + disabled: !canEdit.value, + modelValue: formData.responsibleDeptName + }), + g: common_vendor.o(($event) => formData.responsiblePerson = $event), + h: common_vendor.p({ + placeholder: "请输入", + disabled: !canEdit.value, + modelValue: formData.responsiblePerson + }), + i: common_vendor.o(($event) => formData.createdAt = $event), + j: common_vendor.p({ + placeholder: "", + disabled: true, + modelValue: formData.createdAt + }), + k: common_vendor.o(($event) => formData.statusName = $event), + l: common_vendor.p({ + placeholder: "", + disabled: true, + modelValue: formData.statusName + }), + m: common_vendor.o(handleCancel), + n: canEdit.value + }, canEdit.value ? { + o: common_vendor.o(handleSubmit) + } : {}); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-bbd4165b"]]); wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.json b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.json index 03c2202..90c3841 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.json +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.json @@ -1,7 +1,6 @@ { "navigationBarTitleText": "编辑销号申请", "usingComponents": { - "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", - "up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea" + "up-input": "../../uni_modules/uview-plus/components/u-input/u-input" } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxml b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxml index c3a2e49..8a2b7e8 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxml @@ -1 +1 @@ -隐患*整改时限*隐患治理责任单位主要负责人主要治理内容隐患治理完成情况隐患治理责任单位自行验收的情况 \ No newline at end of file +隐患隐患日期隐患治理责任单位主要负责人创建时间状态 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxss b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxss index 755dbf6..9fe7be5 100644 --- a/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/closeout/editor.wxss @@ -1,6 +1,30 @@ - -.page { - min-height: 100vh; - background: #EBF2FC; -} - +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.page.data-v-bbd4165b { + min-height: 100vh; + background: #EBF2FC; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.js b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.js index b1bdfce..00c0c1d 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.js +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.js @@ -6,17 +6,17 @@ if (!Array) { const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload"); const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); const _easycom_up_choose2 = common_vendor.resolveComponent("up-choose"); - const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); - (_easycom_up_upload2 + _easycom_up_input2 + _easycom_up_choose2 + _easycom_u_popup2 + _easycom_up_textarea2)(); + const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); + (_easycom_up_upload2 + _easycom_up_input2 + _easycom_up_choose2 + _easycom_up_textarea2 + _easycom_u_popup2)(); } const _easycom_up_upload = () => "../../uni_modules/uview-plus/components/u-upload/u-upload.js"; const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; const _easycom_up_choose = () => "../../uni_modules/uview-plus/components/u-choose/u-choose.js"; -const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js"; const _easycom_up_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"; +const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js"; if (!Math) { - (_easycom_up_upload + _easycom_up_input + _easycom_up_choose + _easycom_u_popup + _easycom_up_textarea)(); + (_easycom_up_upload + _easycom_up_input + _easycom_up_choose + _easycom_up_textarea + _easycom_u_popup)(); } const _sfc_main = { __name: "Inspection", @@ -51,39 +51,53 @@ const _sfc_main = { // 隐患等级索引 description: "", // 隐患描述 - tagIndex: 0 + tagIndex: 0, // 隐患标签索引 + source: "" + // 隐患来源 }); const lng = common_vendor.ref(0); const lat = common_vendor.ref(0); - const showAddressPopup = common_vendor.ref(false); - const addressKeyword = common_vendor.ref(""); const selectedAddress = common_vendor.ref(""); - const tempSelectedAddress = common_vendor.ref(""); - const addressList = common_vendor.ref([ - "湖南省湘西土家族苗族自治州吉首市人民北路105号", - "湖南省湘西土家族苗族自治州吉首市人民南路100号", - "湖南省湘西土家族苗族自治州吉首市团结广场", - "湖南省湘西土家族苗族自治州吉首市火车站" - ]); - const filteredAddressList = common_vendor.computed(() => { - if (!addressKeyword.value) - return addressList.value; - return addressList.value.filter((item) => item.includes(addressKeyword.value)); - }); - const confirmAddress = () => { - if (tempSelectedAddress.value) { - selectedAddress.value = tempSelectedAddress.value; - } - showAddressPopup.value = false; + const chooseLocation = () => { + console.log("chooseLocation called"); + showAddPopup.value = false; + setTimeout(() => { + common_vendor.index.chooseLocation({ + success: (res) => { + console.log("选择位置成功:", res); + selectedAddress.value = res.address + (res.name ? `(${res.name})` : ""); + lng.value = res.longitude; + lat.value = res.latitude; + showAddPopup.value = true; + }, + fail: (err) => { + console.error("选择位置失败:", err); + showAddPopup.value = true; + if (err.errMsg && err.errMsg.indexOf("cancel") === -1) { + common_vendor.index.showToast({ + title: "选择位置失败", + icon: "none" + }); + } + } + }); + }, 300); }; const handleAdd = async () => { + var _a; if (!formData.title) { - common_vendor.index.showToast({ title: "请输入隐患标题", icon: "none" }); + common_vendor.index.showToast({ + title: "请输入隐患标题", + icon: "none" + }); return; } if (fileList1.value.length === 0) { - common_vendor.index.showToast({ title: "请上传隐患图片/视频", icon: "none" }); + common_vendor.index.showToast({ + title: "请上传隐患图片/视频", + icon: "none" + }); return; } fileList1.value.map((file) => { @@ -103,6 +117,7 @@ const _sfc_main = { }); const selectedTag = tagOptions.value[formData.tagIndex]; const tagId = selectedTag ? selectedTag.id : null; + console.log("innnn", sourceOptions); const params = { title: formData.title, //标题 @@ -122,8 +137,8 @@ const _sfc_main = { //关联任务ID checkPointId: checkPointId.value, //关联检查点ID - source: "cillum labore veniam" - //隐患来源 + source: ((_a = sourceOptions.value[formData.source]) == null ? void 0 : _a.title) || "" + //隐患来源(随手拍、企业自查、行业互查、专家诊查) }; try { const res = await request_api.addHiddenDanger(params); @@ -139,12 +154,19 @@ const _sfc_main = { formData.tagIndex = 0; selectedAddress.value = ""; fileList1.value = []; + fetchHiddenDangerList(); } else { - common_vendor.index.showToast({ title: res.msg || "新增失败", icon: "none" }); + common_vendor.index.showToast({ + title: res.msg || "新增失败", + icon: "none" + }); } } catch (error) { console.error(error); - common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); } }; const hiddenDangerList = common_vendor.ref([]); @@ -152,16 +174,24 @@ const _sfc_main = { try { const res = await request_api.getMyHiddenDangerList(); if (res.code === 0) { - hiddenDangerList.value = res.data; + hiddenDangerList.value = res.data.records; } else { - common_vendor.index.showToast({ title: res.msg || "获取隐患列表失败", icon: "none" }); + common_vendor.index.showToast({ + title: res.msg || "获取隐患列表失败", + icon: "none" + }); } } catch (error) { console.error(error); - common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); } }; - fetchHiddenDangerList(); + common_vendor.onShow(() => { + fetchHiddenDangerList(); + }); const details = (item) => { common_vendor.index.navigateTo({ url: `/pages/hiddendanger/view?hazardId=${item.hazardId}&assignId=${item.assignId}` @@ -172,9 +202,14 @@ const _sfc_main = { url: `/pages/hiddendanger/rectification?hazardId=${item.hazardId}&assignId=${item.assignId}` }); }; - const acceptance = () => { + const acceptance = (item) => { common_vendor.index.navigateTo({ - url: "/pages/hiddendanger/acceptance" + url: `/pages/hiddendanger/acceptance?hazardId=${item.hazardId}&assignId=${item.assignId}&rectifyId=${item.rectifyId}` + }); + }; + const assignHazard = (item) => { + common_vendor.index.navigateTo({ + url: `/pages/hiddendanger/assignment?hazardId=${item.hazardId}&assignId=${item.assignId}` }); }; const fileList1 = common_vendor.ref([]); @@ -210,7 +245,7 @@ const _sfc_main = { filePath, name: "file", header: { - "Authorization": request_request.AUTH_TOKEN + "Authorization": request_request.getToken() }, success: (res) => { const data = JSON.parse(res.data); @@ -237,33 +272,88 @@ const _sfc_main = { title: item.name })); } else { - common_vendor.index.showToast({ title: res.msg || "获取标签列表失败", icon: "none" }); + common_vendor.index.showToast({ + title: res.msg || "获取标签列表失败", + icon: "none" + }); } } catch (error) { console.error(error); - common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); } }; fetchTagOptions(); const levelOptions = common_vendor.ref([ - { id: 1, title: "轻微隐患" }, - { id: 2, title: "一般隐患" }, - { id: 3, title: "重大隐患" } + { + id: 1, + title: "轻微隐患" + }, + { + id: 2, + title: "一般隐患" + }, + { + id: 3, + title: "重大隐患" + } ]); + const sourceOptions = common_vendor.ref([ + { + id: 1, + title: "随手拍" + }, + { + id: 2, + title: "企业自查" + }, + { + id: 3, + title: "行业互查" + }, + { + id: 4, + title: "专家诊查" + } + ]); + common_vendor.watch(() => formData.source, (newVal) => { + const selected = sourceOptions.value[newVal]; + console.log("隐患来源选择结果:", { + 索引: newVal, + 选中项: selected, + id: selected == null ? void 0 : selected.id, + title: selected == null ? void 0 : selected.title + }); + }); return (_ctx, _cache) => { return { a: common_vendor.f(hiddenDangerList.value, (item, k0, i0) => { - return { + return common_vendor.e({ a: common_vendor.t(item.title), b: common_vendor.t(item.statusName), c: common_vendor.t(item.levelName), - d: common_vendor.t(item.address), - e: common_vendor.t(item.createdAt), - f: common_vendor.o(($event) => details(item), item.hazardId), - g: common_vendor.o(($event) => Rectification(item), item.hazardId), - h: common_vendor.o(($event) => acceptance(), item.hazardId), - i: item.hazardId - }; + d: item.levelName === "轻微隐患" ? 1 : "", + e: item.levelName === "一般隐患" ? 1 : "", + f: item.levelName === "重大隐患" ? 1 : "", + g: common_vendor.t(item.address), + h: common_vendor.t(item.createdAt), + i: common_vendor.o(($event) => details(item), item.hazardId), + j: item.statusName === "待整改" || item.statusName === "待验收" + }, item.statusName === "待整改" || item.statusName === "待验收" ? { + k: common_vendor.o(($event) => Rectification(item), item.hazardId) + } : {}, { + l: item.statusName === "待验收" + }, item.statusName === "待验收" ? { + m: common_vendor.o(($event) => acceptance(item), item.hazardId) + } : {}, { + n: item.statusName === "待交办" + }, item.statusName === "待交办" ? { + o: common_vendor.o(($event) => assignHazard(item), item.hazardId) + } : {}, { + p: item.hazardId + }); }), b: common_vendor.o(($event) => showAddPopup.value = true), c: common_vendor.o(($event) => showAddPopup.value = false), @@ -289,43 +379,32 @@ const _sfc_main = { ["item-height"]: "72rpx", modelValue: formData.level }), - k: common_vendor.t(selectedAddress.value || "请选择地址"), - l: common_vendor.n(selectedAddress.value ? "" : "text-gray"), - m: common_vendor.o(($event) => showAddressPopup.value = true), - n: common_vendor.o(($event) => showAddressPopup.value = true), - o: common_vendor.o(($event) => showAddressPopup.value = false), - p: addressKeyword.value, - q: common_vendor.o(($event) => addressKeyword.value = $event.detail.value), - r: common_vendor.f(filteredAddressList.value, (item, index, i0) => { - return { - a: common_vendor.t(item), - b: index, - c: common_vendor.o(($event) => tempSelectedAddress.value = item, index), - d: tempSelectedAddress.value === item ? 1 : "" - }; + k: common_vendor.o(($event) => formData.source = $event), + l: common_vendor.p({ + options: sourceOptions.value, + wrap: false, + ["item-width"]: "183rpx", + ["item-height"]: "72rpx", + modelValue: formData.source }), - s: common_vendor.o(($event) => showAddressPopup.value = false), - t: common_vendor.o(confirmAddress), - v: common_vendor.o(($event) => showAddressPopup.value = false), - w: common_vendor.p({ - show: showAddressPopup.value, - mode: "center", - round: "20" - }), - x: common_vendor.o(($event) => formData.description = $event), - y: common_vendor.p({ + m: common_vendor.t(selectedAddress.value || "请选择地址"), + n: common_vendor.n(selectedAddress.value ? "" : "text-gray"), + o: common_vendor.o(chooseLocation), + p: common_vendor.o(chooseLocation), + q: common_vendor.o(($event) => formData.description = $event), + r: common_vendor.p({ placeholder: "请输入内容", modelValue: formData.description }), - z: common_vendor.o(($event) => formData.tagIndex = $event), - A: common_vendor.p({ + s: common_vendor.o(($event) => formData.tagIndex = $event), + t: common_vendor.p({ options: tagOptions.value, modelValue: formData.tagIndex }), - B: common_vendor.o(($event) => showAddPopup.value = false), - C: common_vendor.o(handleAdd), - D: common_vendor.o(($event) => showAddPopup.value = false), - E: common_vendor.p({ + v: common_vendor.o(($event) => showAddPopup.value = false), + w: common_vendor.o(handleAdd), + x: common_vendor.o(($event) => showAddPopup.value = false), + y: common_vendor.p({ show: showAddPopup.value, mode: "center", round: "20" diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.json b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.json index e691161..c7ac2c3 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.json +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.json @@ -4,7 +4,7 @@ "up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload", "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", "up-choose": "../../uni_modules/uview-plus/components/u-choose/u-choose", - "u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup", - "up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea" + "up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea", + "u-popup": "../../uni_modules/uview-plus/components/u-popup/u-popup" } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxml b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxml index e22c7d7..396a5b5 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxml @@ -1 +1 @@ -{{item.a}}{{item.b}}隐患等级:{{item.c}}隐患位置:{{item.d}}创建时间:{{item.e}}新增隐患排查×隐患图片/视频*必填:请上传现场照片或者视频作为隐患证据隐患标题*请用简洁的语言概括隐患要点隐患等级*隐患位置*{{k}}选择地址×{{item.a}}如:办公楼3层东侧消防通道、生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择隐患描述*请详细说明隐患现状、潜在风险及影响范围隐患标签可选择多个相关标签对隐患进行分类 \ No newline at end of file +{{item.a}}{{item.b}}隐患等级:{{item.c}}隐患位置:{{item.g}}创建时间:{{item.h}}新增隐患排查×隐患图片/视频*必填:请上传现场照片或者视频作为隐患证据隐患标题*请用简洁的语言概括隐患要点隐患等级*隐患来源*隐患位置*{{m}}如:办公楼3层东侧消防通道、生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择隐患描述*请详细说明隐患现状、潜在风险及影响范围隐患标签可选择多个相关标签对隐患进行分类 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxss b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxss index d79fc87..c361ab0 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/Inspection.wxss @@ -35,6 +35,25 @@ border-radius: 20rpx; padding: 20rpx; } +.level-tag.data-v-b44c631d { + padding: 4rpx 16rpx; + border-radius: 8rpx; +} +.level-minor.data-v-b44c631d { + background: #F6FFED; + border: 2rpx solid #B7EB8F; + color: #52C41A; +} +.level-normal.data-v-b44c631d { + background: #FFF7E6; + border: 2rpx solid #FFD591; + color: #FA8C16; +} +.level-major.data-v-b44c631d { + background: #FFF1F0; + border: 2rpx solid #FFA39E; + color: #F5222D; +} .popup-content.data-v-b44c631d { width: 600rpx; background: #fff; diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.js b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.js index b961188..4c5edfd 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.js +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.js @@ -1,5 +1,7 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); +const request_api = require("../../request/api.js"); +const request_request = require("../../request/request.js"); if (!Array) { const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload"); @@ -13,7 +15,132 @@ if (!Math) { const _sfc_main = { __name: "acceptance", setup(__props) { + const rectifyId = common_vendor.ref(""); + const hazardId = common_vendor.ref(""); + const assignId = common_vendor.ref(""); + const rectifyData = common_vendor.reactive({ + rectifyPlan: "", + rectifyResult: "" + }); + const rectifyAttachments = common_vendor.ref([]); + const formData = common_vendor.reactive({ + result: 1, + // 验收结果 1.通过 2.不通过 + verifyRemark: "" + // 验收备注 + }); const fileList1 = common_vendor.ref([]); + const getFullPath = (filePath) => { + if (!filePath) + return ""; + if (filePath.startsWith("http://") || filePath.startsWith("https://")) { + return filePath; + } + return request_request.baseUrl + filePath; + }; + const previewImage = (index) => { + const urls = rectifyAttachments.value.map((item) => getFullPath(item.filePath)); + common_vendor.index.previewImage({ + current: index, + urls + }); + }; + const fetchDetail = async () => { + if (!hazardId.value || !assignId.value) + return; + try { + const res = await request_api.getHiddenDangerDetail({ hazardId: hazardId.value, assignId: assignId.value }); + if (res.code === 0 && res.data) { + if (res.data.assigns && res.data.assigns.length > 0) { + const assign = res.data.assigns[0]; + if (assign.rectify) { + rectifyData.rectifyPlan = assign.rectify.rectifyPlan || ""; + rectifyData.rectifyResult = assign.rectify.rectifyResult || ""; + if (assign.rectify.attachments) { + rectifyAttachments.value = assign.rectify.attachments; + } + console.log("整改记录:", rectifyData); + console.log("整改附件:", rectifyAttachments.value); + } + } + } else { + common_vendor.index.showToast({ title: res.msg || "获取详情失败", icon: "none" }); + } + } catch (error) { + console.error("获取隐患详情失败:", error); + common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + } + }; + common_vendor.onLoad((options) => { + if (options.rectifyId) { + rectifyId.value = options.rectifyId; + } + if (options.hazardId) { + hazardId.value = options.hazardId; + } + if (options.assignId) { + assignId.value = options.assignId; + } + console.log("验收页面参数:", { rectifyId: rectifyId.value, hazardId: hazardId.value, assignId: assignId.value }); + fetchDetail(); + }); + const handleCancel = () => { + common_vendor.index.navigateBack(); + }; + const handleSubmit = async () => { + if (!rectifyId.value) { + common_vendor.index.showToast({ + title: "缺少整改ID", + icon: "none" + }); + return; + } + const attachments = fileList1.value.map((file) => { + let url = ""; + if (typeof file.url === "string") { + url = file.url; + } else if (file.url && typeof file.url === "object") { + url = file.url.url || file.url.path || ""; + } + const fileName = typeof url === "string" && url ? url.split("/").pop() : file.name || ""; + return { + fileName: fileName || "", + filePath: url || "", + fileType: file.type || "image/png", + fileSize: file.size || 0 + }; + }); + const params = { + rectifyId: Number(rectifyId.value), + result: formData.result, + verifyRemark: formData.verifyRemark || "", + attachments + }; + console.log("提交验收参数:", params); + try { + const res = await request_api.acceptanceRectification(params); + if (res.code === 0) { + common_vendor.index.showToast({ + title: "验收成功", + icon: "success" + }); + setTimeout(() => { + common_vendor.index.navigateBack(); + }, 1500); + } else { + common_vendor.index.showToast({ + title: res.msg || "验收失败", + icon: "none" + }); + } + } catch (error) { + console.error("验收失败:", error); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); + } + }; const deletePic = (event) => { fileList1.value.splice(event.index, 1); }; @@ -39,45 +166,64 @@ const _sfc_main = { fileListLen++; } }; - const uploadFilePromise = (url) => { + const uploadFilePromise = (filePath) => { return new Promise((resolve, reject) => { common_vendor.index.uploadFile({ - url: "http://192.168.2.21:7001/upload", - // 仅为示例,非真实的接口地址 - filePath: url, + url: request_request.baseUrl + "/frontend/attachment/upload", + filePath, name: "file", - formData: { - user: "test" + header: { + "Authorization": request_request.getToken() }, success: (res) => { - setTimeout(() => { - resolve(res.data.data); - }, 1e3); + const data = JSON.parse(res.data); + if (data.code === 0) { + resolve(data.data); + } else { + reject(data.msg || "上传失败"); + } + }, + fail: (err) => { + console.error("上传失败:", err); + reject(err); } }); }); }; return (_ctx, _cache) => { - return { - a: common_vendor.o(($event) => _ctx.value1 = $event), - b: common_vendor.p({ - placeholder: "请输入内容", - modelValue: _ctx.value1 + return common_vendor.e({ + a: common_vendor.t(rectifyData.rectifyPlan || "暂无"), + b: common_vendor.t(rectifyData.rectifyResult || "暂无"), + c: rectifyAttachments.value.length > 0 + }, rectifyAttachments.value.length > 0 ? { + d: common_vendor.f(rectifyAttachments.value, (img, idx, i0) => { + return { + a: idx, + b: getFullPath(img.filePath), + c: common_vendor.o(($event) => previewImage(idx), idx) + }; + }) + } : {}, { + e: common_vendor.n(formData.result === 1 ? "active" : ""), + f: common_vendor.o(($event) => formData.result = 1), + g: common_vendor.n(formData.result === 2 ? "active" : ""), + h: common_vendor.o(($event) => formData.result = 2), + i: common_vendor.o(($event) => formData.verifyRemark = $event), + j: common_vendor.p({ + placeholder: "请输入验收备注", + modelValue: formData.verifyRemark }), - c: common_vendor.o(($event) => _ctx.value1 = $event), - d: common_vendor.p({ - placeholder: "请输入内容", - modelValue: _ctx.value1 - }), - e: common_vendor.o(afterRead), - f: common_vendor.o(deletePic), - g: common_vendor.p({ + k: common_vendor.o(afterRead), + l: common_vendor.o(deletePic), + m: common_vendor.p({ fileList: fileList1.value, name: "1", multiple: true, maxCount: 10 - }) - }; + }), + n: common_vendor.o(handleCancel), + o: common_vendor.o(handleSubmit) + }); }; } }; diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxml b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxml index 9ba33c7..1660e30 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxml @@ -1 +1 @@ -整改记录验收内容*验收图片/视频* \ No newline at end of file +整改记录整改方案:{{a}}完成情况:{{b}}整改附件:暂无附件验收结果*验收备注验收图片/视频 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxss b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxss index 4ec6123..7cde0ea 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/acceptance.wxss @@ -27,4 +27,20 @@ .page.data-v-39f9b795 { min-height: 100vh; background: #EBF2FC; +} +.result-btn.data-v-39f9b795 { + flex: 1; + height: 80rpx; + line-height: 80rpx; + border-radius: 8rpx; + background: #f5f5f5; + color: #666; + font-size: 28rpx; +} +.result-btn.data-v-39f9b795::after { + border: none; +} +.result-btn.active.data-v-39f9b795 { + background: #2667E9; + color: #fff; } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.js b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.js new file mode 100644 index 0000000..c78a2e2 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.js @@ -0,0 +1,149 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const request_api = require("../../request/api.js"); +if (!Array) { + const _easycom_up_picker2 = common_vendor.resolveComponent("up-picker"); + const _easycom_up_datetime_picker2 = common_vendor.resolveComponent("up-datetime-picker"); + (_easycom_up_picker2 + _easycom_up_datetime_picker2)(); +} +const _easycom_up_picker = () => "../../uni_modules/uview-plus/components/u-picker/u-picker.js"; +const _easycom_up_datetime_picker = () => "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js"; +if (!Math) { + (_easycom_up_picker + _easycom_up_datetime_picker)(); +} +const _sfc_main = { + __name: "assignment", + setup(__props) { + const hazardId = common_vendor.ref(""); + const assignId = common_vendor.ref(""); + const showUserPicker = common_vendor.ref(false); + const selectedUser = common_vendor.ref(""); + const selectedUserId = common_vendor.ref(""); + const userColumns = common_vendor.ref([["暂无数据"]]); + const userList = common_vendor.ref([]); + const showDatePicker = common_vendor.ref(false); + const dateValue = common_vendor.ref(Date.now()); + const selectedDate = common_vendor.ref(""); + const fetchDeptUsers = async () => { + try { + const res = await request_api.getDepartmentPersonUsers(); + if (res.code === 0 && res.data) { + const users = []; + res.data.forEach((dept) => { + if (dept.users && dept.users.length > 0) { + dept.users.forEach((user) => { + users.push({ + id: String(user.userId), + name: `${user.nickName}(${dept.deptName})` + }); + }); + } + }); + userList.value = users; + userColumns.value = [users.map((u) => u.name)]; + console.log("整改人员列表:", users); + } + } catch (error) { + console.error("获取部门人员失败:", error); + } + }; + const onUserConfirm = (e) => { + console.log("选择的人员:", e); + if (e.value && e.value.length > 0) { + selectedUser.value = e.value[0]; + const user = userList.value.find((u) => u.name === e.value[0]); + if (user) { + selectedUserId.value = user.id; + } + } + showUserPicker.value = false; + }; + const onDateConfirm = (e) => { + console.log("选择的日期时间:", e); + const date = new Date(e.value); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + const hours = String(date.getHours()).padStart(2, "0"); + const minutes = String(date.getMinutes()).padStart(2, "0"); + const seconds = String(date.getSeconds()).padStart(2, "0"); + selectedDate.value = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + showDatePicker.value = false; + }; + const handleCancel = () => { + common_vendor.index.navigateBack(); + }; + const handleSubmit = async () => { + if (!selectedUserId.value) { + common_vendor.index.showToast({ title: "请选择整改人员", icon: "none" }); + return; + } + if (!selectedDate.value) { + common_vendor.index.showToast({ title: "请选择整改期限", icon: "none" }); + return; + } + const params = { + hazardId: Number(hazardId.value), + // 隐患ID + assigneeId: Number(selectedUserId.value), + // 被指派人ID + deadline: selectedDate.value, + // 处理期限 + assignRemark: "" + // 交办备注(可选) + }; + console.log("提交数据:", params); + try { + const res = await request_api.assignHiddenDanger(params); + if (res.code === 0) { + common_vendor.index.showToast({ title: "交办成功", icon: "success" }); + setTimeout(() => { + common_vendor.index.navigateBack(); + }, 1500); + } else { + common_vendor.index.showToast({ title: res.msg || "交办失败", icon: "none" }); + } + } catch (error) { + console.error("交办失败:", error); + common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + } + }; + common_vendor.onLoad((options) => { + if (options.hazardId) + hazardId.value = options.hazardId; + if (options.assignId) + assignId.value = options.assignId; + fetchDeptUsers(); + }); + return (_ctx, _cache) => { + return { + a: common_vendor.t(selectedUser.value || "请选择整改人员"), + b: common_vendor.n(selectedUser.value ? "" : "text-gray"), + c: common_vendor.o(($event) => showUserPicker.value = true), + d: common_vendor.o(onUserConfirm), + e: common_vendor.o(($event) => showUserPicker.value = false), + f: common_vendor.o(($event) => showUserPicker.value = false), + g: common_vendor.p({ + show: showUserPicker.value, + columns: userColumns.value + }), + h: common_vendor.t(selectedDate.value || "请选择整改期限"), + i: common_vendor.n(selectedDate.value ? "" : "text-gray"), + j: common_vendor.o(($event) => showDatePicker.value = true), + k: common_vendor.o(onDateConfirm), + l: common_vendor.o(($event) => showDatePicker.value = false), + m: common_vendor.o(($event) => showDatePicker.value = false), + n: common_vendor.o(($event) => dateValue.value = $event), + o: common_vendor.p({ + show: showDatePicker.value, + mode: "datetime", + modelValue: dateValue.value + }), + p: common_vendor.o(handleCancel), + q: common_vendor.o(handleSubmit) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-6209e844"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.json b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.json new file mode 100644 index 0000000..bfed723 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "隐患交办", + "usingComponents": { + "up-picker": "../../uni_modules/uview-plus/components/u-picker/u-picker", + "up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxml b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxml new file mode 100644 index 0000000..e3d890f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxml @@ -0,0 +1 @@ +整改人员*{{a}}整改期限*{{h}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxss b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxss new file mode 100644 index 0000000..d275fe9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/assignment.wxss @@ -0,0 +1,63 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.page.data-v-6209e844 { + min-height: 100vh; + background: #EBF2FC; +} +.picker-input.data-v-6209e844 { + background: #fff; + border-radius: 8rpx; + padding: 24rpx 20rpx; + margin-bottom: 20rpx; + border: 1rpx solid #F6F6F6; +} +.picker-input text.data-v-6209e844 { + font-size: 28rpx; + color: #333; +} +.btn-group.data-v-6209e844 { + display: flex; + gap: 30rpx; +} +.btn-cancel.data-v-6209e844 { + flex: 1; + height: 80rpx; + line-height: 80rpx; + border: 2rpx solid #2667E9; + border-radius: 40rpx; + background: #fff; + color: #2667E9; + font-size: 30rpx; +} +.btn-confirm.data-v-6209e844 { + flex: 1; + height: 80rpx; + line-height: 80rpx; + border-radius: 40rpx; + color: #fff; + font-size: 30rpx; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.js b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.js index 0211d2c..a986116 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.js +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.js @@ -5,20 +5,18 @@ const request_request = require("../../request/request.js"); if (!Array) { const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); - const _easycom_up_calendar2 = common_vendor.resolveComponent("up-calendar"); - const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio"); - const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group"); + const _easycom_up_datetime_picker2 = common_vendor.resolveComponent("up-datetime-picker"); + const _easycom_up_select2 = common_vendor.resolveComponent("up-select"); const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload"); - (_easycom_up_textarea2 + _easycom_up_input2 + _easycom_up_calendar2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_upload2)(); + (_easycom_up_textarea2 + _easycom_up_input2 + _easycom_up_datetime_picker2 + _easycom_up_select2 + _easycom_up_upload2)(); } const _easycom_up_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js"; const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; -const _easycom_up_calendar = () => "../../uni_modules/uview-plus/components/u-calendar/u-calendar.js"; -const _easycom_up_radio = () => "../../uni_modules/uview-plus/components/u-radio/u-radio.js"; -const _easycom_up_radio_group = () => "../../uni_modules/uview-plus/components/u-radio-group/u-radio-group.js"; +const _easycom_up_datetime_picker = () => "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js"; +const _easycom_up_select = () => "../../uni_modules/uview-plus/components/u-select/u-select.js"; const _easycom_up_upload = () => "../../uni_modules/uview-plus/components/u-upload/u-upload.js"; if (!Math) { - (_easycom_up_textarea + _easycom_up_input + _easycom_up_calendar + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_upload)(); + (_easycom_up_textarea + _easycom_up_input + _easycom_up_datetime_picker + _easycom_up_select + _easycom_up_upload)(); } const _sfc_main = { __name: "rectification", @@ -36,27 +34,34 @@ const _sfc_main = { // 投资资金(实际) }); const show = common_vendor.ref(false); - const mode = common_vendor.ref("single"); + const value1 = common_vendor.ref(Date.now()); const selectedDate = common_vendor.ref(""); - const radiovalue1 = common_vendor.ref(""); - const radiolist1 = common_vendor.reactive([ - { - name: "孙致远", - disabled: false - }, - { - name: "符友成", - disabled: false - }, - { - name: "向彪", - disabled: false - }, - { - name: "向纪荣", - disabled: false + common_vendor.ref(""); + const cateId = common_vendor.ref(""); + const cateList = common_vendor.ref([]); + const fetchDeptUsers = async () => { + try { + const res = await request_api.getDepartmentPersonUsers(); + if (res.code === 0 && res.data) { + const userList = []; + res.data.forEach((dept) => { + if (dept.users && dept.users.length > 0) { + dept.users.forEach((user) => { + userList.push({ + id: String(user.userId), + name: `${user.nickName}(${dept.deptName})` + }); + }); + } + }); + cateList.value = userList; + console.log("整改人员列表:", cateList.value); + } + } catch (error) { + console.error("获取部门人员失败:", error); } - ]); + }; + fetchDeptUsers(); const fileList1 = common_vendor.ref([]); const deletePic = (event) => { fileList1.value.splice(event.index, 1); @@ -83,10 +88,6 @@ const _sfc_main = { fileListLen++; } }; - const confirmDate = (e) => { - selectedDate.value = e[0]; - show.value = false; - }; const uploadFilePromise = (filePath) => { return new Promise((resolve, reject) => { common_vendor.index.uploadFile({ @@ -94,7 +95,7 @@ const _sfc_main = { filePath, name: "file", header: { - "Authorization": request_request.AUTH_TOKEN + "Authorization": request_request.getToken() }, success: (res) => { const data = JSON.parse(res.data); @@ -113,11 +114,17 @@ const _sfc_main = { }; const handleSubmit = async () => { if (!formData.rectifyPlan) { - common_vendor.index.showToast({ title: "请输入整改方案", icon: "none" }); + common_vendor.index.showToast({ + title: "请输入整改方案", + icon: "none" + }); return; } if (!formData.rectifyResult) { - common_vendor.index.showToast({ title: "请输入整改完成情况", icon: "none" }); + common_vendor.index.showToast({ + title: "请输入整改完成情况", + icon: "none" + }); return; } const attachments = fileList1.value.map((file) => { @@ -147,16 +154,25 @@ const _sfc_main = { try { const res = await request_api.submitRectification(params); if (res.code === 0) { - common_vendor.index.showToast({ title: "提交成功", icon: "success" }); + common_vendor.index.showToast({ + title: "提交成功", + icon: "success" + }); setTimeout(() => { common_vendor.index.navigateBack(); }, 1500); } else { - common_vendor.index.showToast({ title: res.msg || "提交失败", icon: "none" }); + common_vendor.index.showToast({ + title: res.msg || "提交失败", + icon: "none" + }); } } catch (error) { console.error("提交整改失败:", error); - common_vendor.index.showToast({ title: "请求失败", icon: "none" }); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); } }; common_vendor.onLoad((options) => { @@ -167,6 +183,10 @@ const _sfc_main = { assignId.value = options.assignId; } }); + const selectItem = (item) => { + console.log("选择的整改人员:", item); + cateId.value = item.id; + }; return (_ctx, _cache) => { return { a: common_vendor.o(($event) => formData.rectifyPlan = $event), @@ -194,42 +214,29 @@ const _sfc_main = { i: common_vendor.t(selectedDate.value || "请选择日期"), j: common_vendor.n(selectedDate.value ? "" : "text-gray"), k: common_vendor.o(($event) => show.value = true), - l: common_vendor.o(confirmDate), - m: common_vendor.o(($event) => show.value = false), - n: common_vendor.p({ + l: common_vendor.o(($event) => value1.value = $event), + m: common_vendor.p({ + hasInput: true, show: show.value, - mode: mode.value + mode: "date", + modelValue: value1.value }), - o: common_vendor.f(radiolist1, (item, index, i0) => { - return { - a: index, - b: common_vendor.o(_ctx.radioChange, index), - c: "f18ba0ce-6-" + i0 + ",f18ba0ce-5", - d: common_vendor.p({ - shape: "square", - customStyle: { - marginBottom: "8px" - }, - label: item.name, - name: item.name - }) - }; + n: common_vendor.o(selectItem), + o: common_vendor.o(($event) => cateId.value = $event), + p: common_vendor.p({ + label: "整改人员", + options: cateList.value, + current: cateId.value }), - p: common_vendor.o(_ctx.groupChange), - q: common_vendor.o(($event) => radiovalue1.value = $event), - r: common_vendor.p({ - placement: "column", - modelValue: radiovalue1.value - }), - s: common_vendor.o(afterRead), - t: common_vendor.o(deletePic), - v: common_vendor.p({ + q: common_vendor.o(afterRead), + r: common_vendor.o(deletePic), + s: common_vendor.p({ fileList: fileList1.value, name: "1", multiple: true, maxCount: 10 }), - w: common_vendor.o(handleSubmit) + t: common_vendor.o(handleSubmit) }; }; } diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.json b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.json index 38977b1..fdcc52d 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.json +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.json @@ -3,9 +3,8 @@ "usingComponents": { "up-textarea": "../../uni_modules/uview-plus/components/u-textarea/u-textarea", "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", - "up-calendar": "../../uni_modules/uview-plus/components/u-calendar/u-calendar", - "up-radio": "../../uni_modules/uview-plus/components/u-radio/u-radio", - "up-radio-group": "../../uni_modules/uview-plus/components/u-radio-group/u-radio-group", + "up-datetime-picker": "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker", + "up-select": "../../uni_modules/uview-plus/components/u-select/u-select", "up-upload": "../../uni_modules/uview-plus/components/u-upload/u-upload" } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.wxml b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.wxml index 120b067..4d83774 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/rectification.wxml @@ -1 +1 @@ -整改方案*整改完成情况*投资资金(计划)*投资资金(实际)*限定整改时间*{{i}}整改人员*整改图片/视频* \ No newline at end of file +整改方案*整改完成情况*投资资金(计划)*投资资金(实际)*限定整改时间*{{i}}整改图片/视频* \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.js b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.js index a557989..3de786d 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.js +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.js @@ -1,6 +1,7 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); const request_api = require("../../request/api.js"); +const request_request = require("../../request/request.js"); if (!Array) { const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea"); @@ -26,11 +27,34 @@ const _sfc_main = { createdAt: "", attachments: [] }); + const rectifyAttachments = common_vendor.ref([]); + const getFullPath = (filePath) => { + if (!filePath) + return ""; + if (filePath.startsWith("http://") || filePath.startsWith("https://")) { + return filePath; + } + return request_request.baseUrl + filePath; + }; + const previewRectifyImage = (index) => { + const urls = rectifyAttachments.value.map((item) => getFullPath(item.filePath)); + common_vendor.index.previewImage({ + current: index, + urls + }); + }; const fetchDetail = async (hazardId, assignId) => { try { const res = await request_api.getHiddenDangerDetail({ hazardId, assignId }); if (res.code === 0 && res.data) { Object.assign(detailData, res.data); + if (res.data.assigns && res.data.assigns.length > 0) { + const assign = res.data.assigns[0]; + if (assign.rectify && assign.rectify.attachments) { + rectifyAttachments.value = assign.rectify.attachments; + console.log("整改附件:", rectifyAttachments.value); + } + } } else { common_vendor.index.showToast({ title: res.msg || "获取详情失败", icon: "none" }); } @@ -46,12 +70,13 @@ const _sfc_main = { }); return (_ctx, _cache) => { return common_vendor.e({ - a: (detailData == null ? void 0 : detailData.attachments) && detailData.attachments.length > 0 - }, (detailData == null ? void 0 : detailData.attachments) && detailData.attachments.length > 0 ? { - b: common_vendor.f(detailData.attachments, (img, idx, i0) => { + a: rectifyAttachments.value.length > 0 + }, rectifyAttachments.value.length > 0 ? { + b: common_vendor.f(rectifyAttachments.value, (img, idx, i0) => { return { a: idx, - b: img.filePath + b: getFullPath(img.filePath), + c: common_vendor.o(($event) => previewRectifyImage(idx), idx) }; }) } : {}, { diff --git a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.wxml b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.wxml index 06c9330..feefefb 100644 --- a/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/hiddendanger/view.wxml @@ -1 +1 @@ -隐患图片/视频*暂无图片必填:请上传现场照片或者视频作为隐患证据隐患标题*请用简洁的语言概括隐患要点隐患等级*轻微隐患一般隐患重大隐患请用隐患可能造成的危害程度选择等级隐患位置*如:办公楼3层东侧消防通道,生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择隐患描述*请详细说明隐患现状、潜在风险及影响范围隐患来源{{l}}创建时间{{m}} \ No newline at end of file +隐患图片/视频*暂无图片必填:请上传现场照片或者视频作为隐患证据隐患标题*请用简洁的语言概括隐患要点隐患等级*轻微隐患一般隐患重大隐患请用隐患可能造成的危害程度选择等级隐患位置*如:办公楼3层东侧消防通道,生产车间A区设备旁等,或点击"选择地址"按钮在地图上选择隐患描述*请详细说明隐患现状、潜在风险及影响范围隐患来源{{l}}创建时间{{m}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js index e401d57..5c67fba 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -6,6 +6,28 @@ const _sfc_main = { __name: "index", setup(__props) { const loading = common_vendor.ref(true); + const userInfo = common_vendor.reactive({ + userId: "", + username: "", + nickName: "", + deptId: "", + deptName: "" + }); + const getUserInfo = () => { + try { + const storedUserInfo = common_vendor.index.getStorageSync("userInfo"); + if (storedUserInfo) { + const info = JSON.parse(storedUserInfo); + userInfo.userId = info.userId || ""; + userInfo.username = info.username || ""; + userInfo.nickName = info.nickName || ""; + userInfo.deptId = info.deptId || ""; + userInfo.deptName = info.deptName || ""; + } + } catch (e) { + console.error("获取用户信息失败:", e); + } + }; const infoList = common_vendor.ref([ { name: "成员管理", @@ -54,16 +76,6 @@ const _sfc_main = { url: `/pages/Inspectionresult/Inspectionresult?id=${item.id}` }); }; - const Inspectionwarning = () => { - common_vendor.index.navigateTo({ - url: "/pages/Inspectionwarning/Inspectionwarning" - }); - }; - const my = () => { - common_vendor.index.navigateTo({ - url: "/pages/personalcenter/my" - }); - }; const handleMenuClick = (item) => { const menuRoutes = { "成员管理": "/pages/membermanagemen/membermanagemen", @@ -109,11 +121,37 @@ const _sfc_main = { return dateStr.split(" ")[0]; }; common_vendor.onLoad(() => { + getUserInfo(); getCheckPlanLists(); }); + const hiddenDangerParams = common_vendor.ref({ + pageNum: 1, + pageSize: 10, + name: "" + }); + const hiddenDangerData = common_vendor.ref([]); + const getHiddenDangerLists = async () => { + try { + const res = await request_api.getHiddenDangerList(hiddenDangerParams.value); + console.log(res); + if (res.code === 0) { + hiddenDangerData.value = res.data.records; + console.log(hiddenDangerData.value, 1111); + } + } catch (error) { + console.error(error); + } finally { + loading.value = false; + } + }; + common_vendor.onLoad(() => { + getHiddenDangerLists(); + }); return (_ctx, _cache) => { return common_vendor.e({ - a: common_vendor.f(infoList.value, (item, index, i0) => { + a: common_vendor.t(userInfo.deptName || "未知部门"), + b: common_vendor.t(userInfo.nickName || userInfo.username || "未登录"), + c: common_vendor.f(infoList.value, (item, index, i0) => { return { a: item.src, b: common_vendor.t(item.name), @@ -121,9 +159,9 @@ const _sfc_main = { d: common_vendor.o(($event) => handleMenuClick(item), index) }; }), - b: checkPlanData.value.length === 0 + d: checkPlanData.value.length === 0 }, checkPlanData.value.length === 0 ? {} : {}, { - c: common_vendor.f(checkPlanData.value, (item, index, i0) => { + e: common_vendor.f(checkPlanData.value, (item, index, i0) => { return { a: common_vendor.t(item.name), b: common_vendor.t(item.runModeName), @@ -140,13 +178,19 @@ const _sfc_main = { m: item.id }; }), - d: common_assets._imports_0, - e: common_assets._imports_1, - f: common_assets._imports_2, - g: common_assets._imports_3, - h: common_vendor.o(($event) => Inspectionwarning()), - i: common_assets._imports_4, - j: common_vendor.o(($event) => my()) + f: common_assets._imports_0, + g: common_vendor.f(hiddenDangerData.value, (item, index, i0) => { + return { + a: common_vendor.t(item.title), + b: common_vendor.t(item.source), + c: common_vendor.t(item.address), + d: common_vendor.t(item.levelName), + e: common_vendor.t(item.statusName), + f: common_vendor.t(item.createdAt), + g: item.id, + h: common_vendor.o(($event) => _ctx.HazardList(), item.id) + }; + }) }); }; } diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml index f0ac6fd..f1b42eb 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml @@ -1 +1 @@ -湘西和谐云大数据产业发展有限公司手机号:17374339800切换功能菜单{{item.b}}我的检查计划 暂无检查计划 {{item.a}}{{item.b}}完成{{item.c}}计划时间:{{item.d}}至{{item.e}}完成进度:{{item.g}}%{{item.h}}总数{{item.i}}待完成0待验收{{item.j}}已完成我的隐患排查隐患#15标题:有隐患隐患来源:企业自查隐患位置:湖南省湘西土家族苗族自治州吉首市人民北路105号隐患等级:一般隐患隐患状态:待验收发现时间:2025-11-11 17:08:09首页一张图预警我的 \ No newline at end of file +{{a}}用户:{{b}}切换功能菜单{{item.b}}我的检查计划 暂无检查计划 {{item.a}}{{item.b}}完成{{item.c}}计划时间:{{item.d}}至{{item.e}}完成进度:{{item.g}}%{{item.h}}总数{{item.i}}待完成0待验收{{item.j}}已完成我的隐患排查隐患#15标题:{{item.a}}隐患来源:{{item.b}}隐患位置:{{item.c}}隐患等级:{{item.d}}隐患状态:{{item.e}}发现时间:{{item.f}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss index f4faba6..159acd7 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss @@ -24,6 +24,10 @@ /* 垂直间距 */ /* 透明度 */ /* 文章场景相关 */ +.grid-list.data-v-1cf27b2a { + gap: 30rpx; + margin-top: 30rpx; +} .list.data-v-1cf27b2a { background: #F2F6FF; box-shadow: 0rpx 4rpx 8rpx 2rpx #CADDFC; diff --git a/unpackage/dist/dev/mp-weixin/pages/login/agreement.js b/unpackage/dist/dev/mp-weixin/pages/login/agreement.js new file mode 100644 index 0000000..fe2387b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/agreement.js @@ -0,0 +1,25 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + __name: "agreement", + setup(__props) { + const articleUrl = common_vendor.ref(""); + const webviewStyles = common_vendor.ref({ + progress: { + color: "#3D83F6" + // 使用蓝色主题色 + } + }); + common_vendor.onMounted(() => { + articleUrl.value = "http://www.baidu.com/"; + }); + return (_ctx, _cache) => { + return { + a: webviewStyles.value, + b: articleUrl.value + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-b4896b2f"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/agreement.json b/unpackage/dist/dev/mp-weixin/pages/login/agreement.json new file mode 100644 index 0000000..74df576 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/agreement.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "用户协议", + "navigationStyle": "custom", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxml b/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxml new file mode 100644 index 0000000..433f333 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxss b/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxss new file mode 100644 index 0000000..991d9fc --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/agreement.wxss @@ -0,0 +1,26 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/enterprise.js b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.js new file mode 100644 index 0000000..8e7247f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.js @@ -0,0 +1,152 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Array) { + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item"); + const _easycom_up_form2 = common_vendor.resolveComponent("up-form"); + const _component_lsl_protocol_popup = common_vendor.resolveComponent("lsl-protocol-popup"); + (_easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_form2 + _component_lsl_protocol_popup)(); +} +const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_form_item = () => "../../uni_modules/uview-plus/components/u-form-item/u-form-item.js"; +const _easycom_up_form = () => "../../uni_modules/uview-plus/components/u-form/u-form.js"; +if (!Math) { + (_easycom_up_input + _easycom_up_form_item + _easycom_up_form)(); +} +const _sfc_main = { + __name: "enterprise", + setup(__props) { + const state = common_vendor.reactive({ + showSex: false, + isAgreed: false, + // 用户是否同意协议 + showProtocolPopup: false, + // 是否显示协议弹窗 + model1: { + userInfo: { + name: "uview-plus UI", + sex: "" + } + }, + rules: { + "userInfo.name": { + type: "string", + required: true, + message: "请填写姓名", + trigger: ["blur", "change"] + } + } + }); + const toggleAgreement = () => { + state.isAgreed = !state.isAgreed; + }; + const showProtocol = (type) => { + if (type === "user") { + common_vendor.index.navigateTo({ + url: "/pages/login/agreement" + }); + } else if (type === "privacy") { + state.showProtocolPopup = true; + } + }; + const handleRegister = () => { + if (!state.isAgreed) { + common_vendor.index.showToast({ + title: "请先阅读并同意用户协议和隐私政策", + icon: "none", + duration: 2e3 + }); + return; + } + console.log("开始注册流程"); + }; + const handleAgreeProtocol = () => { + state.isAgreed = true; + state.showProtocolPopup = false; + common_vendor.index.showToast({ + title: "已同意协议条款", + icon: "success", + duration: 1500 + }); + }; + const closeProtocolPopup = () => { + state.showProtocolPopup = false; + }; + const other = [ + [ + { + tit: "《服务协议》", + type: "page", + // doc自行下载打开文档 page跳转页面 + content: "/pages/login/agreement" + // 文档地址/页面跳转地址 + }, + { + tit: "《隐私政策》", + type: "page", + // doc自行下载打开文档 page跳转页面 + content: "/pages/login/privacy" + // 文档地址/页面跳转地址 + } + ] + ]; + return (_ctx, _cache) => { + return common_vendor.e({ + a: common_vendor.p({ + border: "none", + placeholder: "请填写营业执照上的企业名称", + inputAlign: "right" + }), + b: common_vendor.sr("item1", "280ea37d-1,280ea37d-0"), + c: common_vendor.p({ + required: true, + label: "企业名称", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + d: common_vendor.p({ + border: "none", + placeholder: "请输入管理员姓名", + inputAlign: "right" + }), + e: common_vendor.sr("item1", "280ea37d-3,280ea37d-0"), + f: common_vendor.p({ + required: true, + label: "管理员姓名", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "120" + }), + g: common_vendor.sr("form1", "280ea37d-0"), + h: common_vendor.p({ + labelPosition: "left", + model: state.model1, + rules: state.rules + }), + i: common_vendor.n(state.isAgreed ? "bg-blue" : "bg-gray"), + j: !state.isAgreed, + k: common_vendor.o(handleRegister), + l: state.isAgreed + }, state.isAgreed ? {} : {}, { + m: state.isAgreed ? 1 : "", + n: common_vendor.o(($event) => showProtocol("user")), + o: common_vendor.o(($event) => showProtocol("privacy")), + p: common_vendor.o(toggleAgreement), + q: common_vendor.o(handleAgreeProtocol), + r: common_vendor.o(closeProtocolPopup), + s: common_vendor.p({ + title: "用户协议和隐私政策", + predesc: "为了更好地保护您的个人信息和合法权益,在使用我们的服务前,请您务必仔细阅读并充分理解以下协议条款。", + subdesc: '请您详细阅读各条款内容,特别是免除或限制责任的条款。如您同意以下协议条款,请点击"同意并继续"开始使用我们的服务。', + color: "#007AFF", + onNeed: state.showProtocolPopup, + other, + open_type: "getPhoneNumber|agreePrivacyAuthorization" + }) + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-280ea37d"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/enterprise.json b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.json new file mode 100644 index 0000000..0b94816 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "注册新企业", + "usingComponents": { + "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", + "up-form-item": "../../uni_modules/uview-plus/components/u-form-item/u-form-item", + "up-form": "../../uni_modules/uview-plus/components/u-form/u-form" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxml b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxml new file mode 100644 index 0000000..c44e36f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxml @@ -0,0 +1 @@ + 我已阅读并接受 《服务协议》《隐私政策》 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxss b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxss new file mode 100644 index 0000000..67c2187 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/enterprise.wxss @@ -0,0 +1,59 @@ + +/* 协议同意区域 */ +.protocol-agreement.data-v-280ea37d { + padding: 30rpx 0; +} +.protocol-checkbox.data-v-280ea37d { + display: flex; + align-items: flex-start; + gap: 15rpx; +} +.checkbox.data-v-280ea37d { + width: 32rpx; + height: 32rpx; + border: 2rpx solid #ddd; + border-radius: 6rpx; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + transition: all 0.3s ease; + margin-top: 2rpx; +} +.checkbox.checked.data-v-280ea37d { + background-color: #007AFF; + border-color: #007AFF; +} +.checkmark.data-v-280ea37d { + color: white; + font-size: 20rpx; + font-weight: bold; +} +.protocol-text.data-v-280ea37d { + font-size: 28rpx; + color: #666; + line-height: 1.6; + flex: 1; +} +.protocol-link.data-v-280ea37d { + color: #007AFF; + text-decoration: underline; +} + +/* 注册按钮样式 */ +.bg-gray.data-v-280ea37d { + background-color: #ccc !important; + color: #999 !important; +} +.bg-blue.data-v-280ea37d { + background-color: #007AFF !important; + color: white !important; +} +button[disabled].data-v-280ea37d { + opacity: 0.6; + cursor: not-allowed; +} +button.data-v-280ea37d:not([disabled]):active { + transform: scale(0.98); + transition: transform 0.1s ease; +} diff --git a/unpackage/dist/dev/mp-weixin/pages/login/forget.js b/unpackage/dist/dev/mp-weixin/pages/login/forget.js new file mode 100644 index 0000000..cc29120 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/forget.js @@ -0,0 +1,168 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +if (!Array) { + const _component_cu_custom = common_vendor.resolveComponent("cu-custom"); + _component_cu_custom(); +} +const _sfc_main = { + __name: "forget", + setup(__props) { + const phone = common_vendor.ref(""); + const password = common_vendor.ref(""); + const code = common_vendor.ref(""); + const second = common_vendor.ref(0); + const showPassword = common_vendor.ref(false); + let timer = null; + const codeText = common_vendor.computed(() => { + if (second.value === 0) { + return "获取验证码"; + } else { + const secondStr = second.value < 10 ? `0${second.value}` : second.value; + return `重新获取${secondStr}`; + } + }); + const togglePassword = () => { + showPassword.value = !showPassword.value; + }; + const getCode = () => { + if (phone.value.length !== 11) { + common_vendor.index.showToast({ + icon: "none", + title: "手机号不正确" + }); + return; + } + if (second.value > 0) { + return; + } + second.value = 60; + startCountdown(); + common_vendor.index.request({ + url: "http://example.com/api/code", + data: { + phone: phone.value, + type: "forget" + }, + method: "POST", + dataType: "json", + success: (res) => { + if (res.data.code != 200) { + common_vendor.index.showToast({ + title: res.data.msg || "获取验证码失败", + icon: "none" + }); + second.value = 0; + clearCountdown(); + } else { + common_vendor.index.showToast({ + title: res.data.msg || "验证码已发送" + }); + } + }, + fail: () => { + common_vendor.index.showToast({ + title: "网络请求失败", + icon: "none" + }); + second.value = 0; + clearCountdown(); + } + }); + }; + const startCountdown = () => { + clearCountdown(); + timer = setInterval(() => { + second.value--; + if (second.value === 0) { + clearCountdown(); + } + }, 1e3); + }; + const clearCountdown = () => { + if (timer) { + clearInterval(timer); + timer = null; + } + }; + const handleReset = () => { + if (phone.value.length !== 11) { + common_vendor.index.showToast({ + icon: "none", + title: "手机号不正确" + }); + return; + } + if (password.value.length < 6) { + common_vendor.index.showToast({ + icon: "none", + title: "密码不正确" + }); + return; + } + if (code.value.length !== 4) { + common_vendor.index.showToast({ + icon: "none", + title: "验证码不正确" + }); + return; + } + common_vendor.index.request({ + url: "http://example.com/api/forget", + data: { + phone: phone.value, + password: password.value, + code: code.value + }, + method: "POST", + dataType: "json", + success: (res) => { + if (res.data.code != 200) { + common_vendor.index.showToast({ + title: res.data.msg || "修改密码失败", + icon: "none" + }); + } else { + common_vendor.index.showToast({ + title: res.data.msg || "修改密码成功" + }); + setTimeout(() => { + common_vendor.index.navigateBack(); + }, 1500); + } + }, + fail: () => { + common_vendor.index.showToast({ + title: "网络请求失败", + icon: "none" + }); + } + }); + }; + common_vendor.onUnmounted(() => { + clearCountdown(); + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + isBack: true + }), + b: common_assets._imports_0$4, + c: phone.value, + d: common_vendor.o(($event) => phone.value = $event.detail.value), + e: common_assets._imports_1$2, + f: !showPassword.value, + g: password.value, + h: common_vendor.o(($event) => password.value = $event.detail.value), + i: showPassword.value ? 1 : "", + j: common_vendor.o(togglePassword), + k: common_vendor.t(codeText.value), + l: second.value > 0 ? 1 : "", + m: common_vendor.o(getCode), + n: common_vendor.o(handleReset) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-79044ba6"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/forget.json b/unpackage/dist/dev/mp-weixin/pages/login/forget.json new file mode 100644 index 0000000..84d9bb4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/forget.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "忘记密码", + "navigationStyle": "custom", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/forget.wxml b/unpackage/dist/dev/mp-weixin/pages/login/forget.wxml new file mode 100644 index 0000000..3a7cfee --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/forget.wxml @@ -0,0 +1 @@ +返回忘记密码若您忘记了密码,可在此重新设置新密码。{{k}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/forget.wxss b/unpackage/dist/dev/mp-weixin/pages/login/forget.wxss new file mode 100644 index 0000000..fc6e5f8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/forget.wxss @@ -0,0 +1,116 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +page.data-v-79044ba6 { + background-color: #FFFFFF; +} +.content.data-v-79044ba6 { + display: flex; + flex-direction: column; + justify-content: center; + background-color: #FFFFFF; +} +.tishi.data-v-79044ba6 { + color: #999999; + font-size: 28rpx; + line-height: 50rpx; + margin-bottom: 50rpx; +} +.list.data-v-79044ba6 { + display: flex; + flex-direction: column; + padding-top: 50rpx; + padding-left: 70rpx; + padding-right: 70rpx; +} +.list .list-call.data-v-79044ba6 { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 100rpx; + color: #333333; + background: #F5F7FB; + border-radius: 16rpx; + border: 2rpx solid #F5F7FB; + margin-top: 30rpx; + padding: 0 30rpx; +} +.list .list-call .img.data-v-79044ba6 { + width: 30rpx; + height: 36rpx; +} +.list .list-call .sl-input.data-v-79044ba6 { + flex: 1; + text-align: left; + font-size: 32rpx; + margin-left: 16rpx; +} +.list .list-call .eye-icon.data-v-79044ba6 { + font-size: 36rpx; + color: #999; +} +.list .list-call .eye-icon.data-v-79044ba6::before { + content: "\e69c"; + /* 闭眼图标的unicode */ +} +.list .list-call .eye-icon.eye-active.data-v-79044ba6 { + color: #3D83F6; +} +.list .list-call .eye-icon.eye-active.data-v-79044ba6::before { + content: "\e69d"; + /* 睁眼图标的unicode */ +} +.list .list-call .yzm.data-v-79044ba6 { + width: 200rpx; + height: 60rpx; + text-align: center; + font-size: 30rpx; + color: #3D83F6; +} +.list .list-call .yzm.yzms.data-v-79044ba6 { + color: #999999; +} +.padding-lr.data-v-79044ba6 { + padding-left: 70rpx; + padding-right: 70rpx; +} +.button-login.data-v-79044ba6 { + color: #FFFFFF; + font-size: 34rpx; + width: 100%; + height: 100rpx; + background: linear-gradient(90deg, #3E95F1 0%, #4269F5 100%); + border-radius: 50rpx; + line-height: 100rpx; + text-align: center; + margin-left: auto; + margin-right: auto; + margin-top: 130rpx; +} +.button-hover.data-v-79044ba6 { + opacity: 0.8; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.js b/unpackage/dist/dev/mp-weixin/pages/login/login.js new file mode 100644 index 0000000..ecb50c6 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.js @@ -0,0 +1,99 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const request_api = require("../../request/api.js"); +const _sfc_main = { + __name: "login", + setup(__props) { + const username = common_vendor.ref(""); + const password = common_vendor.ref(""); + const showPassword = common_vendor.ref(true); + const changePassword = () => { + showPassword.value = !showPassword.value; + }; + const handleLogin = async () => { + console.log("点击登录按钮"); + console.log("用户名:", username.value); + console.log("密码:", password.value); + if (!username.value) { + common_vendor.index.showToast({ + icon: "none", + title: "请输入用户名" + }); + return; + } + if (!password.value) { + common_vendor.index.showToast({ + icon: "none", + title: "请输入密码" + }); + return; + } + try { + console.log("开始调用登录接口..."); + const res = await request_api.login({ + username: username.value, + password: password.value + }); + console.log("登录接口返回:", res); + if (res.code === 0) { + if (res.data.token) { + common_vendor.index.setStorageSync("token", res.data.token); + } + const userInfo = { + userId: res.data.userId, + username: res.data.username, + nickName: res.data.nickName, + deptId: res.data.deptId, + deptName: res.data.deptName + }; + common_vendor.index.setStorageSync("userInfo", JSON.stringify(userInfo)); + common_vendor.index.showToast({ + title: "登录成功", + icon: "success" + }); + setTimeout(() => { + common_vendor.index.reLaunch({ + url: "/pages/index/index" + }); + }, 1500); + } else { + common_vendor.index.showToast({ + title: res.msg || "登录失败", + icon: "none" + }); + } + } catch (error) { + console.error("登录失败:", error); + common_vendor.index.showToast({ + title: "网络请求失败", + icon: "none" + }); + } + }; + const goToReport = () => { + common_vendor.index.navigateTo({ + url: "/subpackages/suishoupai/pages/index/index" + }); + }; + return (_ctx, _cache) => { + return { + a: common_assets._imports_0$3, + b: common_assets._imports_0$4, + c: username.value, + d: common_vendor.o(($event) => username.value = $event.detail.value), + e: common_assets._imports_1$2, + f: showPassword.value, + g: password.value, + h: common_vendor.o(($event) => password.value = $event.detail.value), + i: showPassword.value ? "/static/index/cl.png" : "/static/index/op.png", + j: common_vendor.o(changePassword), + k: common_vendor.o(handleLogin), + l: common_assets._imports_3$1, + m: common_vendor.o(goToReport) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-e4e4508d"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.json b/unpackage/dist/dev/mp-weixin/pages/login/login.json new file mode 100644 index 0000000..c6b4aea --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "登录页面", + "navigationStyle": "custom", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxml b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml new file mode 100644 index 0000000..64fb977 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml @@ -0,0 +1 @@ +注册成员账号忘记密码?随手拍举报 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxss b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss new file mode 100644 index 0000000..01d4b4a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss @@ -0,0 +1,182 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +page.data-v-e4e4508d { + background-color: #FFFFFF; +} +.content.data-v-e4e4508d { + display: flex; + flex-direction: column; + justify-content: center; + background-color: #FFFFFF; +} +.header.data-v-e4e4508d { + width: 100%; + position: relative; + margin-bottom: 0; +} +.header .bg-image.data-v-e4e4508d { + width: 100%; + vertical-align: bottom; +} +.login.data-v-e4e4508d { + position: absolute; + top: 50%; + color: #666666; + font-size: 28rpx; +} +.list.data-v-e4e4508d { + display: flex; + flex-direction: column; + padding-top: 50rpx; + padding-left: 70rpx; + padding-right: 70rpx; + background-color: #FFFFFF; + margin-top: -2rpx; + /* 消除可能的间隙 */ +} +.list .list-call.data-v-e4e4508d { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 100rpx; + color: #333333; + background: #F5F7FB; + border-radius: 16rpx; + border: 2rpx solid #F5F7FB; + margin-top: 30rpx; + padding: 0 30rpx; +} +.list .list-call .img.data-v-e4e4508d { + width: 30rpx; + height: 36rpx; +} +.list .list-call .sl-input.data-v-e4e4508d { + flex: 1; + text-align: left; + font-size: 32rpx; + margin-left: 16rpx; +} +.list .list-call .eye-img.data-v-e4e4508d { + width: 40rpx; + height: 40rpx; +} +.agreement.data-v-e4e4508d { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + font-size: 30rpx; + margin-top: 30rpx; + color: #3D83F6; + text-align: center; + height: 40rpx; + line-height: 40rpx; +} +.agreement .link.data-v-e4e4508d { + font-size: 30rpx; + color: #3D83F6; +} +.agreement .link.data-v-e4e4508d:active { + opacity: 0.8; +} +.padding-lr.data-v-e4e4508d { + padding-left: 70rpx; + padding-right: 70rpx; +} +.button-login.data-v-e4e4508d { + color: #FFFFFF; + font-size: 34rpx; + width: 100%; + height: 100rpx; + background: linear-gradient(90deg, #3E95F1 0%, #4269F5 100%); + border-radius: 50rpx; + line-height: 100rpx; + text-align: center; + margin-left: auto; + margin-right: auto; + margin-top: 130rpx; + border: none; +} +.button-login.data-v-e4e4508d::after { + border: none; +} +.button-report.data-v-e4e4508d { + color: #FFFFFF; + font-size: 34rpx; + width: 100%; + height: 100rpx; + background: linear-gradient(90deg, #FF7878 0%, #F2505B 100%); + border-radius: 50rpx; + line-height: 100rpx; + text-align: center; + margin-left: auto; + margin-right: auto; + display: flex; + align-items: center; + justify-content: center; +} +.margin-top.data-v-e4e4508d { + margin-top: 30rpx; +} +.button-hover.data-v-e4e4508d { + opacity: 0.8; +} +.text-blue.data-v-e4e4508d { + color: #3D83F6; + font-size: 28rpx; +} +.icon-image.data-v-e4e4508d { + width: 36rpx; + height: 36rpx; + margin-right: 8rpx; +} +.text-xl.data-v-e4e4508d { + font-size: 36rpx; +} +.text-black.data-v-e4e4508d { + color: #000000; +} +.text-bold.data-v-e4e4508d { + font-weight: bold; +} +.padding.data-v-e4e4508d { + padding: 30rpx; +} +.padding-top.data-v-e4e4508d { + padding-top: 15rpx; +} +.protocol-box.data-v-e4e4508d { + display: flex; + justify-content: center; + margin-top: 40rpx; +} +.protocol-box .protocol-link.data-v-e4e4508d { + font-size: 28rpx; + color: #3D83F6; + text-decoration: underline; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/reg.js b/unpackage/dist/dev/mp-weixin/pages/login/reg.js new file mode 100644 index 0000000..48f760d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/reg.js @@ -0,0 +1,201 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +if (!Array) { + const _component_cu_custom = common_vendor.resolveComponent("cu-custom"); + const _easycom_up_input2 = common_vendor.resolveComponent("up-input"); + const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item"); + const _easycom_up_form2 = common_vendor.resolveComponent("up-form"); + (_component_cu_custom + _easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_form2)(); +} +const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js"; +const _easycom_up_form_item = () => "../../uni_modules/uview-plus/components/u-form-item/u-form-item.js"; +const _easycom_up_form = () => "../../uni_modules/uview-plus/components/u-form/u-form.js"; +if (!Math) { + (_easycom_up_input + _easycom_up_form_item + _easycom_up_form)(); +} +const _sfc_main = { + __name: "reg", + setup(__props) { + const phone = common_vendor.ref(""); + const password = common_vendor.ref(""); + const code = common_vendor.ref(""); + const invitation = common_vendor.ref(""); + const second = common_vendor.ref(0); + common_vendor.ref(false); + const state = common_vendor.reactive({ + showSex: false, + model1: { + userInfo: { + name: "uview-plus UI", + sex: "" + } + }, + rules: { + "userInfo.name": { + type: "string", + required: true, + message: "请填写姓名", + trigger: ["blur", "change"] + } + } + }); + common_vendor.computed(() => { + if (second.value === 0) { + return "获取验证码"; + } else { + const secondStr = second.value < 10 ? `0${second.value}` : second.value; + return `重新获取${secondStr}`; + } + }); + const handleRegister = () => { + if (phone.value.length !== 11) { + common_vendor.index.showToast({ + icon: "none", + title: "手机号不正确" + }); + return; + } + if (password.value.length < 6) { + common_vendor.index.showToast({ + icon: "none", + title: "密码不正确" + }); + return; + } + if (code.value.length !== 4) { + common_vendor.index.showToast({ + icon: "none", + title: "验证码不正确" + }); + return; + } + common_vendor.index.request({ + url: "http://example.com/api/register", + data: { + phone: phone.value, + password: password.value, + code: code.value, + invitation: invitation.value + }, + method: "POST", + dataType: "json", + success: (res) => { + if (res.data.code != 200) { + common_vendor.index.showToast({ + title: res.data.msg || "注册失败", + icon: "none" + }); + } else { + common_vendor.index.showToast({ + title: res.data.msg || "注册成功" + }); + setTimeout(() => { + common_vendor.index.navigateBack(); + }, 1500); + } + }, + fail: () => { + common_vendor.index.showToast({ + title: "网络请求失败", + icon: "none" + }); + } + }); + }; + common_vendor.onUnmounted(() => { + }); + return (_ctx, _cache) => { + return { + a: common_vendor.p({ + isBack: true + }), + b: common_vendor.p({ + border: "none", + placeholder: "请输入企业名称", + inputAlign: "right" + }), + c: common_vendor.sr("item1", "561d431d-2,561d431d-1"), + d: common_vendor.p({ + label: "加入企业", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + e: common_vendor.p({ + border: "none", + placeholder: "请输入", + inputAlign: "right" + }), + f: common_vendor.sr("item1", "561d431d-4,561d431d-1"), + g: common_vendor.p({ + required: true, + label: "真实姓名", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + h: common_vendor.p({ + border: "none", + placeholder: "选择", + inputAlign: "right" + }), + i: common_vendor.sr("item1", "561d431d-6,561d431d-1"), + j: common_vendor.p({ + required: true, + label: "选择分组/部门", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "120" + }), + k: common_vendor.p({ + border: "none", + placeholder: "请输入手机号码", + inputAlign: "right" + }), + l: common_vendor.sr("item1", "561d431d-8,561d431d-1"), + m: common_vendor.p({ + required: true, + label: "手机号码", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + n: common_vendor.p({ + border: "none", + placeholder: "请输入密码", + inputAlign: "right" + }), + o: common_vendor.sr("item1", "561d431d-10,561d431d-1"), + p: common_vendor.p({ + required: true, + label: "密码", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + q: common_vendor.p({ + border: "none", + placeholder: "请输入密码", + inputAlign: "right" + }), + r: common_vendor.sr("item1", "561d431d-12,561d431d-1"), + s: common_vendor.p({ + required: true, + label: "确认密码", + prop: "userInfo.name", + borderBottom: true, + ["label-width"]: "90" + }), + t: common_vendor.sr("form1", "561d431d-1"), + v: common_vendor.p({ + labelPosition: "left", + model: state.model1, + rules: state.rules + }), + w: common_vendor.o(handleRegister) + }; + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-561d431d"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/reg.json b/unpackage/dist/dev/mp-weixin/pages/login/reg.json new file mode 100644 index 0000000..a0a405a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/reg.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "注册账号", + "navigationStyle": "custom", + "usingComponents": { + "up-input": "../../uni_modules/uview-plus/components/u-input/u-input", + "up-form-item": "../../uni_modules/uview-plus/components/u-form-item/u-form-item", + "up-form": "../../uni_modules/uview-plus/components/u-form/u-form" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/reg.wxml b/unpackage/dist/dev/mp-weixin/pages/login/reg.wxml new file mode 100644 index 0000000..8dfd875 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/reg.wxml @@ -0,0 +1 @@ +返回注册新成员账号 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/reg.wxss b/unpackage/dist/dev/mp-weixin/pages/login/reg.wxss new file mode 100644 index 0000000..ff983e3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/reg.wxss @@ -0,0 +1,128 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +page.data-v-561d431d { + background-color: #FFFFFF; +} +.content.data-v-561d431d { + display: flex; + flex-direction: column; + justify-content: center; + background-color: #FFFFFF; +} +.header.data-v-561d431d { + width: 100%; + position: relative; +} +.header image.data-v-561d431d { + width: 100%; +} +.list.data-v-561d431d { + display: flex; + flex-direction: column; + padding-top: 50rpx; + padding-left: 70rpx; + padding-right: 70rpx; +} +.list .list-call.data-v-561d431d { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + height: 100rpx; + color: #333333; + background: #F5F7FB; + border-radius: 16rpx; + border: 2rpx solid #F5F7FB; + margin-top: 30rpx; + padding: 0 30rpx; +} +.list .list-call .img.data-v-561d431d { + width: 30rpx; + height: 36rpx; +} +.list .list-call .sl-input.data-v-561d431d { + flex: 1; + text-align: left; + font-size: 32rpx; + margin-left: 16rpx; +} +.list .list-call .eye-icon.data-v-561d431d { + font-size: 36rpx; + color: #999; +} +.list .list-call .eye-icon.data-v-561d431d::before { + content: "\e69c"; + /* 闭眼图标的unicode */ +} +.list .list-call .eye-icon.eye-active.data-v-561d431d { + color: #3D83F6; +} +.list .list-call .eye-icon.eye-active.data-v-561d431d::before { + content: "\e69d"; + /* 睁眼图标的unicode */ +} +.list .list-call .yzm.data-v-561d431d { + width: 200rpx; + height: 60rpx; + text-align: center; + font-size: 30rpx; + color: #3D83F6; +} +.list .list-call .yzm.yzms.data-v-561d431d { + color: #999999; +} +.code-icon.data-v-561d431d::before { + content: "\e682"; + /* 验证码图标的unicode */ + color: #999; + font-size: 36rpx; +} +.invite-icon.data-v-561d431d::before { + content: "\e683"; + /* 邀请码图标的unicode */ + color: #999; + font-size: 36rpx; +} +.button-login.data-v-561d431d { + color: #FFFFFF; + font-size: 34rpx; + width: 100%; + height: 100rpx; + background: linear-gradient(90deg, #3E95F1 0%, #4269F5 100%); + border-radius: 50rpx; + line-height: 100rpx; + text-align: center; + margin-left: auto; + margin-right: auto; + margin-top: 130rpx; +} +.button-hover.data-v-561d431d { + opacity: 0.8; +} +.data-v-561d431d .up-input__input { + color: #3D83F6; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/success.js b/unpackage/dist/dev/mp-weixin/pages/login/success.js new file mode 100644 index 0000000..4d412b9 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/success.js @@ -0,0 +1,18 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const common_assets = require("../../common/assets.js"); +const success = true; +const _sfc_main = { + __name: "success", + setup(__props) { + return (_ctx, _cache) => { + return common_vendor.e({ + a: success + }, { + b: common_assets._imports_0$5 + }); + }; + } +}; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-b27d95ff"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/login/success.json b/unpackage/dist/dev/mp-weixin/pages/login/success.json new file mode 100644 index 0000000..d53efc4 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/success.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "注册成功", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/success.wxml b/unpackage/dist/dev/mp-weixin/pages/login/success.wxml new file mode 100644 index 0000000..c771a7b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/success.wxml @@ -0,0 +1 @@ +注册成功等待管理员确认后,才能进行账号登录注册异常员工已注册,如账号异常请联系管理员 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/success.wxss b/unpackage/dist/dev/mp-weixin/pages/login/success.wxss new file mode 100644 index 0000000..479ecd0 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/success.wxss @@ -0,0 +1,6 @@ + +.but.data-v-b27d95ff { + width: 248rpx; + height: 88rpx; + margin-top: 100rpx; +} diff --git a/unpackage/dist/dev/mp-weixin/pages/map/map.js b/unpackage/dist/dev/mp-weixin/pages/map/map.js new file mode 100644 index 0000000..b84073a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/map/map.js @@ -0,0 +1,8 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = {}; +function _sfc_render(_ctx, _cache) { + return {}; +} +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e06b858f"]]); +wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/map/map.json b/unpackage/dist/dev/mp-weixin/pages/map/map.json new file mode 100644 index 0000000..acf108d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/map/map.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "一张图", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/map/map.wxml b/unpackage/dist/dev/mp-weixin/pages/map/map.wxml new file mode 100644 index 0000000..b3d8e42 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/map/map.wxml @@ -0,0 +1 @@ +一张图功能开发中... \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/map/map.wxss b/unpackage/dist/dev/mp-weixin/pages/map/map.wxss new file mode 100644 index 0000000..80c106b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/map/map.wxss @@ -0,0 +1,30 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.content.data-v-e06b858f { + min-height: 100vh; + background: #EBF2FC; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.js b/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.js index 58b7d1f..c316e50 100644 --- a/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.js +++ b/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.js @@ -1,9 +1,11 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); +const request_api = require("../../request/api.js"); if (!Array) { const _easycom_up_picker2 = common_vendor.resolveComponent("up-picker"); const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup"); - (_easycom_up_picker2 + _easycom_u_popup2)(); + const _component_TabBar = common_vendor.resolveComponent("TabBar"); + (_easycom_up_picker2 + _easycom_u_popup2 + _component_TabBar)(); } const _easycom_up_picker = () => "../../uni_modules/uview-plus/components/u-picker/u-picker.js"; const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js"; @@ -13,6 +15,10 @@ if (!Math) { const _sfc_main = { __name: "membermanagemen", setup(__props) { + const list = common_vendor.ref([]); + request_api.getMemberList().then((res) => { + list.value = res.data; + }); const showPopup = common_vendor.ref(false); const showDeptPicker = common_vendor.ref(false); const formData = common_vendor.reactive({ @@ -22,34 +28,90 @@ const _sfc_main = { password: "", department: "" }); - const handleSubmit = () => { + const handleSubmit = async () => { if (!formData.username) { - common_vendor.index.showToast({ title: "请输入用户名", icon: "none" }); + common_vendor.index.showToast({ + title: "请输入用户名", + icon: "none" + }); return; } if (!formData.password || formData.password.length < 6 || formData.password.length > 16) { - common_vendor.index.showToast({ title: "请输入6-16位密码", icon: "none" }); + common_vendor.index.showToast({ + title: "请输入6-16位密码", + icon: "none" + }); return; } - if (!formData.department) { - common_vendor.index.showToast({ title: "请选择主部门", icon: "none" }); - return; + const params = { + userName: formData.username, + nickName: formData.nickname || "", + phonenumber: formData.phone || "", + password: formData.password, + roleType: "common" + }; + try { + const res = await request_api.addMember(params); + if (res.code === 0) { + common_vendor.index.showToast({ + title: "添加成功", + icon: "success" + }); + showPopup.value = false; + formData.username = ""; + formData.nickname = ""; + formData.phone = ""; + formData.password = ""; + formData.department = ""; + } else { + common_vendor.index.showToast({ + title: res.msg || "添加失败", + icon: "none" + }); + } + } catch (error) { + console.error("添加成员失败:", error); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); } - console.log("提交数据:", formData); - common_vendor.index.showToast({ title: "添加成功", icon: "success" }); - showPopup.value = false; }; - const Lock = () => { + const Lock = (item) => { + const isLocked = item.lockStatus === 1; + const actionText = isLocked ? "解锁" : "锁定"; + const newLockStatus = isLocked ? 0 : 1; common_vendor.index.showModal({ title: "提示", - content: "确定要锁定该成员吗?", + content: `确定要${actionText}该成员吗?`, confirmColor: "#2667E9", - success: (res) => { + success: async (res) => { if (res.confirm) { - console.log("用户点击确定"); - common_vendor.index.showToast({ title: "锁定成功", icon: "success" }); - } else if (res.cancel) { - console.log("用户点击取消"); + try { + const result = await request_api.lockOrUnlockMember({ + userId: item.userId, + lockStatus: newLockStatus + }); + if (result.code === 0) { + common_vendor.index.showToast({ + title: `${actionText}成功`, + icon: "success" + }); + item.lockStatus = newLockStatus; + item.statusName = newLockStatus === 1 ? "已锁定" : "正常"; + } else { + common_vendor.index.showToast({ + title: result.msg || `${actionText}失败`, + icon: "none" + }); + } + } catch (error) { + console.error(`${actionText}成员失败:`, error); + common_vendor.index.showToast({ + title: "请求失败", + icon: "none" + }); + } } } }); @@ -58,31 +120,58 @@ const _sfc_main = { const columns = common_vendor.reactive([ ["湘西自治州和谐网络科技有限公司", "湘西自治州和谐云科技有限公司"] ]); + const deptColumns = common_vendor.reactive([ + ["湘西自治州和谐网络科技有限公司", "湘西自治州和谐云科技有限公司", "研发部门", "深圳总公司", "若依科技"] + ]); + const onDeptConfirm = (e) => { + console.log("选择的部门:", e); + if (e.value && e.value.length > 0) { + formData.department = e.value[0]; + } + showDeptPicker.value = false; + }; return (_ctx, _cache) => { return { - a: common_vendor.o(($event) => show.value = true), + a: common_vendor.f(list.value, (item, index, i0) => { + return { + a: common_vendor.o(($event) => show.value = true, item.id), + b: "06d9f81b-0-" + i0, + c: common_vendor.t(item.nickName), + d: common_vendor.t(item.statusName), + e: common_vendor.t(item.phonenumber), + f: common_vendor.t(item.lockStatus === 1 ? "解锁" : "锁定"), + g: common_vendor.o(($event) => Lock(item), item.id), + h: item.id + }; + }), b: common_vendor.p({ show: show.value, columns }), - c: common_vendor.o(($event) => Lock()), - d: common_vendor.o(($event) => showPopup.value = true), - e: common_vendor.o(($event) => showPopup.value = false), - f: formData.username, - g: common_vendor.o(($event) => formData.username = $event.detail.value), - h: formData.nickname, - i: common_vendor.o(($event) => formData.nickname = $event.detail.value), - j: formData.phone, - k: common_vendor.o(($event) => formData.phone = $event.detail.value), - l: formData.password, - m: common_vendor.o(($event) => formData.password = $event.detail.value), - n: common_vendor.t(formData.department || "请选择主部门"), - o: common_vendor.n(formData.department ? "" : "text-gray"), - p: common_vendor.o(($event) => showDeptPicker.value = true), - q: common_vendor.o(($event) => showPopup.value = false), - r: common_vendor.o(handleSubmit), - s: common_vendor.o(($event) => showPopup.value = false), - t: common_vendor.p({ + c: common_vendor.o(($event) => showPopup.value = true), + d: common_vendor.o(($event) => showPopup.value = false), + e: formData.username, + f: common_vendor.o(($event) => formData.username = $event.detail.value), + g: formData.nickname, + h: common_vendor.o(($event) => formData.nickname = $event.detail.value), + i: formData.phone, + j: common_vendor.o(($event) => formData.phone = $event.detail.value), + k: formData.password, + l: common_vendor.o(($event) => formData.password = $event.detail.value), + m: common_vendor.t(formData.department || "请选择主部门"), + n: common_vendor.n(formData.department ? "" : "text-gray"), + o: common_vendor.o(($event) => showDeptPicker.value = true), + p: common_vendor.o(onDeptConfirm), + q: common_vendor.o(($event) => showDeptPicker.value = false), + r: common_vendor.o(($event) => showDeptPicker.value = false), + s: common_vendor.p({ + show: showDeptPicker.value, + columns: deptColumns + }), + t: common_vendor.o(($event) => showPopup.value = false), + v: common_vendor.o(handleSubmit), + w: common_vendor.o(($event) => showPopup.value = false), + x: common_vendor.p({ show: showPopup.value, mode: "center", round: "20" diff --git a/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.wxml b/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.wxml index 9de6555..29cf532 100644 --- a/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/membermanagemen/membermanagemen.wxml @@ -1 +1 @@ -湘西自治州和谐网络科技有限公司负责人罗燚正常手机设置:未设置登录IP:45.135.228.172添加成员×用户名*昵称手机号密码*主部门*{{n}} \ No newline at end of file +湘西自治州和谐网络科技有限公司负责人{{item.c}}{{item.d}}手机设置:{{item.e}}登录IP:45.135.228.172添加成员×用户名*昵称手机号密码*主部门*{{m}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/personalcenter/helpcenter.js b/unpackage/dist/dev/mp-weixin/pages/personalcenter/helpcenter.js index 924b162..092f395 100644 --- a/unpackage/dist/dev/mp-weixin/pages/personalcenter/helpcenter.js +++ b/unpackage/dist/dev/mp-weixin/pages/personalcenter/helpcenter.js @@ -5,7 +5,7 @@ const _sfc_main = {}; function _sfc_render(_ctx, _cache) { return { a: common_assets._imports_0$2, - b: common_assets._imports_1$2 + b: common_assets._imports_1$1 }; } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); diff --git a/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.js b/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.js index 56eee9b..cf8175c 100644 --- a/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.js +++ b/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.js @@ -24,19 +24,37 @@ const _sfc_main = { url: "/pages/personalcenter/account" }); }; + const handleLogout = () => { + common_vendor.index.showModal({ + title: "提示", + content: "确定要退出登录吗?", + success: function(res) { + if (res.confirm) { + console.log("用户点击确定"); + common_vendor.index.clearStorageSync(); + common_vendor.index.reLaunch({ + url: "/pages/login/login" + }); + } else if (res.cancel) { + console.log("用户点击取消"); + } + } + }); + }; return (_ctx, _cache) => { return { a: common_assets._imports_0$1, b: common_vendor.o(($event) => Helpcenter()), - c: common_assets._imports_1$1, - d: common_assets._imports_2$1, + c: common_assets._imports_1, + d: common_assets._imports_2, e: common_vendor.o(($event) => Account()), - f: common_assets._imports_3$1, + f: common_assets._imports_3, g: common_vendor.o(($event) => notification()), - h: common_assets._imports_4$1, + h: common_assets._imports_4, i: common_assets._imports_5, j: common_vendor.o(($event) => Settings()), - k: common_assets._imports_0$1 + k: common_assets._imports_0$1, + l: common_vendor.o(($event) => handleLogout()) }; }; } diff --git a/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.wxml b/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.wxml index 2e169c3..d9844fc 100644 --- a/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/personalcenter/my.wxml @@ -1 +1 @@ -我的测试17374339800帮助中心智能客服账号安全新消息通知清除缓存通用设置关于 \ No newline at end of file +我的测试17374339800帮助中心智能客服账号安全新消息通知清除缓存通用设置关于 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json index d39d899..9988bdf 100644 --- a/unpackage/dist/dev/mp-weixin/project.config.json +++ b/unpackage/dist/dev/mp-weixin/project.config.json @@ -22,24 +22,7 @@ "libVersion": "3.12.0", "appid": "touristappid", "projectname": "sanchayibaoguang", - "condition": { - "search": { - "current": -1, - "list": [] - }, - "conversation": { - "current": -1, - "list": [] - }, - "game": { - "current": -1, - "list": [] - }, - "miniprogram": { - "current": -1, - "list": [] - } - }, + "condition": {}, "editorSetting": { "tabIndent": "insertSpaces", "tabSize": 2 diff --git a/unpackage/dist/dev/mp-weixin/project.private.config.json b/unpackage/dist/dev/mp-weixin/project.private.config.json deleted file mode 100644 index 81682a9..0000000 --- a/unpackage/dist/dev/mp-weixin/project.private.config.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", - "condition": { - "miniprogram": { - "list": [ - { - "name": "pages/index/index", - "pathName": "pages/index/index", - "query": "", - "launchMode": "default", - "scene": null - } - ] - } - } -} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/request/api.js b/unpackage/dist/dev/mp-weixin/request/api.js index 4134280..2d2fbd5 100644 --- a/unpackage/dist/dev/mp-weixin/request/api.js +++ b/unpackage/dist/dev/mp-weixin/request/api.js @@ -33,6 +33,13 @@ function addHiddenDanger(params) { data: params }); } +function assignHiddenDanger(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/assign", + method: "POST", + data: params + }); +} function getMyHiddenDangerList(params) { return request_request.requestAPI({ url: "/frontend/hazard/my/list", @@ -47,6 +54,13 @@ function getHiddenDangerDetail(params) { data: params }); } +function getHiddenDangerList(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/my/list", + method: "GET", + data: params + }); +} function submitRectification(params) { return request_request.requestAPI({ url: "/frontend/hazard/rectify", @@ -60,12 +74,80 @@ function getHiddenDangerLabelList() { method: "GET" }); } +function getDepartmentPersonUsers(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/dept/users", + method: "GET", + data: params + }); +} +function addMember(params) { + return request_request.requestAPI({ + url: "/frontend/member/add", + method: "POST", + data: params + }); +} +function getMemberList(params) { + return request_request.requestAPI({ + url: "/frontend/member/list", + method: "GET", + data: params + }); +} +function lockOrUnlockMember(params) { + return request_request.requestAPI({ + url: "/frontend/member/lock", + method: "POST", + data: params + }); +} +function applyDelete(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/writeoff/apply", + method: "POST", + data: params + }); +} +function getMyWriteOffList(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/writeoff/my/list", + method: "GET", + data: params + }); +} +function acceptanceRectification(params) { + return request_request.requestAPI({ + url: "/frontend/hazard/verify", + method: "POST", + data: params + }); +} +function login(params) { + return request_request.requestAPI({ + url: "/frontend/auth/login", + method: "POST", + data: params, + noAuth: true + // 登录接口不需要 Authorization + }); +} +exports.acceptanceRectification = acceptanceRectification; exports.addHiddenDanger = addHiddenDanger; +exports.addMember = addMember; +exports.applyDelete = applyDelete; +exports.assignHiddenDanger = assignHiddenDanger; exports.enterCheckPlan = enterCheckPlan; exports.getCheckPlanList = getCheckPlanList; exports.getCheckTaskDetail = getCheckTaskDetail; +exports.getDepartmentPersonUsers = getDepartmentPersonUsers; exports.getHiddenDangerDetail = getHiddenDangerDetail; exports.getHiddenDangerLabelList = getHiddenDangerLabelList; +exports.getHiddenDangerList = getHiddenDangerList; +exports.getMemberList = getMemberList; exports.getMyHiddenDangerList = getMyHiddenDangerList; +exports.getMyWriteOffList = getMyWriteOffList; +exports.lockOrUnlockMember = lockOrUnlockMember; +exports.login = login; exports.submitCheckResult = submitCheckResult; exports.submitRectification = submitRectification; diff --git a/unpackage/dist/dev/mp-weixin/request/request.js b/unpackage/dist/dev/mp-weixin/request/request.js index 48c7580..6a2c6b9 100644 --- a/unpackage/dist/dev/mp-weixin/request/request.js +++ b/unpackage/dist/dev/mp-weixin/request/request.js @@ -4,13 +4,12 @@ const request_luchRequest_core_Request = require("./luch-request/core/Request.js const baseUrl = "http://192.168.1.168:5004"; new request_luchRequest_core_Request.Request({ baseURL: baseUrl, - timeout: 1e4, - header: { - // 'content-type': 'application/json', - "Authorization": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNzQ5NGU2MzAtNTRlYS00ZTM5LWIxYjUtNzc2MzY5NTRhYmJmIn0.7l5CMwFitlpXniZ6PTR5DqN8ASFTFZ1DCUZKjOtr5CpuXWiPHeSW19nY8XKfGdxMvB7j-OnXuSznLRjx-N7K9g" - } + timeout: 1e4 }); -const AUTH_TOKEN = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNTQyMjJlODYtZDUyNS00ZTA0LWI3Y2QtMGU1ZWYzYmIwM2EwIn0.x8zPXafDGVjIDIcAdWsWT3F2fU20QHVLFR15b251LfwpfRt_UaDo1-bvHEyi8hxqVkiStOqi09TTUTPBgjPYkw"; +const getToken = () => { + const token = common_vendor.index.getStorageSync("token"); + return token ? `Bearer ${token}` : ""; +}; const isEmptyObject = (obj) => { return Object.keys(obj).length === 0; }; @@ -31,21 +30,28 @@ function showToast(title) { }); } const requestAPI = (config) => { - let { url, method = "GET", data = {} } = typeof config === "object" && config.url ? config : { url: config, method: arguments[1] || "GET", data: arguments[2] || {} }; + let { url, method = "GET", data = {}, noAuth = false } = typeof config === "object" && config.url ? config : { url: config, method: arguments[1] || "GET", data: arguments[2] || {} }; if (method == "GET" && !isEmptyObject(data)) { url += "?" + objectToQueryString(data); } common_vendor.index.showLoading({ title: "加载中..." }); + const header = { + "Content-Type": "application/json" + }; + if (!noAuth) { + const token = getToken(); + if (token) { + header["Authorization"] = token; + } + } return new Promise((resolve, reject) => { common_vendor.index.request({ url: baseUrl + url, method, data, - header: { - "Authorization": AUTH_TOKEN - }, + header, success: (res) => { common_vendor.index.hideLoading(); if (res.statusCode !== 200) { @@ -57,8 +63,14 @@ const requestAPI = (config) => { if (res.data.code === 200 || res.data.code === 0) { resolve(res.data); } else if (res.data.code === 401) { - common_vendor.index.removeStorageSync("_user_token_"); + common_vendor.index.removeStorageSync("token"); + common_vendor.index.removeStorageSync("userInfo"); showToast("登录已过期,请重新登录"); + setTimeout(() => { + common_vendor.index.reLaunch({ + url: "/pages/login/login" + }); + }, 1500); reject("401"); } else { showToast(res.data.msg || "请求失败"); @@ -83,6 +95,6 @@ const requestAPI = (config) => { }); }); }; -exports.AUTH_TOKEN = AUTH_TOKEN; exports.baseUrl = baseUrl; +exports.getToken = getToken; exports.requestAPI = requestAPI; diff --git a/unpackage/dist/dev/mp-weixin/static/index/Bell2x.png b/unpackage/dist/dev/mp-weixin/static/index/Bell2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2db94f2c87c6fa83422d2d469ee22181777cb7b GIT binary patch literal 48423 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 W?PpGoM1{ow0000HMj=~!Fl<< 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 ZvGQXW^N>dU76|y00V)iXiy3|T{{XkaAz=Uj literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/index/cl.png b/unpackage/dist/dev/mp-weixin/static/index/cl.png new file mode 100644 index 0000000000000000000000000000000000000000..66d6ea1066f12f496a3be90c2d78fc9bd16c7822 GIT binary patch literal 2914 zcmcgud0Z3M8jTiEQ0p!z3Td)q&%Kk> z@ae$=+(x-^IGh2YAsQX~lsK-wF6_P1?%B*fT&a*bG>6k~sN?Fz$;|TLa9oOr2m@mX zdj~>DGap7tBgVIzDHhG)1Wd70FtQk9xJE3Ru&8(~rR6*>fvR|s(l9|7rN&~2kR?`Z z){^NF$dbi~66H;q%nh(ZYydOHz+Ai8WT7Fuiq{brV%v^xkjL$SFpE{ZKu1EZAuOD$ zCaoA(%9jC%P$J^Wm3*O0pcF|aaYX{592Cewp%@SdA%P4ME4f`i9-GaI;*d`Bc2_R; zO~s307zzSGo6W|ziTR{88Wbv(N>CsIMIwMj0Cb{-f$e~W9@`y3gVBhUpcsO*a2*k0 zBN@-Acr4S-63kRjSPR`H6Dt^Khbd6V7dT4l0HR0_j*7RMI+CLZh?y`mW?^U+E9}8i zF(gCMG2|bF?iqe50V{1-SWk{uaxt5GQqYVxfi0s;kXNGVh(rnlbr?;?TMHnzAwNr4a{IF9=m2rKp+A{iU^?$k}4pv zVxm9+2?U+cFcKy3#NR{ZkU$AZg)c!_!=Nw&|0NhjAe^+CVYXbt3`b)iWr^l-dqjlP zq=~e$iCK2y7yCoi>ToNG6DD?m)&&P~L$zv|P$`oEBEGPLZde!;YM~j}f?%N<6_1sM zPY@`C%TTdQ&bkSg3lRX5N|b;RF&Y6BW$&y2LQINu&)1Mhyu$#F`JHh)RV~#V8ERaWM+u zFeU;}r9=cMg#sBM6G;V#Ow6*97#*hX@DUV3(Ci8)c5S0sSX@`jL~uK-1Hp)6OQ?8= z!wVS7>*^+6p~v6K+%?}8gRw#X#3h~CX%c5_uoVl8X0`hZ4}yP0orV+soVXm8BSHm+ z0VpPt0wSpd1r(T(U00O&aLL$ey3;#Xw-+1=FC*CCq5(8VJG4^Z)dH;JUf6tSh z9RF{nfQ|#T(_7$gZPzjO!r{vK=#Vqzlyq zM#L*c!(=WLo2i@UlK@+5x7#c3$09hAbn*(7qls2&s%4(bQ0f`_T+ z)=c~HO|hT%xDR!u>$IVSZ5kjQe&XJ?A8*1Z@sxDp-W8}C`Yi|f;fjkmb#{dca^Cb<1;nUBUi zLSH{Nxn=hKYvE}=bXvt}tcs}cbcapf|FQ+En*Ax5_9!x^ZJX1%zMji>X^#c$NWbd8 zzt`sE;kIFM3wX!Uh7V?jOs|Z4@4JUzA4}iodYw_1ZOi59rxIjU;_&l7&8zl+AK$E9 zN5~TQ`3Kb>_Vbui_atZs zw>&r3{AKacb1Uy#nwpo($H-UZX-%7)3tQ4BSAX_2KIcF~-%Fa_&x&e--TBe7CwY;9 z%0}PfP{WFlwImFGlI+rZ^|zTDjs)zaGS6JQ#Yk|*C2Yfu?b?HA=Z*IqbnW->0o2m4f{G6H%bo;3E)%C3t z^*6ZqO28z^L%RikyyqZ~hrv@n~ zK2c^++-@;P9S(>H_;S0qlV9!Zsg;@K8_sy&vf$NGQ+CMVO|cPka~qQbqC8B2rJ7GK z`xMp3K3nD_OUZ3eKc6rHz+FUSJyXJ AvH$=8 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/index/eye.png b/unpackage/dist/dev/mp-weixin/static/index/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..5d037bf70cd9a8327f045a6f0f6993c4920041a7 GIT binary patch literal 1410 zcmV-|1%3L7P)Px)JV``BR9Hu~S8Iq=Wf*?mZ!Q{awXrU2&<_O#4TP11{GpXdWS}Ut;EDzkQsx;q zl_lJ{op*OyO8|5Nm zf({VfhR6g!*9o{nWSxzNw_U7f$7_#l0Zyd1K&cN(!h+xOR(?$)_TKNsy@8>_FIXbG zAXo*$OfSRb?{b@nKJr_+Baz7VKbzHafY~daG$M*H06;k#BI8iB&X+fDnm%;^pjFKp ztt%&(AcfuXXlxHNPk7lX0kZ}B6UJ&$I1b>+$BHH(CO|MC+OfJqfn!5$$o(ReP%f#>{>M+E0McRS*+9OQ+)#3?ujV4(8r$Bk-I^FNUH| z0h;d-vMqX8J6bDK4J>7(0famPm?v0o>)~z3yaLUUVvz%>wNx!BGkhlR}A z-J(pPj`5-A5Kz}Z)as%<0g|f#y;vc08G;4XbxlSUurVGE{alpmPaf8UB;$U=a)!g9 z)z!d~nG+!Dc2y({-@9XOZtL(J0b!GSV&EZiSj4Q277orc5ojL+p~aPN7P|FlAya7} zb@*iqa@LD45LwTWkP~W7WOhQ)KCgptpY~=^hEvAp0M>f=8O7w-LYoT2$;>w(desY< zSXkB{)h;-|l13*8m#cI{0IJHRyByY@Ed$H!2WY#OAIr4f8i;K>Mx4t00?# zM7v_k=?P;gDV)c2Fl94Sb&eyUXDWaV0u=S~V~M;!5DD$2_>i$d*>%ZlnRuOJ+E)e6 z7%d3OeSrLp)#xmTw=ORM8#0bTytpaj$mQlR?-(y+WioRKM2p?ANrJvSFSN%Ye}T-0mO!cV?l*v2m>iqO%=wC2I}Ok) zjSnPw66qDeMJRR2BfJLbub!c-^}?KJ z&{zp2_PAA?0j;SQS&YM>l#Qh!$Gm{r{ZjnsB*I(>TF8esvG50Azr@Y!$lbqDFWV~Z zMh6eh^DF-d2n&k)mT7Joi1i%(&%nHZH~XFW&{GKdj|1X7s7WZKN46UO0Bg<+J5`m3 Q{r~^~07*qoM6N<$f*y4`g>O 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/index/lock.png b/unpackage/dist/dev/mp-weixin/static/index/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..fe9de5a0fa4e4812f5124e2ae9fa7685f81331e1 GIT binary patch literal 780 zcmV+n1M~ceP)Px%#z{m$R9HvtmrZCBK@`W|o7AK%9t17ut%r&VUOY-GTF6D-rZM2LhXxcCEmk~; zpy;tjML|U&2p$9@{n(vt#Xt@U3ija5i(oH8jS4-aB@M}pnKDVYHXpMqwU_K^5C3_; z_x^9@?GC~YJ-9<$2n^2W^F764@g!qx2mtz3;)wVQ02ZRrXf7U)|28Sc7@Wyudi(nN zt|H=Xrxd zhz5JkqAvV0H#M(g%#?F13sZw7A*o|>BKk4B>(>ekjO&PplA ziD;==Fx`&phqDdmU83sH%J3ADKMBZueL)*5;JAualAfrS=h)an?;&B+TJ{8~e+G!$6wFQTP z1YNVG$GKc?@7mg0eOLsI*HK?66n>=B=~4r%cH!#k>QewvHgD&%RGWBX4KU~YLTy5Y z>SfR@*N2L4>#NPQ-PJa7?1F<>y(p!;4FKv(MfwN9xZR7`}W9N0EnBC zLxU~L+U5UR`RB3;JT#byHVvOHxRc#otBucbrBXSVOeVkjj?<&snZDS`;w|4}&Uw&T zJs*q3M%9(YbzL<;vH;NgKfvn@DP__3vv11XxU{*h`=ECDx?;TYABBxw?KsY1MEn#c z`=B{UDYKiV&&uP1en1g94O0000< KMNUMnLSTZ6qHPxd literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/index/op.png b/unpackage/dist/dev/mp-weixin/static/index/op.png new file mode 100644 index 0000000000000000000000000000000000000000..5d037bf70cd9a8327f045a6f0f6993c4920041a7 GIT binary patch literal 1410 zcmV-|1%3L7P)Px)JV``BR9Hu~S8Iq=Wf*?mZ!Q{awXrU2&<_O#4TP11{GpXdWS}Ut;EDzkQsx;q zl_lJ{op*OyO8|5Nm zf({VfhR6g!*9o{nWSxzNw_U7f$7_#l0Zyd1K&cN(!h+xOR(?$)_TKNsy@8>_FIXbG zAXo*$OfSRb?{b@nKJr_+Baz7VKbzHafY~daG$M*H06;k#BI8iB&X+fDnm%;^pjFKp ztt%&(AcfuXXlxHNPk7lX0kZ}B6UJ&$I1b>+$BHH(CO|MC+OfJqfn!5$$o(ReP%f#>{>M+E0McRS*+9OQ+)#3?ujV4(8r$Bk-I^FNUH| z0h;d-vMqX8J6bDK4J>7(0famPm?v0o>)~z3yaLUUVvz%>wNx!BGkhlR}A z-J(pPj`5-A5Kz}Z)as%<0g|f#y;vc08G;4XbxlSUurVGE{alpmPaf8UB;$U=a)!g9 z)z!d~nG+!Dc2y({-@9XOZtL(J0b!GSV&EZiSj4Q277orc5ojL+p~aPN7P|FlAya7} zb@*iqa@LD45LwTWkP~W7WOhQ)KCgptpY~=^hEvAp0M>f=8O7w-LYoT2$;>w(desY< zSXkB{)h;-|l13*8m#cI{0IJHRyByY@Ed$H!2WY#OAIr4f8i;K>Mx4t00?# zM7v_k=?P;gDV)c2Fl94Sb&eyUXDWaV0u=S~V~M;!5DD$2_>i$d*>%ZlnRuOJ+E)e6 z7%d3OeSrLp)#xmTw=ORM8#0bTytpaj$mQlR?-(y+WioRKM2p?ANrJvSFSN%Ye}T-0mO!cV?l*v2m>iqO%=wC2I}Ok) zjSnPw66qDeMJRR2BfJLbub!c-^}?KJ z&{zp2_PAA?0j;SQS&YM>l#Qh!$Gm{r{ZjnsB*I(>TF8esvG50Azr@Y!$lbqDFWV~Z zMh6eh^DF-d2n&k)mT7Joi1i%(&%nHZH~XFW&{GKdj|1X7s7WZKN46UO0Bg<+J5`m3 Q{r~^~07*qoM6N<$fPx$yGcYrR9HvtmoZBNF%-xDuiQ|mi<^U^1vdwASLmQ5Z5YmF){MvFjZ`Z2`c-ELT&vYqT-UuIqUDf4f4B?aSO`({cMiZxsRaP{ z0L*jZjhPEl$`eo64?Y4=VCFZi^;Ra6xeH6LR4Q|cMB)@c4nVinYR%{K`L5CRgRcRk zn7J&a+z$)&;vL6XWagLt`k)PkN+~uPTI-E;I(-v?qg038 zQ-kJpog<>N|Jqs1{3NAJdin!HU$57#PN#DPU~|%NldXPra{CQzI{NSf z06PFo;bw&#M7vj=7+6sV@!;2*t@=3REdLZfwHbc^+4#mZplv6%00000NkvXXu0mjf D;PmHP literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/index/photos.png b/unpackage/dist/dev/mp-weixin/static/index/photos.png new file mode 100644 index 0000000000000000000000000000000000000000..aca5bcd74201130df62d9a4d8280e55c7dd55f4e GIT binary patch literal 609 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/mp-weixin/static/tabBar/组 20264.png b/unpackage/dist/dev/mp-weixin/static/tabBar/home.png similarity index 100% rename from unpackage/dist/dev/mp-weixin/static/tabBar/组 20264.png rename to unpackage/dist/dev/mp-weixin/static/tabBar/home.png diff --git a/unpackage/dist/dev/mp-weixin/static/tabBar/组 20261.png b/unpackage/dist/dev/mp-weixin/static/tabBar/map.png similarity index 100% rename from unpackage/dist/dev/mp-weixin/static/tabBar/组 20261.png rename to unpackage/dist/dev/mp-weixin/static/tabBar/map.png diff --git a/unpackage/dist/dev/mp-weixin/static/tabBar/组 20263.png b/unpackage/dist/dev/mp-weixin/static/tabBar/my.png similarity index 100% rename from unpackage/dist/dev/mp-weixin/static/tabBar/组 20263.png rename to unpackage/dist/dev/mp-weixin/static/tabBar/my.png diff --git a/unpackage/dist/dev/mp-weixin/static/tabBar/组 20262.png b/unpackage/dist/dev/mp-weixin/static/tabBar/warning.png similarity index 100% rename from unpackage/dist/dev/mp-weixin/static/tabBar/组 20262.png rename to unpackage/dist/dev/mp-weixin/static/tabBar/warning.png diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/props.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/props.js new file mode 100644 index 0000000..66aac88 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/props.js @@ -0,0 +1,57 @@ +"use strict"; +const uni_modules_uviewPlus_libs_vue = require("../../libs/vue.js"); +const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js"); +const props = uni_modules_uviewPlus_libs_vue.defineMixin({ + props: { + // input的label提示语 + label: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.label + }, + // 绑定的值 + prop: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.prop + }, + // 绑定的规则 + rules: { + type: Array, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.rules + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: [String, Boolean], + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.labelWidth + }, + // 右侧图标 + rightIcon: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.rightIcon + }, + // 左侧图标 + leftIcon: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.leftIcon + }, + // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 + required: { + type: Boolean, + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.required + }, + leftIconStyle: { + type: [String, Object], + default: () => uni_modules_uviewPlus_libs_config_props.props.formItem.leftIconStyle + } + } +}); +exports.props = props; diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.js new file mode 100644 index 0000000..551a5a8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.js @@ -0,0 +1,142 @@ +"use strict"; +const uni_modules_uviewPlus_components_uFormItem_props = require("./props.js"); +const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js"); +const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js"); +const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js"); +const uni_modules_uviewPlus_libs_config_color = require("../../libs/config/color.js"); +const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js"); +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-form-item", + mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uFormItem_props.props], + data() { + return { + // 错误提示语 + message: "", + parentData: { + // 提示文本的位置 + labelPosition: "left", + // 提示文本对齐方式 + labelAlign: "left", + // 提示文本的样式 + labelStyle: {}, + // 提示文本的宽度 + labelWidth: 45, + // 错误提示方式 + errorType: "message" + }, + color: uni_modules_uviewPlus_libs_config_color.color, + itemRules: [] + }; + }, + // 组件创建完成时,将当前实例保存到u-form中 + computed: { + propsLine() { + return uni_modules_uviewPlus_libs_config_props.props.line; + } + }, + mounted() { + this.init(); + }, + emits: ["click"], + watch: { + // 监听规则的变化 + rules: { + immediate: true, + handler(n) { + this.setRules(n); + } + } + }, + methods: { + addStyle: uni_modules_uviewPlus_libs_function_index.addStyle, + addUnit: uni_modules_uviewPlus_libs_function_index.addUnit, + init() { + this.updateParentData(); + if (!this.parent) { + uni_modules_uviewPlus_libs_function_index.error("u-form-item需要结合u-form组件使用"); + } + }, + // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则 + setRules(rules) { + if (rules.length === 0) { + this.itemRules = []; + return; + } + this.itemRules = rules; + }, + // 获取父组件的参数 + updateParentData() { + this.getParentData("u-form"); + }, + // 移除u-form-item的校验结果 + clearValidate() { + this.message = null; + }, + // 清空当前的组件的校验结果,并重置为初始值 + resetField() { + const value = uni_modules_uviewPlus_libs_function_index.getProperty(this.parent.originalModel, this.prop); + uni_modules_uviewPlus_libs_function_index.setProperty(this.parent.model, this.prop, value); + this.message = null; + }, + // 点击组件 + clickHandler() { + this.$emit("click"); + } + } +}; +if (!Array) { + const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon"); + const _easycom_u_line2 = common_vendor.resolveComponent("u-line"); + (_easycom_up_icon2 + _easycom_u_line2)(); +} +const _easycom_up_icon = () => "../u-icon/u-icon.js"; +const _easycom_u_line = () => "../u-line/u-line.js"; +if (!Math) { + (_easycom_up_icon + _easycom_u_line)(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return common_vendor.e({ + a: _ctx.required || _ctx.leftIcon || _ctx.label + }, _ctx.required || _ctx.leftIcon || _ctx.label ? common_vendor.e({ + b: _ctx.required + }, _ctx.required ? {} : {}, { + c: _ctx.leftIcon + }, _ctx.leftIcon ? { + d: common_vendor.p({ + name: _ctx.leftIcon, + ["custom-style"]: _ctx.leftIconStyle + }) + } : {}, { + e: common_vendor.t(_ctx.label), + f: common_vendor.s($data.parentData.labelStyle), + g: common_vendor.s({ + justifyContent: $data.parentData.labelAlign === "left" ? "flex-start" : $data.parentData.labelAlign === "center" ? "center" : "flex-end" + }), + h: $options.addUnit(_ctx.labelWidth || $data.parentData.labelWidth), + i: (_ctx.labelPosition || $data.parentData.labelPosition) === "left" ? 0 : "5px" + }) : {}, { + j: _ctx.$slots.right + }, _ctx.$slots.right ? {} : {}, { + k: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)), + l: common_vendor.s($options.addStyle(_ctx.customStyle)), + m: common_vendor.s({ + flexDirection: (_ctx.labelPosition || $data.parentData.labelPosition) === "left" ? "row" : "column" + }), + n: !!$data.message && $data.parentData.errorType === "message" + }, !!$data.message && $data.parentData.errorType === "message" ? { + o: common_vendor.t($data.message), + p: $options.addUnit((_ctx.labelPosition || $data.parentData.labelPosition) === "top" ? 0 : _ctx.labelWidth || $data.parentData.labelWidth) + } : {}, { + q: _ctx.borderBottom + }, _ctx.borderBottom ? { + r: common_vendor.p({ + color: $data.message && $data.parentData.errorType === "border-bottom" ? $data.color.error : $options.propsLine.color, + customStyle: `margin-top: ${$data.message && $data.parentData.errorType === "message" ? "5px" : 0}` + }) + } : {}, { + s: !!$data.message && $data.parentData.errorType === "message" ? 1 : "" + }); +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-42bac3de"]]); +wx.createComponent(Component); diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.json b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.json new file mode 100644 index 0000000..0d0f007 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "up-icon": "../u-icon/u-icon", + "u-line": "../u-line/u-line" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxml new file mode 100644 index 0000000..69c0867 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxml @@ -0,0 +1 @@ +*{{o}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxss new file mode 100644 index 0000000..8865d14 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form-item/u-form-item.wxss @@ -0,0 +1,94 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-form-item.data-v-42bac3de { + display: flex; + flex-direction: column; + font-size: 14px; + color: #303133; +} +.u-form-item__body.data-v-42bac3de { + display: flex; + flex-direction: row; + padding: 10px 0; +} +.u-form-item__body__left.data-v-42bac3de { + display: flex; + flex-direction: row; + align-items: center; +} +.u-form-item__body__left__content.data-v-42bac3de { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + padding-right: 10rpx; + flex: 1; +} +.u-form-item__body__left__content__icon.data-v-42bac3de { + margin-right: 8rpx; +} +.u-form-item__body__left__content__required.data-v-42bac3de { + position: absolute; + left: -9px; + color: #f56c6c; + line-height: 20px; + font-size: 20px; + top: 3px; +} +.u-form-item__body__left__content__label.data-v-42bac3de { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; + color: #303133; + font-size: 15px; +} +.u-form-item__body__right.data-v-42bac3de { + flex: 1; +} +.u-form-item__body__right__content.data-v-42bac3de { + display: flex; + flex-direction: row; + align-items: center; + flex: 1; +} +.u-form-item__body__right__content__slot.data-v-42bac3de { + flex: 1; + display: flex; + flex-direction: row; + align-items: center; +} +.u-form-item__body__right__content__icon.data-v-42bac3de { + margin-left: 10rpx; + color: #c0c4cc; + font-size: 30rpx; +} +.u-form-item__body__right__message.data-v-42bac3de { + font-size: 12px; + line-height: 12px; + color: #f56c6c; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/props.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/props.js new file mode 100644 index 0000000..223d64b --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/props.js @@ -0,0 +1,49 @@ +"use strict"; +const uni_modules_uviewPlus_libs_vue = require("../../libs/vue.js"); +const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js"); +const props = uni_modules_uviewPlus_libs_vue.defineMixin({ + props: { + // 当前form的需要验证字段的集合 + model: { + type: Object, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.model + }, + // 验证规则 + rules: { + type: [Object, Function, Array], + default: () => uni_modules_uviewPlus_libs_config_props.props.form.rules + }, + // 有错误时的提示方式,message-提示信息,toast-进行toast提示 + // border-bottom-下边框呈现红色,none-无提示 + errorType: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.errorType + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: Boolean, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: () => uni_modules_uviewPlus_libs_config_props.props.form.labelWidth + }, + // lable字体的对齐方式 + labelAlign: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.labelAlign + }, + // lable的样式,对象形式 + labelStyle: { + type: Object, + default: () => uni_modules_uviewPlus_libs_config_props.props.form.labelStyle + } + } +}); +exports.props = props; diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.js new file mode 100644 index 0000000..5bbbbe3 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.js @@ -0,0 +1,208 @@ +"use strict"; +const uni_modules_uviewPlus_components_uForm_props = require("./props.js"); +const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js"); +const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js"); +const uni_modules_uviewPlus_libs_util_asyncValidator = require("../../libs/util/async-validator.js"); +const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js"); +const uni_modules_uviewPlus_libs_function_test = require("../../libs/function/test.js"); +const common_vendor = require("../../../../common/vendor.js"); +uni_modules_uviewPlus_libs_util_asyncValidator.Schema.warning = function() { +}; +const _sfc_main = { + name: "u-form", + mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uForm_props.props], + provide() { + return { + uForm: this + }; + }, + data() { + return { + formRules: {}, + // 规则校验器 + validator: {}, + // 原始的model快照,用于resetFields方法重置表单时使用 + originalModel: null + }; + }, + watch: { + // 监听规则的变化 + rules: { + immediate: true, + handler(n) { + this.setRules(n); + } + }, + // 监听属性的变化,通知子组件u-form-item重新获取信息 + propsChange(n) { + var _a; + if ((_a = this.children) == null ? void 0 : _a.length) { + this.children.map((child) => { + typeof child.updateParentData == "function" && child.updateParentData(); + }); + } + }, + // 监听model的初始值作为重置表单的快照 + model: { + immediate: true, + handler(n) { + if (!this.originalModel) { + this.originalModel = uni_modules_uviewPlus_libs_function_index.deepClone(n); + } + } + } + }, + computed: { + propsChange() { + return [ + this.errorType, + this.borderBottom, + this.labelPosition, + this.labelWidth, + this.labelAlign, + this.labelStyle + ]; + } + }, + created() { + this.children = []; + }, + methods: { + // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则 + setRules(rules) { + if (Object.keys(rules).length === 0) + return; + if (Object.keys(this.model).length === 0) { + uni_modules_uviewPlus_libs_function_index.error("设置rules,model必须设置!如果已经设置,请刷新页面。"); + return; + } + this.formRules = rules; + this.validator = new uni_modules_uviewPlus_libs_util_asyncValidator.Schema(rules); + }, + // 清空所有u-form-item组件的内容,本质上是调用了u-form-item组件中的resetField()方法 + resetFields() { + this.resetModel(); + }, + // 重置model为初始值的快照 + resetModel(obj) { + this.children.map((child) => { + const prop = child == null ? void 0 : child.prop; + const value = uni_modules_uviewPlus_libs_function_index.getProperty(this.originalModel, prop); + uni_modules_uviewPlus_libs_function_index.setProperty(this.model, prop, value); + }); + }, + // 清空校验结果 + clearValidate(props2) { + props2 = [].concat(props2); + this.children.map((child) => { + if (props2[0] === void 0 || props2.includes(child.prop)) { + child.message = null; + } + }); + }, + // 对部分表单字段进行校验 + async validateField(value, callback, event = null, options) { + this.$nextTick(() => { + const errorsRes = []; + value = [].concat(value); + let promises = this.children.map((child) => { + return new Promise((resolve, reject) => { + const childErrors = []; + if (value.includes(child.prop)) { + const propertyVal = uni_modules_uviewPlus_libs_function_index.getProperty( + this.model, + child.prop + ); + const propertyChain = child.prop.split("."); + const propertyName = propertyChain[propertyChain.length - 1]; + let rule = []; + if (child.itemRules && child.itemRules.length > 0) { + rule = child.itemRules; + } else { + rule = this.formRules[child.prop]; + } + if (!rule) { + resolve(); + return; + } + const rules = [].concat(rule); + if (!rules.length) { + resolve(); + } + for (let i = 0; i < rules.length; i++) { + const ruleItem = rules[i]; + const trigger = [].concat(ruleItem == null ? void 0 : ruleItem.trigger); + if (event && !trigger.includes(event)) { + resolve(); + continue; + } + const validator = new uni_modules_uviewPlus_libs_util_asyncValidator.Schema({ + [propertyName]: ruleItem + }); + validator.validate( + { + [propertyName]: propertyVal + }, + (errors, fields) => { + var _a; + if (uni_modules_uviewPlus_libs_function_test.test.array(errors)) { + errors.forEach((element) => { + element.prop = child.prop; + }); + errorsRes.push(...errors); + childErrors.push(...errors); + } + if (!options || (options == null ? void 0 : options.showErrorMsg) == true) { + child.message = ((_a = childErrors[0]) == null ? void 0 : _a.message) ? childErrors[0].message : null; + } + if (i == rules.length - 1) { + resolve(errorsRes); + } + } + ); + } + } else { + resolve({}); + } + }); + }); + Promise.all(promises).then((results) => { + typeof callback === "function" && callback(errorsRes); + }).catch((error2) => { + console.error("An error occurred:", error2); + }); + }); + }, + /** + * 校验全部数据 + * @param {Object} options + * @param {Boolean} options.showErrorMsg -是否显示校验信息, + */ + validate(options) { + if (Object.keys(this.formRules).length === 0) { + uni_modules_uviewPlus_libs_function_index.error("未设置rules,请看文档说明!如果已经设置,请刷新页面。"); + return; + } + return new Promise((resolve, reject) => { + this.$nextTick(() => { + const formItemProps = this.children.map( + (item) => item.prop + ); + this.validateField(formItemProps, (errors) => { + if (errors.length) { + this.errorType === "toast" && uni_modules_uviewPlus_libs_function_index.toast(errors[0].message); + reject(errors); + } else { + resolve(true); + } + }, null, options); + }); + }); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return {}; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]); +wx.createComponent(Component); diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.json b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxml new file mode 100644 index 0000000..25b678a --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-form/u-form.wxss new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/props.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/props.js new file mode 100644 index 0000000..41a1426 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/props.js @@ -0,0 +1,37 @@ +"use strict"; +const uni_modules_uviewPlus_libs_vue = require("../../libs/vue.js"); +const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js"); +const props = uni_modules_uviewPlus_libs_vue.defineMixin({ + props: { + color: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.line.color + }, + // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 + length: { + type: [String, Number], + default: () => uni_modules_uviewPlus_libs_config_props.props.line.length + }, + // 线条方向,col-竖向,row-横向 + direction: { + type: String, + default: () => uni_modules_uviewPlus_libs_config_props.props.line.direction + }, + // 是否显示细边框 + hairline: { + type: Boolean, + default: () => uni_modules_uviewPlus_libs_config_props.props.line.hairline + }, + // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px" + margin: { + type: [String, Number], + default: () => uni_modules_uviewPlus_libs_config_props.props.line.margin + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: () => uni_modules_uviewPlus_libs_config_props.props.line.dashed + } + } +}); +exports.props = props; diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.js new file mode 100644 index 0000000..a155174 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.js @@ -0,0 +1,38 @@ +"use strict"; +const uni_modules_uviewPlus_components_uLine_props = require("./props.js"); +const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js"); +const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js"); +const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js"); +const common_vendor = require("../../../../common/vendor.js"); +const _sfc_main = { + name: "u-line", + mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uLine_props.props], + computed: { + lineStyle() { + const style = {}; + style.margin = this.margin; + if (this.direction === "row") { + style.borderBottomWidth = "1px"; + style.borderBottomStyle = this.dashed ? "dashed" : "solid"; + style.width = uni_modules_uviewPlus_libs_function_index.addUnit(this.length); + if (this.hairline) + style.transform = "scaleY(0.5)"; + } else { + style.borderLeftWidth = "1px"; + style.borderLeftStyle = this.dashed ? "dashed" : "solid"; + style.height = uni_modules_uviewPlus_libs_function_index.addUnit(this.length); + if (this.hairline) + style.transform = "scaleX(0.5)"; + } + style.borderColor = this.color; + return uni_modules_uviewPlus_libs_function_index.deepMerge(style, uni_modules_uviewPlus_libs_function_index.addStyle(this.customStyle)); + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.s($options.lineStyle) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-72791e59"]]); +wx.createComponent(Component); diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.json b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxml b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxml new file mode 100644 index 0000000..d149a0f --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxss b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxss new file mode 100644 index 0000000..c919e80 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/components/u-line/u-line.wxss @@ -0,0 +1,29 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* uni.scss */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.u-line.data-v-72791e59 { + vertical-align: middle; +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/function/index.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/function/index.js index ba4a58c..5272504 100644 --- a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/function/index.js +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/function/index.js @@ -585,6 +585,7 @@ exports.deepMerge = deepMerge; exports.error = error; exports.formValidate = formValidate; exports.genLightColor = genLightColor; +exports.getProperty = getProperty; exports.getWindowInfo = getWindowInfo; exports.index = index; exports.os = os; @@ -592,6 +593,7 @@ exports.padZero = padZero; exports.page = page; exports.queryParams = queryParams; exports.range = range; +exports.setProperty = setProperty; exports.shallowMerge = shallowMerge; exports.sleep = sleep; exports.toast = toast; diff --git a/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/util/async-validator.js b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/util/async-validator.js new file mode 100644 index 0000000..350a6fa --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/uni_modules/uview-plus/libs/util/async-validator.js @@ -0,0 +1,893 @@ +"use strict"; +const formatRegExp = /%[sdj%]/g; +let warning = function warning2() { +}; +if (typeof process !== "undefined" && process.env && true && typeof window !== "undefined" && typeof document !== "undefined") { + warning = function warning3(type2, errors) { + if (typeof console !== "undefined" && console.warn) { + if (errors.every((e) => typeof e === "string")) { + console.warn(type2, errors); + } + } + }; +} +function convertFieldsError(errors) { + if (!errors || !errors.length) + return null; + const fields = {}; + errors.forEach((error) => { + const { field } = error; + fields[field] = fields[field] || []; + fields[field].push(error); + }); + return fields; +} +function format() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + let i = 1; + const f = args[0]; + const len = args.length; + if (typeof f === "function") { + return f.apply(null, args.slice(1)); + } + if (typeof f === "string") { + let str = String(f).replace(formatRegExp, (x) => { + if (x === "%%") { + return "%"; + } + if (i >= len) { + return x; + } + switch (x) { + case "%s": + return String(args[i++]); + case "%d": + return Number(args[i++]); + case "%j": + try { + return JSON.stringify(args[i++]); + } catch (_) { + return "[Circular]"; + } + break; + default: + return x; + } + }); + for (let arg = args[i]; i < len; arg = args[++i]) { + str += ` ${arg}`; + } + return str; + } + return f; +} +function isNativeStringType(type2) { + return type2 === "string" || type2 === "url" || type2 === "hex" || type2 === "email" || type2 === "pattern"; +} +function isEmptyValue(value, type2) { + if (value === void 0 || value === null) { + return true; + } + if (type2 === "array" && Array.isArray(value) && !value.length) { + return true; + } + if (isNativeStringType(type2) && typeof value === "string" && !value) { + return true; + } + return false; +} +function asyncParallelArray(arr, func, callback) { + const results = []; + let total = 0; + const arrLength = arr.length; + function count(errors) { + results.push.apply(results, errors); + total++; + if (total === arrLength) { + callback(results); + } + } + arr.forEach((a) => { + func(a, count); + }); +} +function asyncSerialArray(arr, func, callback) { + let index = 0; + const arrLength = arr.length; + function next(errors) { + if (errors && errors.length) { + callback(errors); + return; + } + const original = index; + index += 1; + if (original < arrLength) { + func(arr[original], next); + } else { + callback([]); + } + } + next([]); +} +function flattenObjArr(objArr) { + const ret = []; + Object.keys(objArr).forEach((k) => { + ret.push.apply(ret, objArr[k]); + }); + return ret; +} +function asyncMap(objArr, option, func, callback) { + if (option.first) { + const _pending = new Promise((resolve, reject) => { + const next = function next2(errors) { + callback(errors); + return errors.length ? reject({ + errors, + fields: convertFieldsError(errors) + }) : resolve(); + }; + const flattenArr = flattenObjArr(objArr); + asyncSerialArray(flattenArr, func, next); + }); + _pending.catch((e) => e); + return _pending; + } + let firstFields = option.firstFields || []; + if (firstFields === true) { + firstFields = Object.keys(objArr); + } + const objArrKeys = Object.keys(objArr); + const objArrLength = objArrKeys.length; + let total = 0; + const results = []; + const pending = new Promise((resolve, reject) => { + const next = function next2(errors) { + results.push.apply(results, errors); + total++; + if (total === objArrLength) { + callback(results); + return results.length ? reject({ + errors: results, + fields: convertFieldsError(results) + }) : resolve(); + } + }; + if (!objArrKeys.length) { + callback(results); + resolve(); + } + objArrKeys.forEach((key) => { + const arr = objArr[key]; + if (firstFields.indexOf(key) !== -1) { + asyncSerialArray(arr, func, next); + } else { + asyncParallelArray(arr, func, next); + } + }); + }); + pending.catch((e) => e); + return pending; +} +function complementError(rule) { + return function(oe) { + if (oe && oe.message) { + oe.field = oe.field || rule.fullField; + return oe; + } + return { + message: typeof oe === "function" ? oe() : oe, + field: oe.field || rule.fullField + }; + }; +} +function deepMerge(target, source) { + if (source) { + for (const s in source) { + if (source.hasOwnProperty(s)) { + const value = source[s]; + if (typeof value === "object" && typeof target[s] === "object") { + target[s] = { ...target[s], ...value }; + } else { + target[s] = value; + } + } + } + } + return target; +} +function required(rule, value, source, errors, options, type2) { + if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type2 || rule.type))) { + errors.push(format(options.messages.required, rule.fullField)); + } +} +function whitespace(rule, value, source, errors, options) { + if (/^\s+$/.test(value) || value === "") { + errors.push(format(options.messages.whitespace, rule.fullField)); + } +} +const pattern = { + // http://emailregex.com/ + email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, + url: new RegExp( + "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", + "i" + ), + hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i +}; +var types = { + integer: function integer(value) { + return /^(-)?\d+$/.test(value); + }, + float: function float(value) { + return /^(-)?\d+(\.\d+)?$/.test(value); + }, + array: function array(value) { + return Array.isArray(value); + }, + regexp: function regexp(value) { + if (value instanceof RegExp) { + return true; + } + try { + return !!new RegExp(value); + } catch (e) { + return false; + } + }, + date: function date(value) { + return typeof value.getTime === "function" && typeof value.getMonth === "function" && typeof value.getYear === "function"; + }, + number: function number(value) { + if (isNaN(value)) { + return false; + } + return typeof +value === "number"; + }, + object: function object(value) { + return typeof value === "object" && !types.array(value); + }, + method: function method(value) { + return typeof value === "function"; + }, + email: function email(value) { + return typeof value === "string" && !!value.match(pattern.email) && value.length < 255; + }, + url: function url(value) { + return typeof value === "string" && !!value.match(pattern.url); + }, + hex: function hex(value) { + return typeof value === "string" && !!value.match(pattern.hex); + } +}; +function type(rule, value, source, errors, options) { + if (rule.required && value === void 0) { + required(rule, value, source, errors, options); + return; + } + const custom = ["integer", "float", "array", "regexp", "object", "method", "email", "number", "date", "url", "hex"]; + const ruleType = rule.type; + if (custom.indexOf(ruleType) > -1) { + if (!types[ruleType](value)) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } + } else if (ruleType && typeof value !== rule.type) { + errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } +} +function range(rule, value, source, errors, options) { + const len = typeof rule.len === "number"; + const min = typeof rule.min === "number"; + const max = typeof rule.max === "number"; + const spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + let val = value; + let key = null; + const num = typeof value === "number"; + const str = typeof value === "string"; + const arr = Array.isArray(value); + if (num) { + key = "number"; + } else if (str) { + key = "string"; + } else if (arr) { + key = "array"; + } + if (!key) { + return false; + } + if (arr) { + val = value.length; + } + if (str) { + val = value.replace(spRegexp, "_").length; + } + if (len) { + if (val !== rule.len) { + errors.push(format(options.messages[key].len, rule.fullField, rule.len)); + } + } else if (min && !max && val < rule.min) { + errors.push(format(options.messages[key].min, rule.fullField, rule.min)); + } else if (max && !min && val > rule.max) { + errors.push(format(options.messages[key].max, rule.fullField, rule.max)); + } else if (min && max && (val < rule.min || val > rule.max)) { + errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max)); + } +} +const ENUM = "enum"; +function enumerable(rule, value, source, errors, options) { + rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []; + if (rule[ENUM].indexOf(value) === -1) { + errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(", "))); + } +} +function pattern$1(rule, value, source, errors, options) { + if (rule.pattern) { + if (rule.pattern instanceof RegExp) { + rule.pattern.lastIndex = 0; + if (!rule.pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } else if (typeof rule.pattern === "string") { + const _pattern = new RegExp(rule.pattern); + if (!_pattern.test(value)) { + errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } + } +} +const rules = { + required, + whitespace, + type, + range, + enum: enumerable, + pattern: pattern$1 +}; +function string(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "string") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, "string"); + if (!isEmptyValue(value, "string")) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + rules.pattern(rule, value, source, errors, options); + if (rule.whitespace === true) { + rules.whitespace(rule, value, source, errors, options); + } + } + } + callback(errors); +} +function method2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function number2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (value === "") { + value = void 0; + } + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function _boolean(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function regexp2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value)) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function integer2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function floatFn(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function array2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "array") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, "array"); + if (!isEmptyValue(value, "array")) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); +} +function object2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +const ENUM$1 = "enum"; +function enumerable$1(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules[ENUM$1](rule, value, source, errors, options); + } + } + callback(errors); +} +function pattern$2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, "string") && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "string")) { + rules.pattern(rule, value, source, errors, options); + } + } + callback(errors); +} +function date2(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value)) { + let dateObject; + if (typeof value === "number") { + dateObject = new Date(value); + } else { + dateObject = value; + } + rules.type(rule, dateObject, source, errors, options); + if (dateObject) { + rules.range(rule, dateObject.getTime(), source, errors, options); + } + } + } + callback(errors); +} +function required$1(rule, value, callback, source, options) { + const errors = []; + const type2 = Array.isArray(value) ? "array" : typeof value; + rules.required(rule, value, source, errors, options, type2); + callback(errors); +} +function type$1(rule, value, callback, source, options) { + const ruleType = rule.type; + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value, ruleType) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options, ruleType); + if (!isEmptyValue(value, ruleType)) { + rules.type(rule, value, source, errors, options); + } + } + callback(errors); +} +function any(rule, value, callback, source, options) { + const errors = []; + const validate2 = rule.required || !rule.required && source.hasOwnProperty(rule.field); + if (validate2) { + if (isEmptyValue(value) && !rule.required) { + return callback(); + } + rules.required(rule, value, source, errors, options); + } + callback(errors); +} +const validators = { + string, + method: method2, + number: number2, + boolean: _boolean, + regexp: regexp2, + integer: integer2, + float: floatFn, + array: array2, + object: object2, + enum: enumerable$1, + pattern: pattern$2, + date: date2, + url: type$1, + hex: type$1, + email: type$1, + required: required$1, + any +}; +function newMessages() { + return { + default: "Validation error on field %s", + required: "%s is required", + enum: "%s must be one of %s", + whitespace: "%s cannot be empty", + date: { + format: "%s date %s is invalid for format %s", + parse: "%s date could not be parsed, %s is invalid ", + invalid: "%s date %s is invalid" + }, + types: { + string: "%s is not a %s", + method: "%s is not a %s (function)", + array: "%s is not an %s", + object: "%s is not an %s", + number: "%s is not a %s", + date: "%s is not a %s", + boolean: "%s is not a %s", + integer: "%s is not an %s", + float: "%s is not a %s", + regexp: "%s is not a valid %s", + email: "%s is not a valid %s", + url: "%s is not a valid %s", + hex: "%s is not a valid %s" + }, + string: { + len: "%s must be exactly %s characters", + min: "%s must be at least %s characters", + max: "%s cannot be longer than %s characters", + range: "%s must be between %s and %s characters" + }, + number: { + len: "%s must equal %s", + min: "%s cannot be less than %s", + max: "%s cannot be greater than %s", + range: "%s must be between %s and %s" + }, + array: { + len: "%s must be exactly %s in length", + min: "%s cannot be less than %s in length", + max: "%s cannot be greater than %s in length", + range: "%s must be between %s and %s in length" + }, + pattern: { + mismatch: "%s value %s does not match pattern %s" + }, + clone: function clone() { + const cloned = JSON.parse(JSON.stringify(this)); + cloned.clone = this.clone; + return cloned; + } + }; +} +const messages = newMessages(); +function Schema(descriptor) { + this.rules = null; + this._messages = messages; + this.define(descriptor); +} +Schema.prototype = { + messages: function messages2(_messages) { + if (_messages) { + this._messages = deepMerge(newMessages(), _messages); + } + return this._messages; + }, + define: function define(rules2) { + if (!rules2) { + throw new Error("Cannot configure a schema with no rules"); + } + if (typeof rules2 !== "object" || Array.isArray(rules2)) { + throw new Error("Rules must be an object"); + } + this.rules = {}; + let z; + let item; + for (z in rules2) { + if (rules2.hasOwnProperty(z)) { + item = rules2[z]; + this.rules[z] = Array.isArray(item) ? item : [item]; + } + } + }, + validate: function validate(source_, o, oc) { + const _this = this; + if (o === void 0) { + o = {}; + } + if (oc === void 0) { + oc = function oc2() { + }; + } + let source = source_; + let options = o; + let callback = oc; + if (typeof options === "function") { + callback = options; + options = {}; + } + if (!this.rules || Object.keys(this.rules).length === 0) { + if (callback) { + callback(); + } + return Promise.resolve(); + } + function complete(results) { + let i; + let errors = []; + let fields = {}; + function add(e) { + if (Array.isArray(e)) { + let _errors; + errors = (_errors = errors).concat.apply(_errors, e); + } else { + errors.push(e); + } + } + for (i = 0; i < results.length; i++) { + add(results[i]); + } + if (!errors.length) { + errors = null; + fields = null; + } else { + fields = convertFieldsError(errors); + } + callback(errors, fields); + } + if (options.messages) { + let messages$1 = this.messages(); + if (messages$1 === messages) { + messages$1 = newMessages(); + } + deepMerge(messages$1, options.messages); + options.messages = messages$1; + } else { + options.messages = this.messages(); + } + let arr; + let value; + const series = {}; + const keys = options.keys || Object.keys(this.rules); + keys.forEach((z) => { + arr = _this.rules[z]; + value = source[z]; + arr.forEach((r) => { + let rule = r; + if (typeof rule.transform === "function") { + if (source === source_) { + source = { ...source }; + } + value = source[z] = rule.transform(value); + } + if (typeof rule === "function") { + rule = { + validator: rule + }; + } else { + rule = { ...rule }; + } + rule.validator = _this.getValidationMethod(rule); + rule.field = z; + rule.fullField = rule.fullField || z; + rule.type = _this.getType(rule); + if (!rule.validator) { + return; + } + series[z] = series[z] || []; + series[z].push({ + rule, + value, + source, + field: z + }); + }); + }); + const errorFields = {}; + return asyncMap(series, options, (data, doIt) => { + const { rule } = data; + let deep = (rule.type === "object" || rule.type === "array") && (typeof rule.fields === "object" || typeof rule.defaultField === "object"); + deep = deep && (rule.required || !rule.required && data.value); + rule.field = data.field; + function addFullfield(key, schema) { + return { ...schema, fullField: `${rule.fullField}.${key}` }; + } + function cb(e) { + if (e === void 0) { + e = []; + } + let errors = e; + if (!Array.isArray(errors)) { + errors = [errors]; + } + if (!options.suppressWarning && errors.length) { + Schema.warning("async-validator:", errors); + } + if (errors.length && rule.message) { + errors = [].concat(rule.message); + } + errors = errors.map(complementError(rule)); + if (options.first && errors.length) { + errorFields[rule.field] = 1; + return doIt(errors); + } + if (!deep) { + doIt(errors); + } else { + if (rule.required && !data.value) { + if (rule.message) { + errors = [].concat(rule.message).map(complementError(rule)); + } else if (options.error) { + errors = [options.error(rule, format(options.messages.required, rule.field))]; + } else { + errors = []; + } + return doIt(errors); + } + let fieldsSchema = {}; + if (rule.defaultField) { + for (const k in data.value) { + if (data.value.hasOwnProperty(k)) { + fieldsSchema[k] = rule.defaultField; + } + } + } + fieldsSchema = { ...fieldsSchema, ...data.rule.fields }; + for (const f in fieldsSchema) { + if (fieldsSchema.hasOwnProperty(f)) { + const fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]]; + fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f)); + } + } + const schema = new Schema(fieldsSchema); + schema.messages(options.messages); + if (data.rule.options) { + data.rule.options.messages = options.messages; + data.rule.options.error = options.error; + } + schema.validate(data.value, data.rule.options || options, (errs) => { + const finalErrors = []; + if (errors && errors.length) { + finalErrors.push.apply(finalErrors, errors); + } + if (errs && errs.length) { + finalErrors.push.apply(finalErrors, errs); + } + doIt(finalErrors.length ? finalErrors : null); + }); + } + } + let res; + if (rule.asyncValidator) { + res = rule.asyncValidator(rule, data.value, cb, data.source, options); + } else if (rule.validator) { + res = rule.validator(rule, data.value, cb, data.source, options); + if (res === true) { + cb(); + } else if (res === false) { + cb(rule.message || `${rule.field} fails`); + } else if (res instanceof Array) { + cb(res); + } else if (res instanceof Error) { + cb(res.message); + } + } + if (res && res.then) { + res.then(() => cb(), (e) => cb(e)); + } + }, (results) => { + complete(results); + }); + }, + getType: function getType(rule) { + if (rule.type === void 0 && rule.pattern instanceof RegExp) { + rule.type = "pattern"; + } + if (typeof rule.validator !== "function" && rule.type && !validators.hasOwnProperty(rule.type)) { + throw new Error(format("Unknown rule type %s", rule.type)); + } + return rule.type || "string"; + }, + getValidationMethod: function getValidationMethod(rule) { + if (typeof rule.validator === "function") { + return rule.validator; + } + const keys = Object.keys(rule); + const messageIndex = keys.indexOf("message"); + if (messageIndex !== -1) { + keys.splice(messageIndex, 1); + } + if (keys.length === 1 && keys[0] === "required") { + return validators.required; + } + return validators[this.getType(rule)] || false; + } +}; +Schema.register = function register(type2, validator) { + if (typeof validator !== "function") { + throw new Error("Cannot register a validator by type, validator is not a function"); + } + validators[type2] = validator; +}; +Schema.warning = warning; +Schema.messages = messages; +exports.Schema = Schema;