From 616e6be49d3f64f2397cb1b1c05d2c06df3db9a3 Mon Sep 17 00:00:00 2001 From: 王恒 <318726284@qq.com> Date: 星期四, 04 九月 2025 09:18:24 +0800 Subject: [PATCH] '新增综合查一次详情、调整二期新增的内容' --- policy/applyRecord/applyRecord.vue | 310 +- policy/policyApply/officePopup.vue | 125 + policy/policyApply/rectifyPicker.vue | 207 ++ policy/reportRecord/reportRecord.vue | 231 +- api/policy.js | 256 + policy/applyLook/applyLook.vue | 308 +- qiye/record/evaluate.vue | 403 ++- pages.json | 574 ++-- api/qiye.js | 211 + common/config.js | 76 policy/translate/translate.vue | 521 ++-- policy/scodePage/scodePage.vue | 330 +- qiye/record/details.vue | 12 qiye/record/record.vue | 444 ++-- policy/reportPage/reportPage.vue | 206 +- qiye/record/compositeDetails.vue | 494 ++++ policy/reportDetails/reportDetails.vue | 368 ++- policy/policyApply/policyApply.vue | 1043 +++++---- 18 files changed, 3,632 insertions(+), 2,487 deletions(-) diff --git a/api/policy.js b/api/policy.js index 52e282a..d318b3e 100644 --- a/api/policy.js +++ b/api/policy.js @@ -1,73 +1,185 @@ -import Vue from 'vue'; -import { config } from '@/common/config.js' -const http = uni.$u.http -// 鏂板鎵ф硶鍗� -export function orderAdd(param) { - return http.post('/enforce/order/add', param, { custom: { loading: true }}); -} -// 鏌ヨ浼佷笟 -export function companyList(data){ - return http.get('/system/company/list', {params: data}, { custom: { loading: true }}); -} - -// 鎵ф硶浜哄憳 /enforce/peer/list -export function enforceList(data) { - return http.get('/enforce/order/peerList', {params: data}, { custom: { loading: true }}); -} -// 鐢宠璁板綍 - -export function orderList(data) { - return http.get('/enforce/order/list', {params: data}, { custom: { loading: true }}); -} -// 鑾峰彇鎵ф硶鍗� 璇︽儏 /enforce/order/{orderId} -export function orderDetails(data) { - return http.get(`/enforce/order/${data.orderId}`, {params: data}, { custom: { loading: true }}); -} -// 鑾峰彇鎵ф硶鍗� 璇︽儏 /enforce/order/{orderId} -export function orderDetailsLog(data) { - return http.get(`/enforce/complaint/log/${data.id}`, {params: data}, { custom: { loading: true }}); -} -// 鎵ф硶瀹℃壒鍒楄〃 - -export function checkLogList(data) { - return http.get(`/enforce/order/checkList`, {params: data}, { custom: { loading: true }}); -} -// 鎵ф硶瀹℃壒 -export function checkUpd(data) { - return http.post(`/tool/check/checkOrder`, data, { custom: { loading: true }}); -} - -// 鎵ф硶鍗曡妭鐐� -export function orderNodeList(data) { - return http.get(`/enforce/order/orderNodeList`, {params: data}, { custom: { loading: true }}); -} -// 鎵ф硶瀹℃壒璁板綍 /enforce/check/log/list -export function enforceLogList(data) { - return http.get(`/enforce/check/log/list`, {params: data}, { custom: { loading: true }}); -} -// 瀹℃壒浜哄鎵硅褰� /enforce/order/checkedList - -export function checkedList(data) { - return http.get(`/enforce/order/checkedList`, {params: data}, { custom: { loading: true }}); -} -// 鎵爜鎺ュ彛 -export function getScanList(data) { - return http.get(`/enforce/order/getScanList`, {params: data}, { custom: { loading: true }}); -} -// 纭鎵ф硶 /enforce/order/doScanOrder/{orderId} -export function doScanOrder(data) { - return http.post(`/enforce/order/doScanOrder/${data}`, {}, { custom: { loading: true }}); -} -// 甯︿笂鎶ユ墽娉曞垪琛� /enforce/order/execute/list -export function executeList(data) { - return http.get(`/enforce/order/execute/list`, {params: data}, { custom: { loading: true }}); -} -// 淇敼鎵ф硶鍗� /enforce/order/upd -export function orderUpd(data) { - return http.post(`/enforce/order/doResultOrder`, data, { custom: { loading: true }}); -} - -// /commonList -export function commonList(data) { - return http.get(`/enforce/order/commonList`, {params: data}, { custom: { loading: true }}); +import Vue from 'vue'; +import { + config +} from '@/common/config.js' +const http = uni.$u.http +// 鏂板鎵ф硶鍗� +export function orderAdd(param) { + return http.post('/enforce/order/add', param, { + custom: { + loading: true + } + }); +} +// 鏌ヨ浼佷笟 +export function companyList(data) { + return http.get('/system/company/list', { + params: data + }, { + custom: { + loading: true + } + }); +} + +// 鎵ф硶浜哄憳 /enforce/peer/list +export function enforceList(data) { + return http.get('/enforce/order/peerList', { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鐢宠璁板綍 + +export function orderList(data) { + return http.get('/enforce/order/list', { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鑾峰彇鎵ф硶鍗� 璇︽儏 /enforce/order/{orderId} +export function orderDetails(data) { + return http.get(`/enforce/order/${data.orderId}`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鑾峰彇鎵ф硶鍗� 璇︽儏 /enforce/order/{orderId} +export function orderDetailsLog(data) { + return http.get(`/enforce/complaint/log/${data.id}`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鎵ф硶瀹℃壒鍒楄〃 + +export function checkLogList(data) { + return http.get(`/enforce/order/checkList`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鎵ф硶瀹℃壒 +export function checkUpd(data) { + return http.post(`/tool/check/checkOrder`, data, { + custom: { + loading: true + } + }); +} + +// 鎵ф硶鍗曡妭鐐� +export function orderNodeList(data) { + return http.get(`/enforce/order/orderNodeList`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鎵ф硶瀹℃壒璁板綍 /enforce/check/log/list +export function enforceLogList(data) { + return http.get(`/enforce/check/log/list`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 瀹℃壒浜哄鎵硅褰� /enforce/order/checkedList + +export function checkedList(data) { + return http.get(`/enforce/order/checkedList`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鎵爜鎺ュ彛 +export function getScanList(data) { + return http.get(`/enforce/order/getScanList`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 纭鎵ф硶 /enforce/order/doScanOrder/{orderId} +export function doScanOrder(data) { + return http.post(`/enforce/order/doScanOrder/${data}`, {}, { + custom: { + loading: true + } + }); +} +// 甯︿笂鎶ユ墽娉曞垪琛� /enforce/order/execute/list +export function executeList(data) { + return http.get(`/enforce/order/execute/list`, { + params: data + }, { + custom: { + loading: true + } + }); +} +// 淇敼鎵ф硶鍗� /enforce/order/upd +export function orderUpd(data) { + return http.post(`/enforce/order/doResultOrder`, data, { + custom: { + loading: true + } + }); +} + +// /commonList +export function commonList(data) { + return http.get(`/enforce/order/commonList`, { + params: data + }, { + custom: { + loading: true + } + }); +} + +// 鑾峰彇绉戝鍒楄〃 +export function officeList(data) { + return http.get(`/system/dept/list`, { + params: data + }, { + custom: { + loading: true + } + }); +} + +// 鑾峰彇鏁存敼璁″垝鍒楄〃 +export function getRectifyList(data) { + return http.get(`/enforce/order/enforceOrder/list`, { + params: data + }, { + custom: { + loading: true + } + }); } \ No newline at end of file diff --git a/api/qiye.js b/api/qiye.js index 21bcb2d..0b89cc7 100644 --- a/api/qiye.js +++ b/api/qiye.js @@ -1,66 +1,147 @@ -import Vue from 'vue'; -import { config } from '@/common/config.js' -const http = uni.$u.http - -// 浼佷笟璇︽儏 -export function company(id){ - return http.get('/system/company/'+id, { custom: { loading: true }}); -} -// 鎵ф硶璁板綍鍒楄〃 -export function companyList(data){ - return http.get('/enforce/order/companyList', {params: data}, { custom: { loading: true }}); -} -// 鑾峰彇鎵ф硶璇勪环閰嶇疆璇︽儏 -export function evaluate(){ - return http.get('/enforce/evaluate/detail', { custom: { loading: true }}); -} -// 淇濆瓨鎵ф硶璇勪环 -export function saveOrder(param) { - return http.post('/enforce/evaluate/saveOrder', param, { custom: { loading: true }}); -} -// 鍙戣捣鎶曡瘔 -export function orderComplaint(param) { - return http.post('/enforce/order/orderComplaint', param, { custom: { loading: true }}); -} - -// 鎶曡瘔鍒楄〃 -export function logList(data){ - return http.get('/enforce/complaint/log/list', {params: data}, { custom: { loading: true }}); -} -// complaintList -// 鎶曡瘔鍒楄〃 -export function complaintList(data){ - return http.get('/enforce/complaint/log/complaintList', {params: data}, { custom: { loading: true }}); -} -// 寤鸿鍒楄〃 -export function pleaseList(data){ - return http.get('/enforce/complaint/log/pleaseList', {params: data}, { custom: { loading: true }}); -} -// 鎶曡瘔璇︽儏 -export function complaint(id){ - return http.get('/enforce/complaint/'+id, { custom: { loading: true }}); -} -// /enforce/complaint/log/ -export function complaintDetails(id){ - return http.get('/enforce/complaint/log/'+id, { custom: { loading: true }}); -} - -// /enforce/order/orderComplaintNodeList 鎶曡瘔鍗曡妭鐐� - -export function orderComplaintNodeList(data){ - return http.get('/enforce/order/orderComplaintNodeList',{params: data}, { custom: { loading: true }}); -} -// 鏃爋rderid -export function orderNodeList(data){ - return http.get('/enforce/complaint/log/orderNodeList',{params: data}, { custom: { loading: true }}); -} - -// /system/company/list -// export function getCompanyList(data){ -// return http.get('/system/company/list',{params: data}, { custom: { loading: true }}); -// } - -// /enforce/order/confirm/{orderId} -export function confirmOrderId(data){ - return http.post(`/enforce/order/confirm/${data.orderId}`,{params: data}, { custom: { loading: true }}); +import Vue from 'vue'; +import { + config +} from '@/common/config.js' +const http = uni.$u.http + +// 浼佷笟璇︽儏 +export function company(id) { + return http.get('/system/company/' + id, { + custom: { + loading: true + } + }); +} +// 鎵ф硶璁板綍鍒楄〃 +export function companyList(data) { + return http.get('/enforce/order/companyList', { + params: data + }, { + custom: { + loading: true + } + }); +} + +// 缁煎悎鏌ヤ竴娆℃墽娉曡褰曞垪琛� +export function togetherList(data) { + return http.get('/enforce/order/companyListNew', { + params: data + }, { + custom: { + loading: true + } + }); +} + + +// 鑾峰彇鎵ф硶璇勪环閰嶇疆璇︽儏 +export function evaluate() { + return http.get('/enforce/evaluate/detail', { + custom: { + loading: true + } + }); +} +// 淇濆瓨鎵ф硶璇勪环 +export function saveOrder(param) { + return http.post('/enforce/evaluate/saveOrder', param, { + custom: { + loading: true + } + }); +} +// 鍙戣捣鎶曡瘔 +export function orderComplaint(param) { + return http.post('/enforce/order/orderComplaint', param, { + custom: { + loading: true + } + }); +} + +// 鎶曡瘔鍒楄〃 +export function logList(data) { + return http.get('/enforce/complaint/log/list', { + params: data + }, { + custom: { + loading: true + } + }); +} +// complaintList +// 鎶曡瘔鍒楄〃 +export function complaintList(data) { + return http.get('/enforce/complaint/log/complaintList', { + params: data + }, { + custom: { + loading: true + } + }); +} +// 寤鸿鍒楄〃 +export function pleaseList(data) { + return http.get('/enforce/complaint/log/pleaseList', { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鎶曡瘔璇︽儏 +export function complaint(id) { + return http.get('/enforce/complaint/' + id, { + custom: { + loading: true + } + }); +} +// /enforce/complaint/log/ +export function complaintDetails(id) { + return http.get('/enforce/complaint/log/' + id, { + custom: { + loading: true + } + }); +} + +// /enforce/order/orderComplaintNodeList 鎶曡瘔鍗曡妭鐐� + +export function orderComplaintNodeList(data) { + return http.get('/enforce/order/orderComplaintNodeList', { + params: data + }, { + custom: { + loading: true + } + }); +} +// 鏃爋rderid +export function orderNodeList(data) { + return http.get('/enforce/complaint/log/orderNodeList', { + params: data + }, { + custom: { + loading: true + } + }); +} + +// /system/company/list +// export function getCompanyList(data){ +// return http.get('/system/company/list',{params: data}, { custom: { loading: true }}); +// } + +// /enforce/order/confirm/{orderId} +export function confirmOrderId(data) { + return http.post(`/enforce/order/confirm/${data.orderId}`, { + params: data + }, { + custom: { + loading: true + } + }); } \ No newline at end of file diff --git a/common/config.js b/common/config.js index 36f7d8b..c100e16 100644 --- a/common/config.js +++ b/common/config.js @@ -1,39 +1,39 @@ -const test = { - hasHead: true, - authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', - webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', - serverTempl: "http://172.16.60.251:8086", - socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode", - h5Temp: "https://yqzx.jinmingyuan.com/ecosphere-h5", - serverUrl: 'http://172.16.60.251:8086', - h5Url: 'http://172.16.60.172:8086/service-merchant', - ftpUrl: 'https://yqzx.jinmingyuan.com/file', - // ftpUrl: 'https://echftp.jinmingyuan.com', - baseUrl: 'http://172.16.60.251:8086', - wx_appid: 'wxad8cc511da676bd4', - ali_appid: '2021003199690698' -} - -const prod = { - authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', - webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', - serverTempl: "https://jmy.jinmingyuan.com", - socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode", - h5Temp: "https://jmy.jinmingyuan.com/ecosphere-h5", - serverUrl: 'https://jmy.jinmingyuan.com/smrq-api', - h5Url: 'https://jmy.jinmingyuan.com/service-merchant', - ftpUrl: 'https://jmy.jinmingyuan.com/file', - // ftpUrl: 'https://echftp.jinmingyuan.com', - baseUrl: 'https://jmy.jinmingyuan.com/smrq-api', - wx_appid: 'wxad8cc511da676bd4', - ali_appid: '2021003199690698' -} - - -module.exports = { - kefuTel: '15824668510', - config: prod, - ACCESSTOKEN: "Authorization", - /* 鏄惁鎵撳嵃璇锋眰鏃ュ織 */ - DEBUG: false, +const test = { + hasHead: true, + authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', + webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', + serverTempl: "http://172.16.60.145:8086", + socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode", + h5Temp: "https://yqzx.jinmingyuan.com/ecosphere-h5", + serverUrl: 'http://172.16.60.145:8086', + h5Url: 'http://172.16.60.172:8086/service-merchant', + ftpUrl: 'https://yqzx.jinmingyuan.com/file', + // ftpUrl: 'https://echftp.jinmingyuan.com', + baseUrl: 'http://172.16.60.145:8086', + wx_appid: 'wxad8cc511da676bd4', + ali_appid: '2021003199690698' +} + +const prod = { + authCallBackUrl: 'https://wxbank.hnnx.com/mer/payOut/getAuthCode.do?authCallBackUrl=', + webURL: 'https://jmy.jinmingyuan.com/ecosphere-user', + serverTempl: "https://jmy.jinmingyuan.com", + socketTempl: "wss://yqzx.jinmingyuan.com/wsPerCode", + h5Temp: "https://jmy.jinmingyuan.com/ecosphere-h5", + serverUrl: 'https://jmy.jinmingyuan.com/smrq-api', + h5Url: 'https://jmy.jinmingyuan.com/service-merchant', + ftpUrl: 'https://jmy.jinmingyuan.com/file', + // ftpUrl: 'https://echftp.jinmingyuan.com', + baseUrl: 'https://jmy.jinmingyuan.com/smrq-api', + wx_appid: 'wxad8cc511da676bd4', + ali_appid: '2021003199690698' +} + + +module.exports = { + kefuTel: '15824668510', + config: prod, + ACCESSTOKEN: "Authorization", + /* 鏄惁鎵撳嵃璇锋眰鏃ュ織 */ + DEBUG: false, } \ No newline at end of file diff --git a/pages.json b/pages.json index 373f299..1e46b43 100644 --- a/pages.json +++ b/pages.json @@ -1,303 +1,273 @@ -{ - "easycom": { - "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" - }, - "pages": [{ - "path": "pages/index/index", - "style": { - "enablePullDownRefresh": false, - "backgroundTextStyle": "dark", - "navigationBarTitleText": "鎵爜鍏ヤ紒", - "navigationStyle": "custom" - - } - }, - { - "path": "pages/mine/mine", - "style": { - "navigationBarTitleText": "鎴戠殑" - } - }, - { - "path": "pages/companyLogin/companyLogin", - "style": { - "navigationBarTitleText": "鐧诲綍", - "navigationStyle": "custom" - } - }, - { - "path" : "pages/registerCompany/registerCompany", - "style" : - { - "navigationBarTitleText" : "浼佷笟娉ㄥ唽" - } - }, - { - "path" : "pages/companyIndex/companyIndex", - "style" : - { - "navigationBarTitleText" : "浼佷笟棣栭〉" - } - }, - { - "path" : "pages/hqzc/list", - "style" : - { - "navigationBarTitleText" : "鎯犱紒鏀跨瓥" - } - }, - { - "path" : "pages/hqzc/details", - "style" : - { - "navigationBarTitleText" : "鎯犱紒鏀跨瓥" - } - }, - { - "path" : "pages/message/list", - "style" : - { - "navigationBarTitleText" : "淇℃伅鍏ず" - } - }, - { - "path" : "pages/message/details", - "style" : - { - "navigationBarTitleText" : "淇℃伅鍏ず璇︽儏", - "navigationStyle": "custom" - } - }, - { - "path" : "pages/visitiorRegis/visitiorRegis", - "style" : - { - "navigationBarTitleText" : "鏉ヨ浜哄憳鐧昏" - } - }, - { - "path" : "pages/index/home", - "style" : - { - "navigationBarTitleText" : "" - } - } - ], - "subPackages": [ - { - "root": "policy", - "pages": [ - { - "path" : "policyIndex/policyIndex", - "style" : - { - "navigationBarTitleText" : "棣栭〉", - "navigationStyle": "custom" - } - }, - { - "path" : "policyApply/policyApply", - "style" : - { - "navigationBarTitleText" : "鎵ф硶鐢宠" - } - }, - { - "path" : "changePhone/changePhone", - "style" : - { - "navigationBarTitleText" : "淇敼鎵嬫満鍙�" - } - }, - { - "path" : "dataLook/dataLook", - "style" : - { - "navigationBarTitleText" : "鏁版嵁鐪嬫澘", - "backgroundColor": "#1171E0" - } - }, - { - "path" : "reportPage/reportPage", - "style" : - { - "navigationBarTitleText" : "鎵ф硶缁撴灉涓婃姤" - } - }, - { - "path" : "reportDetails/reportDetails", - "style" : - { - "navigationBarTitleText" : "涓婃姤缁撴灉" - } - }, - { - "path" : "reportRecord/reportRecord", - "style" : - { - "navigationBarTitleText" : "涓婃姤璁板綍" - } - }, - { - "path" : "applyRecord/applyRecord", - "style" : - { - "navigationBarTitleText" : "璁板綍鏌ヨ" - } - }, - { - "path" : "applyRecordDetails/applyRecordDetails", - "style" : - { - "navigationBarTitleText" : "鐢宠璇︽儏", - "navigationStyle": "custom" - } - }, - { - "path" : "translate/translate", - "style" : - { - "navigationBarTitleText" : "鎵ф硶瀹℃壒" - } - }, - { - "path" : "translateRecord/translateRecord", - "style" : - { - "navigationBarTitleText" : "瀹℃壒璁板綍" - } - }, - { - "path" : "scodePage/scodePage", - "style" : - { - "navigationBarTitleText" : "", - "navigationStyle": "custom" - } - }, - { - "path" : "judgeApply/judgeApply", - "style" : - { - "navigationBarTitleText" : "瀹℃壒璇︽儏", - "navigationStyle": "custom" - } - }, - { - "path" : "applyLook/applyLook", - "style" : - { - "navigationBarTitleText" : "" - } - } - ] - }, - { - "root": "qiye", - "pages": [{ - "path" : "qiyeIndex/qiyeIndex", - "style" : - { - "navigationBarTitleText" : "", - "navigationStyle": "custom" - } - }, - { - "path" : "my/my", - "style" : - { - "navigationBarTitleText" : "", - "navigationStyle": "custom" - - } - }, - { - "path" : "record/record", - "style" : - { - "navigationBarTitleText" : "鎵ф硶璁板綍", - "navigationStyle": "custom" - } - }, - { - "path" : "record/details", - "style" : - { - "navigationBarTitleText" : "鎵ф硶淇℃伅", - "navigationStyle": "custom" - - } - }, - { - "path" : "record/evaluate", - "style" : - { - "navigationBarTitleText" : "璇勪环" - } - }, - { - "path" : "complaint/complaint", - "style" : - { - "navigationBarTitleText" : "鎶曡瘔璁板綍" - } - }, - { - "path" : "complaint/details", - "style" : - { - "navigationBarTitleText" : "", - "navigationStyle": "custom" - } - }, - { - "path" : "complaint/details1", - "style" : - { - "navigationBarTitleText" : "", - "navigationStyle": "custom" - } - }, - { - "path" : "switchPhone/switchPhone", - "style" : - { - "navigationBarTitleText" : "鍒囨崲浼佷笟" - } - }, - { - "path" : "proposal/proposal", - "style" : - { - "navigationBarTitleText" : "鎶曡瘔" - } - }, - { - "path" : "proposal1/proposal1", - "style" : - { - "navigationBarTitleText" : "寤鸿" - } - }, - { - "path" : "proprsalRecord/proprsalRecord", - "style" : - { - "navigationBarTitleText" : "寤鸿璁板綍" - } - } - - ] - } - ], - "globalStyle": { - "backgroundColor": "#F8F8F8", - "backgroundTextStyle": "light", - "navigationBarBackgroundColor": "#fff", - "navigationBarTitleText": "鎵爜鍏ヤ紒", - "navigationBarTextStyle": "black" - }, - "uniIdRouter": {}, - "lazyCodeLoading": "requiredComponents", - "sitemapLocation": "sitemap.json" +{ + "easycom": { + "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [{ + "path": "pages/index/index", + "style": { + "enablePullDownRefresh": false, + "backgroundTextStyle": "dark", + "navigationBarTitleText": "鎵爜鍏ヤ紒", + "navigationStyle": "custom" + + } + }, + { + "path": "pages/mine/mine", + "style": { + "navigationBarTitleText": "鎴戠殑" + } + }, + { + "path": "pages/companyLogin/companyLogin", + "style": { + "navigationBarTitleText": "鐧诲綍", + "navigationStyle": "custom" + } + }, + { + "path": "pages/registerCompany/registerCompany", + "style": { + "navigationBarTitleText": "浼佷笟娉ㄥ唽" + } + }, + { + "path": "pages/companyIndex/companyIndex", + "style": { + "navigationBarTitleText": "浼佷笟棣栭〉" + } + }, + { + "path": "pages/hqzc/list", + "style": { + "navigationBarTitleText": "鎯犱紒鏀跨瓥" + } + }, + { + "path": "pages/hqzc/details", + "style": { + "navigationBarTitleText": "鎯犱紒鏀跨瓥" + } + }, + { + "path": "pages/message/list", + "style": { + "navigationBarTitleText": "淇℃伅鍏ず" + } + }, + { + "path": "pages/message/details", + "style": { + "navigationBarTitleText": "淇℃伅鍏ず璇︽儏", + "navigationStyle": "custom" + } + }, + { + "path": "pages/visitiorRegis/visitiorRegis", + "style": { + "navigationBarTitleText": "鏉ヨ浜哄憳鐧昏" + } + }, + { + "path": "pages/index/home", + "style": { + "navigationBarTitleText": "" + } + } + ], + "subPackages": [{ + "root": "policy", + "pages": [{ + "path": "policyIndex/policyIndex", + "style": { + "navigationBarTitleText": "棣栭〉", + "navigationStyle": "custom" + } + }, + { + "path": "policyApply/policyApply", + "style": { + "navigationBarTitleText": "鎵ф硶鐢宠" + } + }, + { + "path": "changePhone/changePhone", + "style": { + "navigationBarTitleText": "淇敼鎵嬫満鍙�" + } + }, + { + "path": "dataLook/dataLook", + "style": { + "navigationBarTitleText": "鏁版嵁鐪嬫澘", + "backgroundColor": "#1171E0" + } + }, + { + "path": "reportPage/reportPage", + "style": { + "navigationBarTitleText": "鎵ф硶缁撴灉涓婃姤" + } + }, + { + "path": "reportDetails/reportDetails", + "style": { + "navigationBarTitleText": "涓婃姤缁撴灉" + } + }, + { + "path": "reportRecord/reportRecord", + "style": { + "navigationBarTitleText": "涓婃姤璁板綍" + } + }, + { + "path": "applyRecord/applyRecord", + "style": { + "navigationBarTitleText": "璁板綍鏌ヨ" + } + }, + { + "path": "applyRecordDetails/applyRecordDetails", + "style": { + "navigationBarTitleText": "鐢宠璇︽儏", + "navigationStyle": "custom" + } + }, + { + "path": "translate/translate", + "style": { + "navigationBarTitleText": "鎵ф硶瀹℃壒" + } + }, + { + "path": "translateRecord/translateRecord", + "style": { + "navigationBarTitleText": "瀹℃壒璁板綍" + } + }, + { + "path": "scodePage/scodePage", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "judgeApply/judgeApply", + "style": { + "navigationBarTitleText": "瀹℃壒璇︽儏", + "navigationStyle": "custom" + } + }, + { + "path": "applyLook/applyLook", + "style": { + "navigationBarTitleText": "" + } + } + ] + }, + { + "root": "qiye", + "pages": [{ + "path": "qiyeIndex/qiyeIndex", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "my/my", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + + } + }, + { + "path": "record/record", + "style": { + "navigationBarTitleText": "鎵ф硶璁板綍", + "navigationStyle": "custom" + } + }, + { + "path": "record/details", + "style": { + "navigationBarTitleText": "鎵ф硶淇℃伅", + "navigationStyle": "custom" + + } + }, + { + "path": "record/evaluate", + "style": { + "navigationBarTitleText": "璇勪环" + } + }, + { + "path": "record/compositeDetails", + "style": { + "navigationBarTitleText": "鎵ф硶璁板綍", + "navigationStyle": "custom" + } + }, + { + "path": "complaint/complaint", + "style": { + "navigationBarTitleText": "鎶曡瘔璁板綍" + } + }, + { + "path": "complaint/details", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "complaint/details1", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "switchPhone/switchPhone", + "style": { + "navigationBarTitleText": "鍒囨崲浼佷笟" + } + }, + { + "path": "proposal/proposal", + "style": { + "navigationBarTitleText": "鎶曡瘔" + } + }, + { + "path": "proposal1/proposal1", + "style": { + "navigationBarTitleText": "寤鸿" + } + }, + { + "path": "proprsalRecord/proprsalRecord", + "style": { + "navigationBarTitleText": "寤鸿璁板綍" + } + } + ] + } + ], + "globalStyle": { + "backgroundColor": "#F8F8F8", + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "鎵爜鍏ヤ紒", + "navigationBarTextStyle": "black" + }, + "uniIdRouter": {}, + "lazyCodeLoading": "requiredComponents", + "sitemapLocation": "sitemap.json" } \ No newline at end of file diff --git a/policy/applyLook/applyLook.vue b/policy/applyLook/applyLook.vue index 14f4362..464aedc 100644 --- a/policy/applyLook/applyLook.vue +++ b/policy/applyLook/applyLook.vue @@ -1,147 +1,161 @@ -<template> - <view class="page-box"> - <u-sticky bgColor="white" :offsetTop="0" style=" position: -webkit-sticky;"> - <view class="set-search"> - <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝 " @search="search" @blur="search" shape="square" :showAction="false"></u-search> - </view> - <view class="border"></view> - <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> - </u-sticky> - <view class="list"> - <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status" v-if="item.checkStatus != -1" :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text> - <text class="status status4" v-else >宸叉嫆缁�</text> - </view> - <view class="user-info"> - <text>{{item.applyUser}}</text> - <!-- <view class="driver"></view> --> - - </view> - <view class="user-info"> - <text>{{item.applyDeptName}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - </view> - </view> - </view> - <u-empty v-if="!dataList.length"></u-empty> - </view> - </view> -</template> - -<script> - import { commonList } from '@/api/policy.js' - export default { - data() { - return { - current: 0, - list1: [{ - name: '鍏ㄩ儴', - value: {} - }, { - name: '寰呭鎵�', - value: { - orderStatus: 1, - checkStatus: 0 - } - }, { - name: '寰呮墽琛�', - value: { - orderStatus: 2 - } - }, { - name: '宸叉墽琛�', - value: { - orderStatus: 3 - } - }, { - name: '宸蹭笂鎶�', - value: { - orderStatus: 4 - } - }, { - name: '浼佷笟宸茬‘璁�', - value: { - orderStatus: 5 - } - }], - queryParams: { - pageNum: 1, - pageSize: 10, - isAsc: "desc", - orderByColumn: "apply_time" - }, - total: 1, - dataList: [], - mapStatus: { - 1: '寰呭鎵�', - 2: "寰呮墽琛�", - 3: "寰呬笂鎶�", - '-1':"宸叉嫆缁�", - 4: "宸蹭笂鎶�", - 5: "浼佷笟宸茬‘璁�" - } - } - }, - onLoad() { - this.orderList() - }, - onReachBottom() { - if(this.dataList.length == this.total) { - return - } - this.queryParams.pageNum++ - this.orderList() - }, - methods: { - goReport(id) { - uni.navigateTo({ - url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}` - }) - }, - click(e) { - this.dataList = [] - this.queryParams.pageNum = 1 - this.current = e.index - this.orderList() - }, - orderList() { - const userInfo = uni.getStorageSync('userInfo') - commonList({...this.queryParams, ...this.list1[this.current].value}).then(val => { - this.total = val.data.total - this.dataList = [...this.dataList,...val.data.rows] - }) - }, - search(e){ - this.dataList = [] - this.queryParams.pageNum =1 - this.queryParams.companyName = e - this.orderList() - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./applyLook.scss"; - ::v-deep .u-sticky{ - position: -webkit-sticky; - } -</style> +<template> + <view class="page-box"> + <u-sticky bgColor="white" :offsetTop="0" style=" position: -webkit-sticky;"> + <view class="set-search"> + <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝 " @search="search" @blur="search" shape="square" + :showAction="false"></u-search> + </view> + <view class="border"></view> + <u-tabs :list="list1" @click="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> + </u-sticky> + <view class="list"> + <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index"> + <view class="top-title"> + <text>{{item.enforceReason}}<text class="together" v-if="item.orderType == 2">(缁煎悎妫�鏌�)</text></text> + <text class="status" v-if="item.checkStatus != -1" + :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text> + <text class="status status4" v-else>宸叉嫆缁�</text> + </view> + <view class="user-info"> + <text>{{item.applyUser || ''}}</text> + <!-- <view class="driver"></view> --> + + </view> + <view class="user-info"> + <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime || item.planMonth || ''}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} + </view> + </view> + </view> + </view> + <u-empty v-if="!dataList.length"></u-empty> + </view> + </view> +</template> + +<script> + import { + commonList + } from '@/api/policy.js' + export default { + data() { + return { + current: 0, + list1: [{ + name: '鍏ㄩ儴', + value: {} + }, { + name: '寰呭鎵�', + value: { + orderStatus: 1, + checkStatus: 0 + } + }, { + name: '寰呮墽琛�', + value: { + orderStatus: 2 + } + }, { + name: '宸叉墽琛�', + value: { + orderStatus: 3 + } + }, { + name: '宸蹭笂鎶�', + value: { + orderStatus: 4 + } + }, { + name: '浼佷笟宸茬‘璁�', + value: { + orderStatus: 5 + } + }], + queryParams: { + pageNum: 1, + pageSize: 10, + isAsc: "desc", + orderByColumn: "apply_time" + }, + total: 1, + dataList: [], + mapStatus: { + 1: '寰呭鎵�', + 2: "寰呮墽琛�", + 3: "寰呬笂鎶�", + '-1': "宸叉嫆缁�", + 4: "宸蹭笂鎶�", + 5: "浼佷笟宸茬‘璁�" + } + } + }, + onLoad() { + this.orderList() + }, + onReachBottom() { + if (this.dataList.length == this.total) { + return + } + this.queryParams.pageNum++ + this.orderList() + }, + methods: { + goReport(id) { + uni.navigateTo({ + url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}` + }) + }, + click(e) { + this.dataList = [] + this.queryParams.pageNum = 1 + this.current = e.index + this.orderList() + }, + orderList() { + const userInfo = uni.getStorageSync('userInfo') + commonList({ + ...this.queryParams, + ...this.list1[this.current].value + }).then(val => { + this.total = val.data.total + this.dataList = [...this.dataList, ...val.data.rows] + }) + }, + search(e) { + this.dataList = [] + this.queryParams.pageNum = 1 + this.queryParams.companyName = e + this.orderList() + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./applyLook.scss"; + + ::v-deep .u-sticky { + position: -webkit-sticky; + } + + .together { + margin-left: 10rpx; + font-size: 24rpx; + color: #ff0000; + } +</style> \ No newline at end of file diff --git a/policy/applyRecord/applyRecord.vue b/policy/applyRecord/applyRecord.vue index 49b45ac..9cc641e 100644 --- a/policy/applyRecord/applyRecord.vue +++ b/policy/applyRecord/applyRecord.vue @@ -1,151 +1,159 @@ -<template> - <view class="page-box"> - <u-sticky bgColor="white" :offsetTop="0" style=" position: -webkit-sticky;"> - <view class="set-search"> - <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝 " @search="search" @blur="search" shape="square" :showAction="false"></u-search> - </view> - <view class="border"></view> - <u-tabs :list="list1" @click="click" :current="current" :scrollable="true" bgColor="white"></u-tabs> - </u-sticky> - <view class="list"> - <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status" v-if="item.checkStatus != -1" :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text> - <text class="status status4" v-else >宸叉嫆缁�</text> - </view> - <view class="user-info"> - <text>{{item.applyUser}}</text> - <!-- <view class="driver"></view> --> - - </view> - <view class="user-info"> - <text>{{item.applyDeptName}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - </view> - </view> - </view> - <u-empty v-if="!dataList.length"></u-empty> - </view> - </view> -</template> - -<script> - import { orderList } from '@/api/policy.js' - export default { - data() { - return { - current: 0, - list1: [{ - name: '鍏ㄩ儴', - value: {} - }, { - name: '寰呭鎵�', - value: { - orderStatus: 1, - checkStatus: 0 - } - }, { - name: '寰呮墽琛�', - value: { - orderStatus: 2 - } - }, { - name: '寰呬笂鎶�', - value: { - orderStatus: 3 - } - }, { - name: '宸叉嫆缁�', - value: { - checkStatus: -1 - } - }, { - name: '宸蹭笂鎶�', - value: { - orderStatus: 4 - } - }, { - name: '浼佷笟宸茬‘璁�', - value: { - orderStatus: 5 - } - }], - queryParams: { - pageNum: 1, - pageSize: 10, - isAsc: "desc", - orderByColumn: "apply_time" - }, - total: 1, - dataList: [], - mapStatus: { - 1: '寰呭鎵�', - 2: "寰呮墽琛�", - 3: "寰呬笂鎶�", - '-1':"宸叉嫆缁�", - 4: "宸蹭笂鎶�", - 5: "浼佷笟宸茬‘璁�" - } - } - }, - onLoad() { - this.orderList() - }, - onReachBottom() { - if(this.dataList.length == this.total) { - return - } - this.queryParams.pageNum++ - this.orderList() - }, - methods: { - goReport(id) { - uni.navigateTo({ - url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}` - }) - }, - click(e) { - this.dataList = [] - this.queryParams.pageNum = 1 - this.current = e.index - this.orderList() - }, - orderList() { - orderList({...this.queryParams, ...this.list1[this.current].value}).then(val => { - this.total = val.data.total - this.dataList = [...this.dataList,...val.data.rows] - }) - }, - search(e){ - this.dataList = [] - this.queryParams.pageNum =1 - this.queryParams.companyName = e - this.orderList() - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./applyRecord.scss"; - ::v-deep .u-sticky{ - position: -webkit-sticky; - } -</style> +<template> + <view class="page-box"> + <u-sticky bgColor="white" :offsetTop="0" style=" position: -webkit-sticky;"> + <view class="set-search"> + <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝 " @search="search" @blur="search" shape="square" + :showAction="false"></u-search> + </view> + <view class="border"></view> + <u-tabs :list="list1" @click="click" :current="current" :scrollable="true" bgColor="white"></u-tabs> + </u-sticky> + <view class="list"> + <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in dataList" :key="index"> + <view class="top-title"> + <text>{{item.enforceReason}}</text> + <text class="status" v-if="item.checkStatus != -1" + :class="{status1: item.orderStatus == 1,status2: item.orderStatus == 2,status3: item.orderStatus == 3,status4: item.orderStatus == 4}">{{mapStatus[item.orderStatus]}}</text> + <text class="status status4" v-else>宸叉嫆缁�</text> + </view> + <view class="user-info"> + <text>{{item.applyUser || ''}}</text> + <!-- <view class="driver"></view> --> + + </view> + <view class="user-info"> + <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime || item.planMonth || ''}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} + </view> + </view> + </view> + </view> + <u-empty v-if="!dataList.length"></u-empty> + </view> + </view> +</template> + +<script> + import { + orderList + } from '@/api/policy.js' + export default { + data() { + return { + current: 0, + list1: [{ + name: '鍏ㄩ儴', + value: {} + }, { + name: '寰呭鎵�', + value: { + orderStatus: 1, + checkStatus: 0 + } + }, { + name: '寰呮墽琛�', + value: { + orderStatus: 2 + } + }, { + name: '寰呬笂鎶�', + value: { + orderStatus: 3 + } + }, { + name: '宸叉嫆缁�', + value: { + checkStatus: -1 + } + }, { + name: '宸蹭笂鎶�', + value: { + orderStatus: 4 + } + }, { + name: '浼佷笟宸茬‘璁�', + value: { + orderStatus: 5 + } + }], + queryParams: { + pageNum: 1, + pageSize: 10, + isAsc: "desc", + orderByColumn: "apply_time" + }, + total: 1, + dataList: [], + mapStatus: { + 1: '寰呭鎵�', + 2: "寰呮墽琛�", + 3: "寰呬笂鎶�", + '-1': "宸叉嫆缁�", + 4: "宸蹭笂鎶�", + 5: "浼佷笟宸茬‘璁�" + } + } + }, + onLoad() { + this.orderList() + }, + onReachBottom() { + if (this.dataList.length == this.total) { + return + } + this.queryParams.pageNum++ + this.orderList() + }, + methods: { + goReport(id) { + uni.navigateTo({ + url: `/policy/applyRecordDetails/applyRecordDetails?id=${id}` + }) + }, + click(e) { + this.dataList = [] + this.queryParams.pageNum = 1 + this.current = e.index + this.orderList() + }, + orderList() { + orderList({ + ...this.queryParams, + ...this.list1[this.current].value + }).then(val => { + this.total = val.data.total + this.dataList = [...this.dataList, ...val.data.rows] + }) + }, + search(e) { + this.dataList = [] + this.queryParams.pageNum = 1 + this.queryParams.companyName = e + this.orderList() + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./applyRecord.scss"; + + ::v-deep .u-sticky { + position: -webkit-sticky; + } +</style> \ No newline at end of file diff --git a/policy/policyApply/officePopup.vue b/policy/policyApply/officePopup.vue new file mode 100644 index 0000000..79e7d87 --- /dev/null +++ b/policy/policyApply/officePopup.vue @@ -0,0 +1,125 @@ +<template> + <u-popup mode="button" :safeAreaInsetBottom="false" :show="officeShow" @close="close" @open="open" z-index="8000" + bgColor="#fff"> + <view class="bg-box"> + <view class="title">閫夋嫨鎵ф硶閮ㄩ棬</view> + <scroll-view scroll-y="true" style="height: 500rpx;margin-top: 20rpx; margin-bottom: 100rpx;"> + <view v-if="list.length"> + <u-checkbox-group iconPlacement="right" v-model="checkboxValue" placement="column" @change="checkboxChange"> + <u-checkbox :customStyle="{marginBottom: '40rpx', }" v-for="(item, index) in list" :key="index" + :name="item.deptId" :label="item.deptName"> + </u-checkbox> + </u-checkbox-group> + </view> + <view class="set-color" v-else> + <view class="set-center"> + <u-icon name="file-text" size="30" color="gray"></u-icon> + <view style="width: 100%;margin-top: 20rpx;">鏆傛棤鏁版嵁</view> + </view> + </view> + </scroll-view> + <view class="set-flex set-flex-content-between down-options"> + <view class="button-per"> + <u-button @click="close">鍙栨秷</u-button> + </view> + <view class="button-per" @click="enteryResult"> + <u-button color="#1171E0">纭</u-button> + </view> + </view> + </view> + </u-popup> +</template> + +<script> + export default { + props: { + list: { + type: Array, + default: () => [] + }, + officeShow: { + type: Boolean, + default: false + } + }, + data() { + return { + checkboxValue: [], + resultData: {}, // 杩斿洖缁撴灉 + } + }, + + methods: { + checkboxChange(e) { + const deptIds = e.join(',') + const deptNames = e.map(item => this.list.find(obj => obj.deptId == item).deptName).join(',') + this.resultData = { + deptIds, + deptNames + } + }, + close() { + this.checkboxValue = [] + this.$emit('update:officeShow', false) + }, + open() { + console.log(this.list) + }, + enteryResult() { + if (!this.resultData.deptIds) return this.$u.toast('璇烽�夋嫨鎵ф硶閮ㄩ棬') + this.$emit('selectValue', this.resultData) + this.close() + }, + } + } +</script> + +<style scoped> + .bg-box { + position: fixed; + bottom: 0; + background-color: white; + border-radius: 20rpx 20rpx 0 0; + padding: 20rpx 32rpx 240rpx; + z-index: 1000000; + width: 100%; + box-sizing: border-box; + min-height: 400rpx; + max-height: 800rpx; + } + + .title { + font-size: 36rpx; + font-family: 500; + margin-bottom: 40rpx; + } + + .button-per { + width: 48%; + } + + .down-options { + position: fixed; + bottom: 40rpx; + width: 100%; + box-sizing: border-box; + padding: 0 32rpx; + left: 0; + } + + .set-color { + color: gray; + text-align: center; + display: flex; + justify-content: center; + align-items: center; + height: 300rpx; + } + + .set-center { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + } +</style> \ No newline at end of file diff --git a/policy/policyApply/policyApply.vue b/policy/policyApply/policyApply.vue index 0162820..45992d4 100644 --- a/policy/policyApply/policyApply.vue +++ b/policy/policyApply/policyApply.vue @@ -1,499 +1,546 @@ -<template> - <view class="page-box"> - <view class="content-box"> - <view class="form"> - <view class="form-item"> - <view class="form-label require"> - 鎵ф硶涓婚 - </view> - <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.enforceReason" /> - </view> - <view class="form-item"> - <view class="form-label require"> - 鎵ф硶瀵硅薄 - </view> - <view class="input" @click="search"> - <input type="text" style="width: 80%;" disabled placeholder="璇烽�夋嫨" :value="form.companyName" /> - <u-icon name="arrow-right"></u-icon> - <!-- <u-text text='鎼滅储' type="primary" style="width: 20%;" @click="search"></u-text> --> - </view> - </view> - <view class="form-item"> - <view class="form-label require"> - 鎵ф硶鏃堕棿 - </view> - <view class="input" @click="showTimeFun"> - <input type="text" placeholder="璇烽�夋嫨" disabled v-model.trim="form.planTimeStr" /> - <u-icon name="arrow-right"></u-icon> - </view> - </view> - <view class="form-item" @click="showType = true"> - <view class="form-label require"> - 妫�鏌ユ柟寮� - </view> - <view class="input"> - <input type="text" placeholder="璇烽�夋嫨" v-model.trim="form.enforceTypeName" disabled /> - <u-icon name="arrow-right"></u-icon> - </view> - </view> - <view class="form-item last"> - <view class="form-label require"> - 鎵ф硶鍐呭 - </view> - <view class="back"> - <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="璇疯緭鍏�" count - maxlength="500"></u--textarea> - </view> - </view> - </view> - </view> - <view class="content-box"> - <view class="form "> - <view class="form-item"> - <view class="form-label"> - 鎵ф硶浜哄憳 - </view> - <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyUser" disabled /> - </view> - <view class="form-item"> - <view class="form-label"> - 鎵ф硶閮ㄩ棬 - </view> - <!-- <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyDeptName" disabled/> --> - <view style="width: 60%;">{{form.applyDeptName}}</view> - </view> - <view class="form-item sui" style="align-items: flex-start;" @click="openPer"> - <view class="form-label "> - 闅忚浜哄憳 - </view> - <view> - <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">璇烽�夋嫨</view> - <view v-else> - <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index"> - {{item.peerUser}}({{item.peerDeptName}}) - </view> - </view> - </view> - <!-- <u-textarea border="none" disabled style="padding: 0;" placeholder="璇烽�夋嫨" ></u-textarea> --> - </view> - <view class="form-item down-2"> - <view class="form-label"> - 鏄惁閫氱煡浼佷笟 - </view> - <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch> - </view> - - </view> - </view> - <view class="down-options"> - <view class="button record" @click="applyRecord">鐢宠璁板綍</view> - <view class="button submit" @click="submitApply">鎻愪氦鐢宠</view> - </view> - <!-- <u-form label-position="top" label-width="120px"> - <u-form-item label="鎵ф硶涓婚"> - <u-input placeholder="璇疯緭鍏�" v-model="form.enforceReason"></u-input> - </u-form-item> - <u-form-item label="鎵ф硶瀵硅薄"> - <u-input placeholder="璇疯緭鍏�" v-model="form.companyName"> - <template slot="suffix"> - <text @click="search">鎼滅储</text> - </template> - </u-input> - </u-form-item> - <u-form-item label="鎵ф硶鏃堕棿" @click="showTimeFun"> - <u-input placeholder="璇疯緭鍏�" v-model="form.applyTime" readonly></u-input> - </u-form-item> - <u-form-item label="鎵ф硶绫诲瀷" @click="showType = true"> - <u-input placeholder="璇疯緭鍏�" v-model="form.enforceTypeName" readonly></u-input> - </u-form-item> - <u-form-item label="鎵ф硶鍐呭"> - <u-input placeholder="璇疯緭鍏�" v-model="form.regionReason"></u-input> - </u-form-item> - <u-form-item label="鎵ф硶浜哄憳"> - <u-input placeholder="璇疯緭鍏�" v-model="form.applyName"></u-input> - </u-form-item> - <u-form-item label="鎵ф硶閮ㄩ棬"> - <u-input placeholder="璇疯緭鍏�" v-model="form.applyDeptName"></u-input> - </u-form-item> - <u-form-item label="闅忚浜哄憳鏁伴噺"> - <u-input placeholder="璇疯緭鍏�" v-model="form.userNum"></u-input> - </u-form-item> - <u-form-item label="鏄惁閫氱煡浼佷笟"> - <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch> - </u-form-item> - </u-form> --> - <!-- <u-button @click="submitApply">鎻愪氦鐢宠</u-button> - <u-button @click="applyRecord">鐢宠璁板綍</u-button> --> - <!-- <u-picker :show="show" @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"> - - - </u-picker> --> - <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch" - @cancel="show = false" :columns="columns" keyName="companyName"></perPicker> - <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month" - :time-hide="[true, true, true, true, false, false]" /> - <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" - :columns="columnsType" keyName="dictLabel"></u-picker> - <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage> - </view> -</template> - -<script> - import { - orderAdd, - companyList, - enforceList - } from '@/api/policy.js' - import { - getInfo - } from '@/api/auth.js' - import { - getDicts - } from '@/api/data' - import perPage from './perPage' - import perPicker from './perPicker' - import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue" - export default { - components: { - YtDateTimePicker, - perPage, - perPicker - }, - data() { - return { - currentTime: "", - form: { - applyUser: '', - applyDeptName: '', - enforceType: 1, - isNoticeCompany: 0, - // regionReason: 0, - planTimeStr: '', - peers: [], - orderStatus: 1, - enforceContent: "", - companyName: "" - }, - show: false, - columns: [], - showTime: false, - columnsType: [], - showType: false, - minDate: '', - year: '', - endYear: '', - timeInit: '', - list: [], - startTime: "", - month: '' - } - }, - onLoad() { - this.year = new Date().getFullYear() - this.month = new Date().getMonth() + 1 - this.endYear = this.year + 5 - this.minDate = new Date().valueOf() - this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') - this.startTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') - this.getInfo() - this.getDicts() - this.enforceList() - }, - onShow() { - - }, - methods: { - enforceList() { - enforceList().then(val => { - this.list = val.data.data - }) - }, - getDicts() { - getDicts('enforce_type').then(val => { - this.columnsType = [val.data.data] - }) - }, - getInfo() { - getInfo().then(val => { - const value = val.data.data - // this.form.applyName = value.nickName - this.form.applyUser = value.nickName - this.form.applyId = value.userId - this.form.applyDeptName = value.dept.deptName - this.form.applyDeptId = value.dept.deptId - this.form.applyPhone = value.phonenumber - }) - }, - timeFilter(mode, options) { - let d = new Date() - // console.log(d.getFullYear()); - if (mode === 'year') { - return options.filter((option) => option >= d.getFullYear()) - } - if (mode === 'month') { - return options.filter((option) => option >= d.getMonth() + 1) - } - if (mode === 'minute') { - return options.filter((option) => option === '00' || option === '30'); - } - return options; - }, - authFile() { - if (!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")) { - return '璇峰~鍐欎富棰�' - } - if (!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")) { - return '璇烽�夋嫨鎵ф硶瀵硅薄' - } - // if(!this.form.companyId) { - // return '璇风偣鍑绘悳绱㈢‘璁ゆ墽娉曞璞�' - // } - if (!this.form.planTimeStr) { - return '璇峰~鍐欐墽娉曟椂闂�' - } - if (!this.form.enforceTypeName) { - return '璇烽�夋嫨妫�鏌ユ柟寮�' - } - console.log(!this.form.enforceContent.replace(/\s+/g, "")) - if (!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) { - return '璇峰~鍐欐墽娉曞唴瀹�' - } - // if(!this.form.peers.length){ - // return '璇烽�夋嫨闅忚浜哄憳' - // } - return '' - }, - submitApply() { - const res = this.authFile() - if (res) { - uni.showToast({ - title: res, - icon: 'none' - }) - return - } - orderAdd(this.form).then(val => { - if (val.data.code == 200) { - uni.showToast({ - title: '鎻愪氦鎴愬姛', - icon: 'none' - }) - setTimeout(() => { - uni.navigateBack() - }, 500) - } - }) - }, - applyRecord() { - uni.navigateTo({ - url: `/policy/applyRecord/applyRecord` - }) - }, - search() { - // companyList({companyName: this.form.companyName}).then(val => { - // if(val.data.code == 200){ - // if(!val.data.rows.length || !val.data.rows){ - // uni.showToast({ - // title: '娌℃湁绗﹀悎鐨勬暟鎹紝璇锋鏌ヨ緭鍏ョ殑鎵ф硶瀵硅薄', - // icon: 'none', - // duration: 3000 - // }) - // } else { - - // } - - // } - // }) - - this.$refs.perPicker.open() - }, - confirmSearch(e) { - let value = e - // const value = this.columns[0].find(item => item.companyName == e.value[0].companyName) - this.form.companyName = e.companyName - this.form.companyCode = value.companyCode - this.form.companyId = value.companyId - this.form.companyPhone = value.companyPhone - this.form.companyUser = value.companyUser - this.form.companyAddress = value.companyAddress - // console.log(this.form.companyName) - }, - setCompany(e) { - this.form.companyName = e - this.form.companyCode = '' - this.form.companyId = '' - this.form.companyPhone = '' - this.form.companyUser = '' - this.form.companyAddress = '' - }, - confirmTime(e) { - this.form.planTime = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00:00" - this.form.planTimeStr = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00" - this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM') - }, - showTimeFun() { - // this.showTime = true - this.$refs.myPicker.show(); - - }, - sheet() { - - }, - confirmType(e) { - this.form.enforceType = e.value[0].dictCode - this.form.enforceTypeName = e.value[0].dictLabel - this.showType = false - }, - changeValue(e, e1) { - this.currentTime = e.value - }, - openPer() { - this.$refs.perpage.open(this.list) - }, - selectValue(value) { - value.forEach(val => { - this.form.peers.push(val) - }); - this.form.peers = this.uniqueArrJson(this.form.peers, 'peerId') - }, - uniqueArrJson(arr, key) { - var newobj = {}, - newArr = []; - for (var i = 0; i < arr.length; i++) { - var item = arr[i]; - if (!newobj[item[key]]) { - newobj[item[key]] = newArr.push(item); - } - } - return newArr; - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } - - .sui .u-textarea { - padding: 0 !important; - } -</style> -<style scoped lang="scss"> - .page-box { - padding-bottom: 140rpx; - - .content-box { - margin: 20rpx 32rpx; - background-color: white; - padding: 24rpx; - border-radius: 10rpx; - } - - .form { - .form-item { - display: flex; - justify-content: flex-start; - align-items: center; - border-bottom: 2rpx solid #F1F1F1; - padding-bottom: 26rpx; - margin-bottom: 24rpx; - - .form-label { - font-size: 30rpx; - color: #4A4E60; - width: 40%; - } - - .input { - width: 60%; - display: flex; - justify-content: space-between; - align-items: center; - } - - .require { - &::after { - content: '*'; - color: #FF7500; - } - } - - } - - .down-2 { - margin-bottom: 0; - padding-bottom: 0; - border: none; - } - - .last { - margin-bottom: 0; - padding-bottom: 0; - border-bottom: none; - display: block; - - .form-label { - margin-bottom: 16rpx; - - } - - .back { - ::v-deep .u-textarea { - background-color: #F4F4F4; - border: none; - - .u-textarea__count { - background: none !important; - } - } - } - } - - } - } - - .down-options { - background-color: white; - position: fixed; - bottom: 0; - padding-bottom: 40rpx; - width: 100%; - padding: 22rpx 30rpx 40rpx; - z-index: 800; - display: flex; - justify-content: space-between; - align-items: center; - box-sizing: border-box; - - .record { - box-sizing: border-box; - border-radius: 20rpx; - border: 2rpx solid #ABD2FF; - background: #F0F8FF; - color: #1171E0; - font-size: 32rpx; - padding: 20rpx 30rpx; - width: 30%; - text-align: center; - } - - .submit { - border-radius: 20rpx; - border: 2rpx solid #1171E0; - background-color: #1171E0; - color: white; - width: 65%; - box-sizing: border-box; - padding: 20rpx 30rpx; - text-align: center; - } - } - - .sui {} - - ::v-deep .u-checkbox-label--right>text { - line-height: 54rpx !important; - margin-right: 15rpx; - } +<template> + <view class="page-box"> + <view class="content-box"> + <view class="form"> + <view class="form-item"> + <view class="form-label require"> + 璁″垝鍚嶇О + </view> + <input type="text" placeholder="璇疯緭鍏ヨ鍒掑悕绉�" v-model.trim="form.enforceReason" /> + </view> + <view class="form-item"> + <view class="form-label require"> + 琚鏌ュ璞� + </view> + <view class="input" @click="search"> + <input type="text" style="width: 80%;" disabled placeholder="璇烽�夋嫨琚鏌ュ璞�" :value="form.companyName" /> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + <view class="form-item"> + <view class="form-label require"> + 鎵ф硶鏃堕棿 + </view> + <view class="input" @click="showTimeFun"> + <input type="text" placeholder="璇烽�夋嫨" disabled v-model.trim="form.planTimeStr" /> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + <view class="form-item" @click="showType = true"> + <view class="form-label require"> + 妫�鏌ョ被鍨� + </view> + <view class="input"> + <input type="text" placeholder="璇烽�夋嫨妫�鏌ョ被鍨�" v-model.trim="form.enforceTypeName" disabled /> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + <view class="form-item last"> + <view class="form-label require"> + 妫�鏌ュ唴瀹� + </view> + <view class="back"> + <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="璇疯緭鍏ユ鏌ュ唴瀹�" count + maxlength="500"></u--textarea> + </view> + </view> + </view> + </view> + <view class="content-box"> + <view class="form "> + <view class="form-item"> + <view class="form-label"> + 鎵ф硶浜哄憳 + </view> + <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyUser" disabled /> + </view> + <view class="form-item"> + <view class="form-label"> + 鎵ц绉戝 + </view> + <!-- <input type="text" placeholder="璇疯緭鍏�" v-model.trim="form.applyDeptName" disabled/> --> + <view class="select-content" @tap="openSelectOffice"> + <view>{{form.applyDeptNames}}</view> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + <view class="form-item sui" style="align-items: flex-start;" @click="openPer"> + <view class="form-label "> + 闅忚浜哄憳 + </view> + <view> + <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">璇烽�夋嫨</view> + <view v-else> + <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index"> + {{item.peerUser}}({{item.peerDeptName}}) + </view> + </view> + </view> + </view> + <view class="form-item"> + <view class="form-label"> + 鏄惁閫氱煡浼佷笟 + </view> + <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch> + </view> + <view class="form-item" :class="{'down-2' : !isRectify }"> + <view class="form-label"> + 鏄惁鍒涘缓鏁存敼 + </view> + <u-switch v-model="isRectify" :activeValue="1" :inactiveValue="0" @change="changeRectify"></u-switch> + </view> + <view class="form-item down-2" v-if="isRectify == 1"> + <view class="form-label require"> + 鏁存敼璁″垝 + </view> + <view class="input" @click="searchRectify"> + <input type="text" style="width: 80%;" disabled placeholder="璇烽�夋嫨鏁存敼璁″垝" :value="rectifyName" /> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + </view> + </view> + <view class="down-options"> + <view class="button record" @click="applyRecord">鐢宠璁板綍</view> + <view class="button submit" @click="submitApply">鎻愪氦鐢宠</view> + </view> + <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch" + @cancel="show = false" :columns="columns" keyName="companyName"></perPicker> + <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month" + :time-hide="[true, true, true, true, false, false]" /> + <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" + :columns="columnsType" keyName="dictLabel"></u-picker> + <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage> + <officePopup :officeShow.sync="officeShow" :list="officeList" @selectValue="selectOfficeRes"></officePopup> + <rectifyPicker ref="rectifyPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmRectify" + :applyOrgId="form.applyOrgId" :companyId="form.companyId" @cancel="show = false" :columns="columns" + keyName="enforceReason"></rectifyPicker> + </view> +</template> + +<script> + import { + orderAdd, + companyList, + enforceList, + officeList, + } from '@/api/policy.js' + import { + getInfo + } from '@/api/auth.js' + import { + getDicts + } from '@/api/data' + import perPage from './perPage' + import officePopup from './officePopup' + import perPicker from './perPicker' + import rectifyPicker from './rectifyPicker' + import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue" + export default { + components: { + YtDateTimePicker, + perPage, + perPicker, + officePopup, + rectifyPicker + }, + data() { + return { + currentTime: "", + form: { + enforceReason: '', // 鎵ф硶涓婚 + companyName: "", // 鎵ф硶瀵硅薄 + planTime: '', // 鎵ф硶鏃堕棿 + planTimeStr: '', // 鎵ф硶鏃堕棿 + enforceType: '', // 妫�鏌ユ柟寮� + enforceTypeName: '', // 妫�鏌ユ柟寮忓悕绉� + enforceContent: "", // 鎵ф硶鍐呭 + applyUser: '', // 鎵ф硶浜哄憳 + applyOrgId: "", // 鍒跺畾鏈烘瀯id + applyOrgName: "", // 鍒跺畾鏈烘瀯鍚嶇О + applyDeptIds: "", // 鎵ц绉戝id + applyDeptNames: "", // 鎵ц绉戝鍚嶇О + peers: [], // 闅忚浜哄憳 + isNoticeCompany: 0, // 鏄惁閫氱煡浼佷笟 + orderStatus: 1, + joinOrderId: null, + }, + show: false, + columns: [], + showTime: false, + columnsType: [], + showType: false, + minDate: '', + year: '', + endYear: '', + timeInit: '', + list: [], + startTime: "", + month: '', + officeList: [], + officeShow: false, + isRectify: 0, // 鏄惁鍒涘缓鏁存敼 + rectifyName: '', // 鏁存敼鍏宠仈璁″垝鍚嶇О + } + }, + onLoad() { + this.year = new Date().getFullYear() + this.month = new Date().getMonth() + 1 + this.endYear = this.year + 5 + this.minDate = new Date().valueOf() + this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') + this.startTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM') + this.getInfo() + this.getDicts() + this.enforceList() + }, + onShow() { + + }, + methods: { + changeRectify(e) { + if (e == 0) { + this.form.joinOrderId = null + this.rectifyName = '' + } + }, + + enforceList() { + enforceList().then(val => { + this.list = val.data.data + }) + }, + getDicts() { + getDicts('enforce_type').then(val => { + this.columnsType = [val.data.data] + }) + }, + getInfo() { + getInfo().then(val => { + const value = val.data.data + // this.form.applyName = value.nickName + this.form.applyUser = value.nickName + this.form.applyId = value.userId + this.form.applyPhone = value.phonenumber + + this.form.applyOrgId = value.dept.parentId // 鍒跺畾鏈烘瀯id + this.form.applyOrgName = value.dept.parentName // 鍒跺畾鏈烘瀯鍚嶇О + this.form.applyDeptNames = value.dept.deptName // 绉戝鍚嶇О + this.form.applyDeptIds = value.dept.deptId // 绉戝id + + this.getOfficeList() + }) + }, + timeFilter(mode, options) { + let d = new Date() + // console.log(d.getFullYear()); + if (mode === 'year') { + return options.filter((option) => option >= d.getFullYear()) + } + if (mode === 'month') { + return options.filter((option) => option >= d.getMonth() + 1) + } + if (mode === 'minute') { + return options.filter((option) => option === '00' || option === '30'); + } + return options; + }, + authFile() { + if (!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")) { + return '璇峰~鍐欎富棰�' + } + if (!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")) { + return '璇烽�夋嫨鎵ф硶瀵硅薄' + } + if (!this.form.planTimeStr) { + return '璇峰~鍐欐墽娉曟椂闂�' + } + if (!this.form.enforceTypeName) { + return '璇烽�夋嫨妫�鏌ユ柟寮�' + } + if (!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) { + return '璇峰~鍐欐墽娉曞唴瀹�' + } + if (!this.form.applyDeptIds) { + return '璇烽�夋嫨鎵ф硶閮ㄩ棬' + } + // if(!this.form.peers.length){ + // return '璇烽�夋嫨闅忚浜哄憳' + // } + + if (this.isRectify == 1) { + if (this.form.joinOrderId == null) { + return '璇烽�夋嫨鏁存敼璁″垝' + } + } + return '' + }, + submitApply() { + const res = this.authFile() + if (res) { + uni.showToast({ + title: res, + icon: 'none' + }) + return + } + orderAdd(this.form).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '鎻愪氦鎴愬姛', + icon: 'none' + }) + setTimeout(() => { + uni.navigateBack() + }, 500) + } + }) + }, + applyRecord() { + uni.navigateTo({ + url: `/policy/applyRecord/applyRecord` + }) + }, + search() { + this.$refs.perPicker.open() + }, + + searchRectify() { + if (!this.form.companyId) return this.$u.toast('璇峰厛閫夋嫨浼佷笟') + this.$refs.rectifyPicker.open() + }, + + confirmRectify(e) { + console.log(e) + this.form.joinOrderId = e.orderId + this.rectifyName = e.enforceReason + }, + + confirmSearch(e) { + let value = e + this.form.companyName = e.companyName + this.form.companyCode = value.companyCode + this.form.companyId = value.companyId + this.form.companyPhone = value.companyPhone + this.form.companyUser = value.companyUser + this.form.companyAddress = value.companyAddress + this.form.joinOrderId = null + this.rectifyName = '' + }, + setCompany(e) { + this.form.companyName = e + this.form.companyCode = '' + this.form.companyId = '' + this.form.companyPhone = '' + this.form.companyUser = '' + this.form.companyAddress = '' + }, + confirmTime(e) { + this.form.planTime = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00:00" + this.form.planTimeStr = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00" + this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM') + }, + showTimeFun() { + // this.showTime = true + this.$refs.myPicker.show(); + + }, + sheet() { + + }, + confirmType(e) { + this.form.enforceType = e.value[0].dictCode + this.form.enforceTypeName = e.value[0].dictLabel + this.showType = false + }, + changeValue(e, e1) { + this.currentTime = e.value + }, + openPer() { + this.$refs.perpage.open(this.list) + }, + selectValue(value) { + value.forEach(val => { + this.form.peers.push(val) + }); + this.form.peers = this.uniqueArrJson(this.form.peers, 'peerId') + }, + uniqueArrJson(arr, key) { + var newobj = {}, + newArr = []; + for (var i = 0; i < arr.length; i++) { + var item = arr[i]; + if (!newobj[item[key]]) { + newobj[item[key]] = newArr.push(item); + } + } + return newArr; + }, + + openSelectOffice() { + this.officeShow = true + }, + + selectOfficeRes(data) { + this.form.applyDeptIds = data.deptIds + this.form.applyDeptNames = data.deptNames + }, + + async getOfficeList() { + const { + data: res + } = await officeList({ + pageNum: 1, + pageSize: 1000, + parentId: this.form.applyOrgId, + }) + this.officeList = res.data.map(obj => { + return { + deptId: obj.deptId, + deptName: `${this.form.applyOrgName}-${obj.deptName}` + } + }) + console.log(this.officeList) + }, + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } + + .sui .u-textarea { + padding: 0 !important; + } +</style> +<style scoped lang="scss"> + .page-box { + padding-bottom: 140rpx; + + .content-box { + margin: 20rpx 32rpx; + background-color: white; + padding: 24rpx; + border-radius: 10rpx; + } + + .form { + .form-item { + display: flex; + justify-content: flex-start; + align-items: center; + border-bottom: 2rpx solid #F1F1F1; + padding-bottom: 26rpx; + margin-bottom: 24rpx; + + .form-label { + width: 236rpx !important; + font-size: 30rpx; + color: #4A4E60; + width: 40%; + } + + .input { + width: 60%; + display: flex; + justify-content: space-between; + align-items: center; + } + + .require { + &::after { + content: '*'; + color: #FF7500; + } + } + + } + + .down-2 { + margin-bottom: 0; + padding-bottom: 0; + border: none; + } + + .last { + margin-bottom: 0; + padding-bottom: 0; + border-bottom: none; + display: block; + + .form-label { + margin-bottom: 16rpx; + + } + + .back { + ::v-deep .u-textarea { + background-color: #F4F4F4; + border: none; + + .u-textarea__count { + background: none !important; + } + } + } + } + + } + } + + .down-options { + background-color: white; + position: fixed; + bottom: 0; + padding-bottom: 40rpx; + width: 100%; + padding: 22rpx 30rpx 40rpx; + z-index: 800; + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + + .record { + box-sizing: border-box; + border-radius: 20rpx; + border: 2rpx solid #ABD2FF; + background: #F0F8FF; + color: #1171E0; + font-size: 32rpx; + padding: 20rpx 30rpx; + width: 30%; + text-align: center; + } + + .submit { + border-radius: 20rpx; + border: 2rpx solid #1171E0; + background-color: #1171E0; + color: white; + width: 65%; + box-sizing: border-box; + padding: 20rpx 30rpx; + text-align: center; + } + } + + .sui {} + + ::v-deep .u-checkbox-label--right>text { + line-height: 54rpx !important; + margin-right: 15rpx; + } + + .select-content { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + + .select-word { + flex: 1; + } + } </style> \ No newline at end of file diff --git a/policy/policyApply/rectifyPicker.vue b/policy/policyApply/rectifyPicker.vue new file mode 100644 index 0000000..1d47af9 --- /dev/null +++ b/policy/policyApply/rectifyPicker.vue @@ -0,0 +1,207 @@ +<template> + <view> + <u-popup mode="bottm" :show="show" @close="cancel" :safeAreaInsetBottom="false"> + <view class="picker-view-box"> + <view class="options" @click="cancel"> + <u-icon name="close" size="28rpx" color="#000"></u-icon> + </view> + <view class="set-flex"> + <u-search v-model="planName" @search="getRectifyList" @clear="clearContent" @confirm="getRectifyList" + @custom="getRectifyList()"></u-search> + <text @click="entery">纭畾</text> + </view> + <view> + <picker-view immediate-change :value="value" @change="bindChange" class="picker-view"> + <picker-view-column> + <view class="text-center" v-for="(item,index) in columns" :key="index">{{item[keyName]}}</view> + </picker-view-column> + </picker-view> + </view> + </view> + </u-popup> + <u-popup mode="bottm" :show="showadd" :safeAreaInsetBottom="false"> + <view class="picker-view-box"> + <view class="head"> + 鏂板涓存椂浼佷笟 + </view> + <view style="margin: 20rpx 0;"> + <u-input v-model="name" placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" type="text" /> + </view> + <view class="bz"> + 澶囨敞锛氬浼佷笟鎼滅储鏃犵粨鏋滄垨浼佷笟鏃犱簩缁寸爜锛屽垯璇ヤ紒涓氭湭鍦ㄥ钩鍙板唴杩涜娉ㄥ唽锛屽彲鐐瑰嚮鈥滄柊澧炩�濊緭鍏ヨ浼佷笟鍚嶇О鏂板涓存椂浼佷笟锛屾柊澧炵殑浼佷笟鍙渶瑕佹彁浜ょ敵璇�-瀹℃壒閫氳繃鍚庡嵆鍙~鎶ユ墽娉曠粨鏋滐紝鏃犻渶鎵紒涓氫簩缁寸爜銆傚浼佷笟宸叉湁浜岀淮鐮侊紝璇疯繑鍥炴悳绱㈤〉鎼滅储骞堕�夋嫨璇ヤ紒涓氾紝涓嶈鏂板涓存椂浼佷笟銆� + </view> + <view class="down-button"> + <view> + <u-button shape="circle" @click="close">鍙栨秷</u-button> + </view> + <view> + <u-button shape="circle" color="#1171E0" @click="addContent">纭畾</u-button> + </view> + </view> + </view> + + </u-popup> + </view> +</template> + +<script> + import { + companyList, + getRectifyList + } from '@/api/policy.js' + export default { + props: { + keyName: { + type: String, + default: '' + }, + companyId: { + type: String, + default: '' + }, + applyOrgId: { + type: String, + default: '' + }, + }, + data() { + return { + columns: [], + show: false, + planName: '', + index: 0, + value: [], + showadd: false, + name: '' + } + }, + + methods: { + clearContent() { + this.planName = "" + this.getRectifyList() + }, + cancel() { + this.show = false + }, + open() { + this.show = true + this.getRectifyList() + }, + bindChange(e) { + this.index = e.detail.value[0] + }, + getRectifyList() { + return getRectifyList({ + enforceReason: this.planName, + companyId: this.companyId, + applyOrgId: this.applyOrgId, + }).then(val => { + console.log(val) + if (val.data.code == 200) { + this.columns = val.data.data || [] + } + }) + }, + entery() { + const info = this.columns[this.index] + this.$emit('confirm', info) + this.show = false + }, + close() { + this.show = true + this.showadd = false + }, + add() { + this.show = false + this.showadd = true + }, + addContent() { + if (this.name == '') { + uni.showToast({ + title: '璇疯緭鍏ヤ紒涓氬悕绉�', + icon: 'none', + duration: 3000 + }) + return + } + this.$emit('setCompany', this.name) + this.show = false + this.showadd = false + } + + } + } +</script> + +<style lang="scss" scoped> + .picker-view-box { + position: fixed; + z-index: 120000; + background-color: white; + height: 600rpx; + padding: 20rpx 32rpx 0; + bottom: 0; + width: 100%; + box-sizing: border-box; + border-radius: 20rpx 20rpx 0 0; + } + + .options { + display: flex; + justify-content: flex-end; + align-items: center; + + .button { + position: absolute; + right: 20rpx; + top: -10rpx; + padding: 10rpx 20rpx; + border-radius: 10rpx; + font-size: 28rpx; + } + } + + .text-center { + text-align: center; + line-height: 34px; + } + + .picker-view { + width: 100%; + height: 500rpx; + margin-top: 20rpx; + } + + .set-flex { + display: flex; + justify-content: flex-start; + align-items: center; + + text { + display: inline-block; + background-color: $main-color; + color: white; + border-radius: 5px; + padding: 5px 15px; + margin-left: 20rpx; + font-size: 24rpx; + } + } + + .bz { + font-size: 24rpx; + color: #999; + } + + .down-button { + margin-top: 60rpx; + display: flex; + justify-content: space-between; + align-items: center; + + &>view { + width: 45%; + } + } +</style> \ No newline at end of file diff --git a/policy/reportDetails/reportDetails.vue b/policy/reportDetails/reportDetails.vue index 0c9453e..706a3aa 100644 --- a/policy/reportDetails/reportDetails.vue +++ b/policy/reportDetails/reportDetails.vue @@ -1,157 +1,213 @@ -<template> - <view class="page-box"> - <view class="box"> - <view class="form"> - <view class="form-item"> - <view class="label">鎵ф硶涓婚</view> - <view class="input">{{details.enforceReason}}</view> - </view> - <view class="form-item"> - <view class="label">鎵ф硶瀵硅薄</view> - <view class="input">{{details.companyName}}</view> - </view> - <view class="form-item"> - <view class="label">鎵ф硶鏃堕棿</view> - <view class="input">{{details.planTime}}</view> - </view> - <view class="form-item"> - <view class="label">妫�鏌ユ柟寮�</view> - <view class="input">{{enforceType}}</view> - </view> - <view class="form-item"> - <view class="label">鎵ф硶浜哄憳</view> - <view class="input">{{details.executeUser}}</view> - </view> - <view class="form-item"> - <view class="label">鎵ф硶閮ㄩ棬</view> - <view class="input">{{details.executeDeptName}}</view> - </view> - </view> - </view> - <view class="box"> - <view class="form-input"> - <view class="form-input-item" style="margin-bottom: 40rpx;"> - <view class="form-label require" style="margin-bottom: 40rpx;">鎵ф硶缁撴灉</view> - <view> - <u-radio-group v-model="form.regionStatus"> - <u-radio shape="circle" label="姝e父" name="0"></u-radio> - <u-radio shape="circle" label="寰呮暣鏀�" name="1"></u-radio> - </u-radio-group> - </view> - </view> - <view class="form-input-item"> - <view class="form-label require">鎵ф硶缁撴灉璇存槑</view> - <u-textarea placeholder="璇疯緭鍏�..." count v-model="form.regionReason" maxlength="500"></u-textarea> - </view> - - <view class="form-input-item"> - <view class="form-label require">鎵ф硶鐓х墖</view> - <view> - <view class="show-hint">鍙笂浼�9寮犲浘锛屽崟寮犱笉寰楄秴杩�10M</view> - </view> - <view> - <uploadImage ref="uploadImage"></uploadImage> - </view> - </view> - </view> - </view> - <view class="down"> - <view class="button" @click="startReport"> - 涓婃姤缁撴灉 - </view> - </view> - </view> -</template> - -<script> - import uploadImage from '@/policy/components/upload.vue' - import { - orderDetails, - orderUpd - } from '@/api/policy.js' - import { - getDicts - } from '@/api/data.js' - export default { - components: { - uploadImage - }, - data() { - return { - form: { - regionReason: '', - regionStatus: '0' - }, - fileList1: [], - details: {}, - enforceType: "" - } - }, - onLoad(options) { - this.orderDetails(options.id) - }, - methods: { - // 鑾峰彇鎵ф硶绫诲瀷鏋氫妇 - getDicts() { - getDicts('enforce_type').then(val => { - if (val.data.data) { - this.enforceType = val.data.data.find(item => item.dictCode == this.details.enforceType).dictLabel - } - }) - }, - // 鑾峰彇鎵ф硶鍗曡鎯� - orderDetails(id) { - orderDetails({ - orderId: id - }).then(val => { - this.details = val.data.data - this.getDicts() - }) - }, - // 涓婃姤鎵ц缁撴灉 - startReport() { - if (!this.form.regionReason) { - uni.showToast({ - title: '璇峰~鍐欐墽娉曠粨鏋�', - icon: 'none' - }) - return - } - const image = this.$refs.uploadImage.imageList - if (!image.length) { - uni.showToast({ - title: '璇蜂笂浼犳墽娉曞浘鐗�', - icon: 'none' - }) - return - } - this.details.regionReason = this.form.regionReason - this.form.regionImgs = image.join() - this.form.orderId = this.details.orderId - orderUpd(this.form).then(val => { - if (val.data.code == 200) { - uni.showToast({ - title: '涓婃姤鎴愬姛', - icon: 'none' - }) - setTimeout(() => { - uni.navigateBack() - }, 500) - } - }) - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./reportDetails.scss"; - - ::v-deep .u-radio { - margin-right: 80rpx; - } +<template> + <view class="page-box"> + <view class="box"> + <view class="form"> + <view class="form-item"> + <view class="label">鎵ф硶涓婚</view> + <view class="input">{{details.enforceReason}}</view> + </view> + <view class="form-item"> + <view class="label">鎵ф硶瀵硅薄</view> + <view class="input">{{details.companyName}}</view> + </view> + <view class="form-item"> + <view class="label">鎵ф硶鏃堕棿</view> + <view class="input">{{details.planTime || details.planMonth || ''}}</view> + </view> + <view class="form-item"> + <view class="label">妫�鏌ユ柟寮�</view> + <view class="input">{{enforceType}}</view> + </view> + <view class="form-item"> + <view class="label">鎵ф硶浜哄憳</view> + <view class="input">{{details.executeUser}}</view> + </view> + <view class="form-item"> + <view class="label">鎵ф硶閮ㄩ棬</view> + <view class="input">{{details.executeDeptName}}</view> + </view> + </view> + </view> + <view class="box"> + <view class="form-input"> + <view class="form-input-item" style="margin-bottom: 40rpx;"> + <view class="form-label require" style="margin-bottom: 40rpx;">鎵ф硶缁撴灉</view> + <view> + <u-radio-group v-model="form.regionStatus"> + <u-radio shape="circle" label="姝e父" name="0"></u-radio> + <u-radio shape="circle" label="寰呮暣鏀�" name="1"></u-radio> + </u-radio-group> + </view> + </view> + <view class="form-input-item"> + <view class="form-label require">鎵ф硶缁撴灉璇存槑</view> + <u-textarea placeholder="璇疯緭鍏�..." count v-model="form.regionReason" maxlength="500"></u-textarea> + </view> + + <!-- 鏄惁鍒涘缓鏁存敼璁″垝 --> + <view class="form-input-item" style="margin-bottom: 40rpx;"> + <view class="form-label require" style="margin-bottom: 40rpx;">鏄惁鍒涘缓鏁存敼璁″垝</view> + <view> + <u-radio-group v-model="isRectify" @change="changeRectify"> + <u-radio shape="circle" label="鏄�" :name="1"></u-radio> + <u-radio shape="circle" label="鍚�" :name="0"></u-radio> + </u-radio-group> + </view> + </view> + <!-- 鏁存敼鏃堕棿 --> + <view v-if="isRectify == 1" class="form-input-item" style="margin-bottom: 40rpx;"> + <view class="form-label require" style="margin-bottom: 40rpx;">鏁存敼璁″垝鏃堕棿</view> + <view class="form-input-content" @click="showTimeFun"> + <input type="text" placeholder="璇烽�夋嫨鏁存敼璁″垝鏃堕棿" disabled v-model.trim="form.planTime" /> + <u-icon name="arrow-right"></u-icon> + </view> + </view> + + <view class="form-input-item"> + <view class="form-label require">鎵ф硶鐓х墖</view> + <view> + <view class="show-hint">鍙笂浼�9寮犲浘锛屽崟寮犱笉寰楄秴杩�10M</view> + </view> + <view> + <uploadImage ref="uploadImage"></uploadImage> + </view> + </view> + </view> + </view> + <view class="down"> + <view class="button" @click="startReport"> + 涓婃姤缁撴灉 + </view> + </view> + + <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month" + :time-hide="[true, true, true, true, false, false]" /> + </view> +</template> + +<script> + import uploadImage from '@/policy/components/upload.vue' + import { + orderDetails, + orderUpd + } from '@/api/policy.js' + import { + getDicts + } from '@/api/data.js' + export default { + components: { + uploadImage + }, + data() { + return { + form: { + regionReason: '', + regionStatus: '0', + planTime: null, // 鏁存敼璁″垝鏃堕棿 + }, + fileList1: [], + details: {}, + enforceType: "", + timeInit: '', + planTimeStr: '', + isRectify: 0, // 鏄惁鍒涘缓鏁存敼 + } + }, + onLoad(options) { + this.orderDetails(options.id) + }, + methods: { + changeRectify(e) { + console.log(e) + if (e == 0) { + this.form.planTime = null + this.timeInit = '' + this.planTimeStr = '' + } + }, + + // 鑾峰彇鎵ф硶绫诲瀷鏋氫妇 + getDicts() { + getDicts('enforce_type').then(val => { + if (val.data.data) { + this.enforceType = val.data.data.find(item => item.dictCode == this.details.enforceType).dictLabel + } + }) + }, + // 鑾峰彇鎵ф硶鍗曡鎯� + orderDetails(id) { + orderDetails({ + orderId: id + }).then(val => { + this.details = val.data.data + this.getDicts() + }) + }, + // 涓婃姤鎵ц缁撴灉 + startReport() { + if (!this.form.regionReason) { + uni.showToast({ + title: '璇峰~鍐欐墽娉曠粨鏋�', + icon: 'none' + }) + return + } + const image = this.$refs.uploadImage.imageList + if (!image.length) { + uni.showToast({ + title: '璇蜂笂浼犳墽娉曞浘鐗�', + icon: 'none' + }) + return + } + this.details.regionReason = this.form.regionReason + this.form.regionImgs = image.join() + this.form.orderId = this.details.orderId + orderUpd(this.form).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '涓婃姤鎴愬姛', + icon: 'none' + }) + setTimeout(() => { + uni.navigateBack() + }, 500) + } + }) + }, + + showTimeFun() { + this.$refs.myPicker.show(); + }, + + confirmTime(e) { + this.form.planTime = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00:00" + this.planTimeStr = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00" + this.timeInit = this.$u.timeFormat(new Date(this.planTimeStr), 'yyyy-mm-dd hh:MM') + }, + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./reportDetails.scss"; + + ::v-deep .u-radio { + margin-right: 80rpx; + } + + .form-input-content { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + background-color: #F4F4F4; + border-radius: 12rpx; + padding: 10rpx 20rpx; + box-sizing: border-box; + } </style> \ No newline at end of file diff --git a/policy/reportPage/reportPage.vue b/policy/reportPage/reportPage.vue index 5b32d22..ce9744b 100644 --- a/policy/reportPage/reportPage.vue +++ b/policy/reportPage/reportPage.vue @@ -1,102 +1,104 @@ -<template> - <view class="page-box"> - <view class="list"> - <view class="list-item" v-for="(item,index) in list" :key="index"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status">寰呬笂鎶�</text> - </view> - <view class="user-info"> - <text>{{item.executeUser || ''}}</text> - <!-- <view class="driver"></view> - <text>{{item.executeDeptName}}</text> --> - </view> - <view class="user-info"> - <!-- <text>{{item.executeUser}}</text> - <view class="driver"></view> --> - <text>{{item.executeDeptName || ''}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - </view> - <view class="button" @click="goReport(item.orderId)" > - 涓婃姤 - </view> - </view> - </view> - <u-empty v-if="!list.length" mode="data"></u-empty> - - </view> - <view class="down"> - <view class="button" @click="goRecord"> - 涓婃姤璁板綍 - </view> - </view> - </view> -</template> - -<script> - import { executeList } from '@/api/policy.js' - export default { - data() { - return { - list: [], - total: 1, - queryParams: { - pageNum: 1, - pageSize: 10, - orderStatus: 3 - } - } - }, - onShow() { - this.queryParams.pageNum = 1 - this.list = [] - this.executeList() - }, - onReachBottom() { - if(this.list.length == this.list.length) { - return - } - this.queryParams.pageNum++ - this.executeList() - }, - methods: { - goReport(id) { - uni.navigateTo({ - url: `/policy/reportDetails/reportDetails?id=${id}` - }) - }, - goRecord() { - uni.navigateTo({ - url: `/policy/reportRecord/reportRecord` - }) - }, - // 鑾峰彇寰呮墽娉曞垪琛� - executeList() { - executeList(this.queryParams).then(val => { - this.list = [...this.list, ...val.data.rows] - this.total = val.data.total - }) - } - } - } -</script> -<style> - page{ - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> -@import "./reportPage.scss"; -</style> +<template> + <view class="page-box"> + <view class="list"> + <view class="list-item" v-for="(item,index) in list" :key="index"> + <view class="top-title"> + <text>{{item.enforceReason}}</text> + <text class="status">寰呬笂鎶�</text> + </view> + <view class="user-info"> + <text>{{item.executeUser || ''}}</text> + <!-- <view class="driver"></view> + <text>{{item.executeDeptName}}</text> --> + </view> + <view class="user-info"> + <!-- <text>{{item.executeUser}}</text> + <view class="driver"></view> --> + <text>{{item.executeDeptName || ''}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime || item.planMonth || ''}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} + </view> + </view> + <view class="button" @click="goReport(item.orderId)"> + 涓婃姤 + </view> + </view> + </view> + <u-empty v-if="!list.length" mode="data"></u-empty> + + </view> + <view class="down"> + <view class="button" @click="goRecord"> + 涓婃姤璁板綍 + </view> + </view> + </view> +</template> + +<script> + import { + executeList + } from '@/api/policy.js' + export default { + data() { + return { + list: [], + total: 1, + queryParams: { + pageNum: 1, + pageSize: 10, + orderStatus: 3 + } + } + }, + onShow() { + this.queryParams.pageNum = 1 + this.list = [] + this.executeList() + }, + onReachBottom() { + if (this.list.length == this.list.length) { + return + } + this.queryParams.pageNum++ + this.executeList() + }, + methods: { + goReport(id) { + uni.navigateTo({ + url: `/policy/reportDetails/reportDetails?id=${id}` + }) + }, + goRecord() { + uni.navigateTo({ + url: `/policy/reportRecord/reportRecord` + }) + }, + // 鑾峰彇寰呮墽娉曞垪琛� + executeList() { + executeList(this.queryParams).then(val => { + this.list = [...this.list, ...val.data.rows] + this.total = val.data.total + }) + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./reportPage.scss"; +</style> \ No newline at end of file diff --git a/policy/reportRecord/reportRecord.vue b/policy/reportRecord/reportRecord.vue index b2567c3..509374c 100644 --- a/policy/reportRecord/reportRecord.vue +++ b/policy/reportRecord/reportRecord.vue @@ -1,116 +1,117 @@ -<template> - <view class="page-box"> - <u-sticky bgColor="white"> - <view class="padding"> - <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝" v-model="queryParams.enforceReason" @clear="clean" shape="square" @confirm="search" :showAction="false"></u-search> - </view> - </u-sticky> - <view class="list"> - <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in list" :key="index"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status">宸茬粨鏉�</text> - </view> - <view class="user-info"> - <text>{{item.executeUser}}</text> - <!-- <view class="driver"></view> - <text>{{item.executeDeptName}}</text> --> - </view> - <view class="user-info"> - <!-- <text>{{item.executeUser}}</text> - <view class="driver"></view> --> - <text>{{item.executeDeptName}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - </view> - <!-- <view class="button" @click="goReport(item.orderId)" > - 涓婃姤 - </view> --> - </view> - </view> - <u-empty v-if="!list.length" mode="data"></u-empty> - - - </view> - </view> -</template> - -<script> - import { - executeList - } from '@/api/policy.js' - export default { - data() { - return { - list: [], - total: 1, - queryParams: { - pageNum: 1, - pageSize: 10, - orderStatus: 4, - isAsc: "desc", - orderByColumn: "execute_time" - }, - searchContent: '' - } - }, - onShow() { - this.queryParams.pageNum = 1 - this.list = [] - this.executeList() - }, - onReachBottom() { - if(this.list.length == this.total) { - return - } - this.queryParams.pageNum++ - this.executeList() - }, - methods: { - clean() { - this.queryParams.enforceReason = "" - this.list = [] - this.executeList() - }, - search() { - this.queryParams.pageNum = 1 - this.list = [] - this.executeList() - }, - goReport(order) { - uni.navigateTo({ - url: `/policy/applyRecordDetails/applyRecordDetails?id=${order}` - }) - }, - click() { - - }, - executeList() { - executeList(this.queryParams).then(val => { - this.list = [...this.list, ...val.data.rows] - this.total = val.data.total - console.log(this.total) - }) - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./reportRecord.scss"; +<template> + <view class="page-box"> + <u-sticky bgColor="white"> + <view class="padding"> + <u-search placeholder="璇疯緭鍏ョ敵璇疯褰曞叧閿瘝" v-model="queryParams.enforceReason" @clear="clean" shape="square" + @confirm="search" :showAction="false"></u-search> + </view> + </u-sticky> + <view class="list"> + <view class="list-item" @click="goReport(item.orderId)" v-for="(item,index) in list" :key="index"> + <view class="top-title"> + <text>{{item.enforceReason}}</text> + <text class="status">宸茬粨鏉�</text> + </view> + <view class="user-info"> + <text>{{item.executeUser}}</text> + <!-- <view class="driver"></view> + <text>{{item.executeDeptName}}</text> --> + </view> + <view class="user-info"> + <!-- <text>{{item.executeUser}}</text> + <view class="driver"></view> --> + <text>{{item.executeDeptName}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime || item.planMonth || ''}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime || ''}} + </view> + </view> + <!-- <view class="button" @click="goReport(item.orderId)" > + 涓婃姤 + </view> --> + </view> + </view> + <u-empty v-if="!list.length" mode="data"></u-empty> + + + </view> + </view> +</template> + +<script> + import { + executeList + } from '@/api/policy.js' + export default { + data() { + return { + list: [], + total: 1, + queryParams: { + pageNum: 1, + pageSize: 10, + orderStatus: 4, + isAsc: "desc", + orderByColumn: "execute_time" + }, + searchContent: '' + } + }, + onShow() { + this.queryParams.pageNum = 1 + this.list = [] + this.executeList() + }, + onReachBottom() { + if (this.list.length == this.total) { + return + } + this.queryParams.pageNum++ + this.executeList() + }, + methods: { + clean() { + this.queryParams.enforceReason = "" + this.list = [] + this.executeList() + }, + search() { + this.queryParams.pageNum = 1 + this.list = [] + this.executeList() + }, + goReport(order) { + uni.navigateTo({ + url: `/policy/applyRecordDetails/applyRecordDetails?id=${order}` + }) + }, + click() { + + }, + executeList() { + executeList(this.queryParams).then(val => { + this.list = [...this.list, ...val.data.rows] + this.total = val.data.total + console.log(this.total) + }) + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./reportRecord.scss"; </style> \ No newline at end of file diff --git a/policy/scodePage/scodePage.vue b/policy/scodePage/scodePage.vue index a91626f..ce49891 100644 --- a/policy/scodePage/scodePage.vue +++ b/policy/scodePage/scodePage.vue @@ -1,166 +1,166 @@ -<template> - <view> - <u-navbar @rightClick="rightClick" :autoBack="true" :placeholder="false" bgColor="transparent" - leftIconColor="white"> - </u-navbar> - <image src="/static/policy/back.png" mode="widthFix" class="back-image"></image> - <view class="page-box"> - <view class="code-hint"> - <template v-if="color == 'green'"> - <view> - <image src="/static/policy/success.png" mode="widthFix"></image> - <text>鎴愬姛-缁跨爜</text> - </view> - <view class="hint"> - 鍙姝や紒涓氳繘琛屾牳鏌� - </view> - </template> - <template v-if="color == 'red'"> - <view> - <image src="/static/policy/error.png" mode="widthFix"></image> - <text>澶辫触-绾㈢爜</text> - </view> - <view class="hint"> - 璇锋牳鏌ヤ紒涓氫俊鎭� - </view> - </template> - </view> - <!-- 浜岀淮鐮� --> - <view class="qrcode"> - <image src="/static/policy/qrcode-border.png" class="border" mode="widthFix"></image> - <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image> - <view class="code-time"> - <text>鎵爜鏃堕棿锛�</text>{{$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}} - </view> - </view> - <view class="code"> - <view class="item"> - <text class="label">鎵ф硶浜哄憳</text> - <text class="value">{{userInfo.nickName}}</text> - </view> - <view class="write-border"></view> - <view class="item"> - <text class="label">鎵ф硶閮ㄩ棬</text> - <text class="value">{{userInfo.dept.deptName}}</text> - </view> - </view> - <view class="hint-text"> - 褰撳墠浼佷笟瀛樺湪<text>{{list.length}}</text>鏉℃湭瀹屾垚鐨勬墽娉曚换鍔� - </view> - <!-- <view class="hint-text"> - 褰撳墠浼佷笟鏈畬鎴愮殑鎵ф硶浠诲姟 - </view> --> - <view class="down-block"> - <swiper style="height: 500rpx;" :indicator-dots="false" :interval="3000" :duration="1000"> - <swiper-item v-for="(item,index) in list" :key="index"> - <view class="box"> - <view class="title">{{item.enforceReason}}</view> - <view class="user-news"> - <text>{{item.applyUser}}</text> - <view class="driver"></view> - <text>{{item.applyDeptName}}</text> - </view> - <view class="font-13"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - <view class="border"></view> - <view class="font-12 margin-bottom"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="font-12"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - <view class="button-entery"> - <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">纭鎵ф硶</view> - </view> - </view> - </swiper-item> - </swiper> - </view> - </view> - <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" - :value="companyCode" - :options="{ backgroundColor: color,useDynamicSize: true, areaColor: '#ffffff', foregroundColor: '#ffffff' }"> - </uqrcode> - - </view> -</template> - -<script> - import { - getScanList, - doScanOrder - } from '@/api/policy.js' - import { - getInfo - } from '@/api/auth.js' - export default { - data() { - return { - companyCode: '', - uqrcodeImage: '', - list: [], - userInfo: {}, - color: '', - - } - }, - onReady() { - - }, - onLoad(options) { - this.getScanList(options.code) - - this.getInfo() - }, - methods: { - getScanList(companyCode) { - getScanList({ - companyCode - }).then(val => { - this.list = val.data.data.map(item => { - item['isSelect'] = true - return item - }) - if (this.list.length) { - this.color = 'green' - } else { - this.color = 'red' - } - this.companyCode = companyCode - setTimeout(() => { - this.$refs.uqrcode.toTempFilePath({ - success: res => { - this.uqrcodeImage = res.tempFilePath - } - }); - }, 500) - }) - }, - getInfo() { - getInfo().then(val => { - this.userInfo = val.data.data - }) - }, - doScanOrder(item, index) { - doScanOrder(item).then(val => { - if (val.data.code == 200) { - uni.showToast({ - title: '纭鎵ф硶鎴愬姛', - icon: 'none' - }) - this.list[index].isSelect = false - } - }) - } - } - } -</script> -<style> - page { - padding-bottom: 20rpx; - } -</style> -<style lang="scss" scoped> - @import "./scodePage.scss"; +<template> + <view> + <u-navbar @rightClick="rightClick" :autoBack="true" :placeholder="false" bgColor="transparent" + leftIconColor="white"> + </u-navbar> + <image src="/static/policy/back.png" mode="widthFix" class="back-image"></image> + <view class="page-box"> + <view class="code-hint"> + <template v-if="color == 'green'"> + <view> + <image src="/static/policy/success.png" mode="widthFix"></image> + <text>鎴愬姛-缁跨爜</text> + </view> + <view class="hint"> + 鍙姝や紒涓氳繘琛屾牳鏌� + </view> + </template> + <template v-if="color == 'red'"> + <view> + <image src="/static/policy/error.png" mode="widthFix"></image> + <text>澶辫触-绾㈢爜</text> + </view> + <view class="hint"> + 璇锋牳鏌ヤ紒涓氫俊鎭� + </view> + </template> + </view> + <!-- 浜岀淮鐮� --> + <view class="qrcode"> + <image src="/static/policy/qrcode-border.png" class="border" mode="widthFix"></image> + <image :src="uqrcodeImage" mode="widthFix" class="qrcode-1"></image> + <view class="code-time"> + <text>鎵爜鏃堕棿锛�</text>{{$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}} + </view> + </view> + <view class="code"> + <view class="item"> + <text class="label">鎵ф硶浜哄憳</text> + <text class="value">{{userInfo.nickName}}</text> + </view> + <view class="write-border"></view> + <view class="item"> + <text class="label">鎵ф硶閮ㄩ棬</text> + <text class="value">{{userInfo.dept.deptName}}</text> + </view> + </view> + <view class="hint-text"> + 褰撳墠浼佷笟瀛樺湪<text>{{list.length}}</text>鏉℃湭瀹屾垚鐨勬墽娉曚换鍔� + </view> + <!-- <view class="hint-text"> + 褰撳墠浼佷笟鏈畬鎴愮殑鎵ф硶浠诲姟 + </view> --> + <view class="down-block"> + <swiper style="height: 500rpx;" :indicator-dots="false" :interval="3000" :duration="1000"> + <swiper-item v-for="(item,index) in list" :key="index"> + <view class="box"> + <view class="title">{{item.enforceReason}}</view> + <view class="user-news"> + <text>{{item.applyUser || ''}}</text> + <view class="driver"></view> + <text>{{item.applyDeptName || item.applyDeptNames || ''}}</text> + </view> + <view class="font-13"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + <view class="border"></view> + <view class="font-12 margin-bottom"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime || item.planMonth || ''}} + </view> + <view class="font-12"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime || ''}} + </view> + <view class="button-entery"> + <view class="button" v-if="item.isSelect" @click="doScanOrder(item.orderId, index)">纭鎵ф硶</view> + </view> + </view> + </swiper-item> + </swiper> + </view> + </view> + <uqrcode class="hide-canvas" :size="470" sizeUnit="rpx" v-if="companyCode" ref="uqrcode" canvas-id="qrcode" + :value="companyCode" + :options="{ backgroundColor: color,useDynamicSize: true, areaColor: '#ffffff', foregroundColor: '#ffffff' }"> + </uqrcode> + + </view> +</template> + +<script> + import { + getScanList, + doScanOrder + } from '@/api/policy.js' + import { + getInfo + } from '@/api/auth.js' + export default { + data() { + return { + companyCode: '', + uqrcodeImage: '', + list: [], + userInfo: {}, + color: '', + + } + }, + onReady() { + + }, + onLoad(options) { + this.getScanList(options.code) + + this.getInfo() + }, + methods: { + getScanList(companyCode) { + getScanList({ + companyCode + }).then(val => { + this.list = val.data.data.map(item => { + item['isSelect'] = true + return item + }) + if (this.list.length) { + this.color = 'green' + } else { + this.color = 'red' + } + this.companyCode = companyCode + setTimeout(() => { + this.$refs.uqrcode.toTempFilePath({ + success: res => { + this.uqrcodeImage = res.tempFilePath + } + }); + }, 500) + }) + }, + getInfo() { + getInfo().then(val => { + this.userInfo = val.data.data + }) + }, + doScanOrder(item, index) { + doScanOrder(item).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '纭鎵ф硶鎴愬姛', + icon: 'none' + }) + this.list[index].isSelect = false + } + }) + } + } + } +</script> +<style> + page { + padding-bottom: 20rpx; + } +</style> +<style lang="scss" scoped> + @import "./scodePage.scss"; </style> \ No newline at end of file diff --git a/policy/translate/translate.vue b/policy/translate/translate.vue index fb41d6e..9ab73d3 100644 --- a/policy/translate/translate.vue +++ b/policy/translate/translate.vue @@ -1,262 +1,261 @@ -<template> - <view class="page-box"> - <view class="list"> - <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" - :class="{start: isJudege}"> - <view class="select-image" v-if="isJudege"> - <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image> - <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image> - </view> - <view class="list-item"> - <view class="top-title"> - <text>{{item.enforceReason}}</text> - <text class="status">寰呭鎵�</text> - </view> - <view class="user-info"> - <text>{{item.applyUser}}</text> - <!-- <view class="driver"></view> - <text>{{item.checkDeptName}}</text> --> - </view> - <view class="user-info"> - <!-- <text>{{item.applyUser}}</text> - <view class="driver"></view> --> - <text>{{item.checkDeptName}}</text> - </view> - <view class="set-line"> - <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} - </view> - - <view class="line"></view> - <view class="set-flex set-start set-flex-content-between"> - <view style="width: 75%;"> - <view class="set-line1"> - <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} - </view> - <view class="set-line1"> - <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} - </view> - <view class="look" v-if="item.show"> - <view class="set-line"> - <text>鎵ф硶涓婚锛�</text>{{item.enforceReason}} - </view> - <view class="set-line"> - <text>妫�鏌ユ柟寮忥細</text>{{handlerType(item.enforceType)}} - </view> - <view class="set-line set-line-flex"> - <text>鎵ф硶鍐呭锛�</text> - <view>{{item.enforceContent}}</view> - </view> - </view> - - </view> - <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])"> - 瀹℃壒 - </view> - </view> - <view @click="showItem(item)" class="icon" - style="text-align: center;display: flex;justify-content: center;align-items: center;"> - <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon> - <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon> - </view> - </view> - </view> - <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty> - </view> - <view class="down" v-if="!isJudege"> - <view class="button" @click="goRecord">瀹℃壒璁板綍</view> - <view class="button more-options" @click="moreJudeg">鎵归噺瀹℃壒</view> - </view> - <view class="down judge" v-else> - <view class="select-image" @click="allSelect()"> - <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image> - <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image> - <view class="show-check">鍏ㄩ��</view> - </view> - <view class="button more-options start-option" @click="moreStart">绔嬪嵆瀹℃壒</view> - </view> - <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom> - </view> -</template> - -<script> - import popupCom from '@/policy/components/popup.vue' - import { - checkLogList, - checkUpd - } from '@/api/policy.js' - import { - getDicts - } from '@/api/data.js' - export default { - components: { - popupCom - }, - data() { - return { - isJudege: false, - list: [ - - ], - total: 1, - queryms: { - pageNum: 1, - pageSize: 10, - orderStatus: 1, - isAsc: "desc", - orderByColumn: "apply_time" - }, - recordList: [], - typeList: [] - } - }, - computed: { - isAllSelect() { - if (this.list.length) { - const value = this.list.every(item => item.isSelect) - return value - } else { - return false - } - } - }, - onLoad() { - - this.getDicts() - }, - onReachBottom() { - if (this.total == this.list.length) { - return - } - this.queryms.pageNum++ - this.checkLogList() - }, - methods: { - showItem(item) { - item.show = !item.show - }, - handlerType(type) { - const value = this.typeList.find(item => item.dictCode == type) - if (value) { - return value.dictLabel - } else { - return '' - } - }, - getDicts(type) { - getDicts('enforce_type').then(val => { - this.typeList = val.data.data - this.checkLogList() - }) - }, - goRecord() { - uni.navigateTo({ - url: `/policy/translateRecord/translateRecord` - }) - }, - click() { - - }, - goStartJudeg(id) { - this.recordList = id - this.$refs.popup.open() - }, - // 鎵归噺瀹℃壒 - moreJudeg() { - if (!this.list.length) { - return - } - this.isJudege = true - }, - setIsSelect(index) { - if (!this.isJudege) { - return - } - this.list[index].isSelect = !this.list[index].isSelect - }, - allSelect() { - const value = this.isAllSelect - this.list.map(item => item.isSelect = !value) - }, - moreStart() { - const value = this.list.some(item => item.isSelect) - if (value) { - const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId) - // console.log(valueData) - this.goStartJudeg(valueData) - } else { - uni.showToast({ - title: '璇烽�夋嫨瀹℃壒', - icon: 'none' - }) - } - }, - entery(form) { - // 1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵� - checkUpd({ - ...form, - ids: this.recordList, - checkType: 2 - }).then(val => { - if (val.data.code == 200) { - uni.showToast({ - title: '瀹℃壒鎴愬姛', - icon: 'none' - }) - } - this.list = [] - this.queryms.pageNum = 1 - this.checkLogList() - this.$refs.popup.close() - this.isJudege = false - }) - - }, - cancelSelect() { - this.isJudege = false - this.list.map(item => item.isSelect = false) - }, - checkLogList() { - checkLogList(this.queryms).then(val => { - val.data.rows.map(item => { - item.isSelect = false - item.show = false - }) - this.list = [...this.list, ...val.data.rows] - this.total = val.data.total - }) - } - } - } -</script> -<style> - page { - background-color: #F4F4F4; - } -</style> -<style lang="scss" scoped> - @import "./translate.scss"; - - ::v-deep .u-radio { - margin-right: 84rpx !important; - } - - ::v-deep .u-textarea { - background-color: #F4F4F4 !important; - border: none; - } - - .set-line-flex { - display: flex; - justify-content: flex-start; - align-items: flex-start; - - text { - width: 28%; - display: inline-block; - } - - &>view { - width: 70%; - } - } +<template> + <view class="page-box"> + <view class="list"> + <view class="select-box" @click="setIsSelect(index)" v-for="(item,index) in list" :key="index" + :class="{start: isJudege}"> + <view class="select-image" v-if="isJudege"> + <image src="/static/policy/checkbox.png" mode="widthFix" v-show="item.isSelect"></image> + <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!item.isSelect"></image> + </view> + <view class="list-item"> + <view class="top-title"> + <text>{{item.enforceReason}}</text> + <text class="status">寰呭鎵�</text> + </view> + <view class="user-info"> + <text>{{item.applyUser}}</text> + <!-- <view class="driver"></view> + <text>{{item.checkDeptName}}</text> --> + </view> + <view class="user-info"> + <!-- <text>{{item.applyUser}}</text> + <view class="driver"></view> --> + <text>{{item.checkDeptName}}</text> + </view> + <view class="set-line"> + <text>鎵ф硶瀵硅薄锛�</text>{{item.companyName}} + </view> + + <view class="line"></view> + <view class="set-flex set-start set-flex-content-between"> + <view style="width: 75%;"> + <view class="set-line1"> + <text>鎵ф硶鏃堕棿锛�</text>{{item.planTime}} + </view> + <view class="set-line1"> + <text>鐢宠鏃堕棿锛�</text>{{item.applyTime}} + </view> + <view class="look" v-if="item.show"> + <view class="set-line"> + <text>鎵ф硶涓婚锛�</text>{{item.enforceReason}} + </view> + <view class="set-line"> + <text>妫�鏌ユ柟寮忥細</text>{{handlerType(item.enforceType)}} + </view> + <view class="set-line set-line-flex"> + <text>鎵ф硶鍐呭锛�</text> + <view>{{item.enforceContent}}</view> + </view> + </view> + + </view> + <view class="button" v-if="!isJudege" @click.self="goStartJudeg([item.orderId])"> + 瀹℃壒 + </view> + </view> + <view @click="showItem(item)" class="icon" + style="text-align: center;display: flex;justify-content: center;align-items: center;"> + <u-icon name="arrow-down" color="#bfbfbf" size="20" v-if="!item.show"></u-icon> + <u-icon name="arrow-up" color="#bfbfbf" size="20" v-else></u-icon> + </view> + </view> + </view> + <u-empty v-if="!list.length" style="margin-top: 200rpx;"></u-empty> + </view> + <view class="down" v-if="!isJudege"> + <view class="button" @click="goRecord">瀹℃壒璁板綍</view> + <view class="button more-options" @click="moreJudeg">鎵归噺瀹℃壒</view> + </view> + <view class="down judge" v-else> + <view class="select-image" @click="allSelect()"> + <image src="/static/policy/checkbox.png" mode="widthFix" v-show="isAllSelect"></image> + <image src="/static/policy/none-checkbox.png" mode="widthFix" v-show="!isAllSelect"></image> + <view class="show-check">鍏ㄩ��</view> + </view> + <view class="button more-options start-option" @click="moreStart">绔嬪嵆瀹℃壒</view> + </view> + <popupCom ref="popup" @entery="entery" @cancel="cancelSelect"></popupCom> + </view> +</template> + +<script> + import popupCom from '@/policy/components/popup.vue' + import { + checkLogList, + checkUpd + } from '@/api/policy.js' + import { + getDicts + } from '@/api/data.js' + export default { + components: { + popupCom + }, + data() { + return { + isJudege: false, + list: [ + + ], + total: 1, + queryms: { + pageNum: 1, + pageSize: 10, + orderStatus: 1, + isAsc: "desc", + orderByColumn: "apply_time" + }, + recordList: [], + typeList: [] + } + }, + computed: { + isAllSelect() { + if (this.list.length) { + const value = this.list.every(item => item.isSelect) + return value + } else { + return false + } + } + }, + onLoad() { + this.getDicts() + }, + onReachBottom() { + if (this.total <= this.list.length) { + return + } + this.queryms.pageNum++ + this.checkLogList() + }, + methods: { + showItem(item) { + item.show = !item.show + }, + handlerType(type) { + const value = this.typeList.find(item => item.dictCode == type) + if (value) { + return value.dictLabel + } else { + return '' + } + }, + getDicts(type) { + getDicts('enforce_type').then(val => { + this.typeList = val.data.data + this.checkLogList() + }) + }, + goRecord() { + uni.navigateTo({ + url: `/policy/translateRecord/translateRecord` + }) + }, + click() { + + }, + goStartJudeg(id) { + this.recordList = id + this.$refs.popup.open() + }, + // 鎵归噺瀹℃壒 + moreJudeg() { + if (!this.list.length) { + return + } + this.isJudege = true + }, + setIsSelect(index) { + if (!this.isJudege) { + return + } + this.list[index].isSelect = !this.list[index].isSelect + }, + allSelect() { + const value = this.isAllSelect + this.list.map(item => item.isSelect = !value) + }, + moreStart() { + const value = this.list.some(item => item.isSelect) + if (value) { + const valueData = this.list.filter(item => item.isSelect).map(item => item.orderId) + // console.log(valueData) + this.goStartJudeg(valueData) + } else { + uni.showToast({ + title: '璇烽�夋嫨瀹℃壒', + icon: 'none' + }) + } + }, + entery(form) { + // 1浼佷笟瀹℃壒锛�2鎵ф硶鍗曞鎵� + checkUpd({ + ...form, + ids: this.recordList, + checkType: 2 + }).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '瀹℃壒鎴愬姛', + icon: 'none' + }) + } + this.list = [] + this.queryms.pageNum = 1 + this.checkLogList() + this.$refs.popup.close() + this.isJudege = false + }) + + }, + cancelSelect() { + this.isJudege = false + this.list.map(item => item.isSelect = false) + }, + checkLogList() { + checkLogList(this.queryms).then(val => { + val.data.rows.map(item => { + item.isSelect = false + item.show = false + }) + this.list = [...this.list, ...val.data.rows] + this.total = val.data.total + }) + } + } + } +</script> +<style> + page { + background-color: #F4F4F4; + } +</style> +<style lang="scss" scoped> + @import "./translate.scss"; + + ::v-deep .u-radio { + margin-right: 84rpx !important; + } + + ::v-deep .u-textarea { + background-color: #F4F4F4 !important; + border: none; + } + + .set-line-flex { + display: flex; + justify-content: flex-start; + align-items: flex-start; + + text { + width: 28%; + display: inline-block; + } + + &>view { + width: 70%; + } + } </style> \ No newline at end of file diff --git a/qiye/record/compositeDetails.vue b/qiye/record/compositeDetails.vue new file mode 100644 index 0000000..0a4f716 --- /dev/null +++ b/qiye/record/compositeDetails.vue @@ -0,0 +1,494 @@ +<template> + <view> + <u-sticky bgColor="white"> + <u-navbar title="鎵ф硶璁板綍" :autoBack="true" placeholder></u-navbar> + <u-tabs :list="list" @change="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> + </u-sticky> + <view class="item" v-for="(item,index) in list1"> + <img src="/static/i05.png" class="img" alt="" /> + <view class="right"> + <view class="name"> + <view class="l"> + {{item.enforceReason}} + </view> + <!-- <template v-if="item.orderStatus==2"> + <view class="r color3"> + 鏈墽娉� + </view> + </template> + <template v-if="item.isEva==0"> + <view class="r color2"> + 寰呰瘎浠� + </view> + </template> + <template v-if="item.isEva==1"> + <view class="r color1"> + 宸茶瘎浠� + </view> + </template> --> + </view> + <view class="box"> + <view class="l"> + <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text + style="display: inline-block;width: 35%;">鎵ф硶鍗曚綅锛�</text> <text + style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p> + <p>鎵ф硶鏃堕棿锛歿{item.inTime || item.planTime}}</p> + </view> + <!-- 姝e父鎯呭喌 --> + <view class="r" @click="chakan(item.orderId)"> + 鍘绘煡鐪� + </view> + </view> + </view> + </view> + <u-empty v-if="!list1.length"></u-empty> + <view style="height: 150rpx;"></view> + + <view class="bottom" v-if="current == 0 && list1.length"> + <view class="one"> + <view class="b1" style="background-color: #1171E0;color: white;" @click="enterOrder()"> + 纭 + </view> + </view> + </view> + + <view class="bottom" v-if="list1.length && (current == 1 || current == 2)"> + <view class="two" v-if="current == 1"> + <view class="b2" @click="show = true"> + 鎶曡瘔 + </view> + <view class="b3" @click="pingjia()"> + 鎴戣璇勪环 + </view> + </view> + </view> + + <u-popup :show="show" @close="close" mode="bottom" round="10" closeable> + <view class="page-box"> + <view class="title1"> + 浼佷笟鎶曡瘔 + </view> + <view class="border"></view> + <view class="padding"> + <view class="font"> + 鎶曡瘔涓婚 + </view> + <view> + <u-radio-group v-model="complaintType" style="flex-Wrap: wrap;"> + <u-radio :customStyle="{marginRigth: '20rpx'}" v-for="(aa, ii) in datalist" :key="ii" :name="aa.dictCode"> + {{aa.dictLabel}} + </u-radio> + </u-radio-group> + </view> + <view class="font"> + 鎶曡瘔鍐呭 + </view> + <view class="margin-top"> + <u-textarea :cursorSpacing="70" v-model="complaintReason" placeholder="璇疯緭鍏�..."></u-textarea> + </view> + </view> + <view class="down"> + <view class="enter" @click="entery()">鎻愪氦</view> + </view> + </view> + </u-popup> + </view> +</template> + +<script> + import tabsCom from '@/qiye/components/bottom.vue' + import { + togetherList, + confirmOrderId, + orderComplaint + } from '@/api/qiye.js' + import { + getDicts + } from '@/api/data.js' + export default { + components: { + tabsCom + }, + data() { + return { + activeNumber: 1, + list: [ + // { + // name: '鍏ㄩ儴', + // value: { + + // } + // }, { + // name: '鏈墽娉�', + // value: { + // orderStatus: 2 + // } + // }, + { + name: '寰呯‘璁�', + value: { + orderStatus: 4 + } + }, { + name: '寰呰瘎浠�', + value: { + isEva: 0, + orderStatus: 5 + } + }, { + name: '宸茶瘎浠�', + value: { + isEva: 1 + } + } + ], + current: 0, + list1: [], + queryParams: { + pageNum: 1, + pageSize: 10, + companyId: '', + }, + total: 1, + + show: false, + complaintType: '', + complaintReason: '', + datalist: [] + } + }, + onLoad(options) { + this.id = options.id + this.getList() + getDicts('complaint_type').then(val => { + this.datalist = val.data.data + }) + uni.$on('refresh', () => { + this.queryParams.pageNum = 1 + this.list1 = [] + this.getList() + }) + }, + + onReachBottom() { + if (this.list1.length == this.total) { + return + } + this.queryParams.pageNum++ + this.getList() + }, + methods: { + chakan(id) { + uni.navigateTo({ + url: `/qiye/record/details?id=${id}&type=1` + }) + }, + + // 缁煎悎鏌ヤ竴娆� + jumpCompositeDetail(id) { + uni.navigateTo({ + url: `/qiye/record/compositeDetails?id=${id}` + }) + }, + + getList() { + uni.showLoading({ + title: '鍔犺浇涓�...', + mask: true + }) + let data = uni.getStorageSync("qiyedata") + this.queryParams.companyId = data.companyId + togetherList({ + ...this.queryParams, + comprehensiveId: this.id, + ...this.list[this.current].value + }).then(val => { + this.total = val.data.total + this.list1 = [...this.list1, ...val.data.rows] + }).catch(err => { + uni.hideLoading() + }) + }, + click(i) { + this.list1 = [] + this.queryParams.pageNum = 1 + this.current = i.index + // console.log(i.index) + + // if(i.index==1){ + // this.queryParams.isEva = 0 + // } + // if(i.index==2){ + // this.queryParams.orderStatus = 2 + // } + // if(i.index==3){ + // this.queryParams.isEva = 1 + // } + this.getList() + }, + + pingjia() { + uni.navigateTo({ + url: `/qiye/record/evaluate?id=${this.list1[0].orderId}&type=1` + }) + }, + + enterOrder() { + uni.showModal({ + title: '鎻愮ず', + content: '鏄惁纭璇ユ鏌ュ唴瀹癸紵', + success: val => { + if (val.confirm) { + confirmOrderId({ + orderId: this.list1[0].orderId + }).then(val => { + if (val.data.code == 200) { + uni.showToast({ + title: '纭鎴愬姛', + icon: 'none' + }) + this.list1 = [] + this.queryParams.pageNum = 1 + this.getList() + } + }) + } + } + }) + }, + + close() { + this.show = false + this.$emit('cancel') + }, + + entery() { + this.$emit('entery') + if (this.complaintType == '') { + uni.showToast({ + title: '璇烽�夋嫨鎶曡瘔涓婚', + icon: 'none' + }) + return + } + if (this.complaintReason == '') { + uni.showToast({ + title: '璇疯緭鍏ユ姇璇夊唴瀹�', + icon: 'none' + }) + return + } + let data = { + orderId: Number(this.list1[0].orderId), + complaintType: this.complaintType, + complaintReason: this.complaintReason + } + console.log(data) + //return; + orderComplaint(data).then(val => { + uni.showToast({ + title: '鎻愪氦鎴愬姛', + icon: 'none' + }) + this.show = false + }) + }, + } + } +</script> + +<style> + page { + background: #f4f4f4; + } +</style> +<style lang="scss"> + .item { + background: #fff; + border-radius: 5px; + padding: 24rpx; + box-sizing: border-box; + margin: 20rpx 32rpx; + display: flex; + + .img { + width: 56rpx; + height: 56rpx; + } + + .right { + width: 90%; + + .name { + display: flex; + justify-content: space-between; + + .l { + color: #202d44; + font-size: 32rpx; + line-height: 44rpx; + margin-bottom: 24rpx; + width: 80%; + } + + .r { + font-size: 28rpx; + width: 20%; + text-align: right; + } + } + + .box { + display: flex; + justify-content: space-between; + + .l { + font-size: 26rpx; + color: #7e8593; + max-width: 80%; + } + + .r { + width: 132rpx; + height: 64rpx; + line-height: 64rpx; + border-radius: 5px; + border: 1px solid #ABD2FF; + background: #F0F8FF; + color: #1171e0; + text-align: center; + font-size: 30rpx; + } + } + } + } + + .color1 { + color: #FE7B32; + //cheng + } + + .color2 { + color: #EB4746; + + //hong + } + + .color3 { + color: #3EB47A; + //lv + } + + .bottom { + position: fixed; + bottom: 0; + width: 100%; + left: 0; + height: 132rpx; + background: #fff; + + .one { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + + .b1 { + width: 686rpx; + height: 88rpx; + border-radius: 10px; + background: #F7F7F7; + line-height: 88rpx; + text-align: center; + } + } + + .two { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + + .b2 { + width: 146rpx; + height: 88rpx; + border-radius: 10px; + background: #F7F7F7; + line-height: 88rpx; + text-align: center; + margin-right: 18rpx; + } + + .b3 { + width: 524rpx; + height: 88rpx; + border-radius: 10px; + background: #1171E0; + line-height: 88rpx; + text-align: center; + color: #fff; + } + } + } + + .page-box { + padding: 24rpx 0; + + .font { + color: #4a4e60; + font-size: 32rpx; + margin-top: 20rpx; + } + + .title1 { + font-size: 36rpx; + font-weight: 700; + padding: 0 32rpx; + border-bottom: 2rpx solid #F4F4F4; + padding-bottom: 24rpx; + } + + .padding { + padding: 0 24rpx; + } + + .margin-top { + margin-top: 20rpx; + } + + .down { + padding: 34rpx 30rpx 30rpx; + display: flex; + justify-content: space-between; + + >view { + display: inline-block; + } + + .button { + padding: 20rpx 40rpx; + background: #F7F7F7; + border-radius: 20rpx; + } + + .enter { + width: 100%; + background: #1171E0; + color: white; + border-radius: 20rpx; + padding: 20rpx 40rpx; + text-align: center; + } + } + } + + /deep/.u-radio { + margin-bottom: 20rpx; + margin-right: 20rpx !important; + } + + /deep/.u-radio-group { + margin-top: 10rpx !important; + flex-wrap: wrap !important; + } +</style> \ No newline at end of file diff --git a/qiye/record/details.vue b/qiye/record/details.vue index a198fa5..c939414 100644 --- a/qiye/record/details.vue +++ b/qiye/record/details.vue @@ -169,7 +169,7 @@ </view> </view> </view> - <view class="bottom" v-if=" msg.orderStatus== 5"> + <view class="bottom" v-if="msg.orderStatus== 5 && from != 1"> <view class="one" v-if="msg.isComplaint != 1 && msg.isEva == 1"> <view class="b1" @click="open()"> 鎶曡瘔 @@ -189,14 +189,12 @@ </view> </view> </view> - <view class="bottom" v-if=" msg.orderStatus == 4"> + <view class="bottom" v-if="msg.orderStatus == 4 && from != 1"> <view class="one"> <view class="b1" style="background-color: #1171E0;color: white;" @click="enterOrder()"> 纭 </view> </view> - - </view> <u-popup :show="show" @close="close" mode="bottom" round="10" closeable> <view class="page-box"> @@ -259,11 +257,13 @@ //type: 2, show: false, list: [], - qlist: [] + qlist: [], + from: '', // 1 缁煎悎鏌ヤ竴娆� } }, onLoad(options) { this.id = options.id + this.from = options.type || '' //this.getdata(options.id) getDicts('complaint_type').then(val => { this.list = val.data.data @@ -280,7 +280,7 @@ enterOrder() { uni.showModal({ title: '鎻愮ず', - content: '纭璇ヨ鍗曪紵', + content: '鏄惁纭璇ユ鏌ュ唴瀹癸紵', success: val => { if (val.confirm) { confirmOrderId({ diff --git a/qiye/record/evaluate.vue b/qiye/record/evaluate.vue index 4218317..5a7b4de 100644 --- a/qiye/record/evaluate.vue +++ b/qiye/record/evaluate.vue @@ -1,218 +1,227 @@ <template> - <view style="margin-top: 20rpx;"> - <view class="wbox2"> - <view class="t"> - 鎵ф硶璇勪环 - </view> - <template v-for="(item,index) in msg"> - <view class="sbox" v-if="item.questionType==2"> - <view class="t2"> - {{item.questionName}} - </view> - <view class="xbox"> - <view @click="daxing(index,1)"> - <img src="/static/qiye/xing1.png" alt="" /> - <view> - 寰堢碂绯� - </view> - </view> - <view @click="daxing(index,2)"> - <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" /> - <img v-else src="/static/qiye/xing2.png" alt="" /> - <view :class="item.getScore==2?'hei':''"> - 涓嶆弧鎰� - </view> - </view> - <view @click="daxing(index,3)"> - <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" /> - <img v-else src="/static/qiye/xing2.png" alt="" /> - <view :class="item.getScore==3?'hei':''"> - 涓�鑸埇 - </view> - </view> - <view @click="daxing(index,4)"> - <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" /> - <img v-else src="/static/qiye/xing2.png" alt="" /> - <view :class="item.getScore==4?'hei':''"> - 婊℃剰 - </view> - </view> - <view @click="daxing(index,5)"> - <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" /> - <img v-else src="/static/qiye/xing2.png" alt="" /> - <view :class="item.getScore==5?'hei':''"> - 闈炲父婊℃剰 - </view> - </view> - </view> - <view class="line"></view> - </view> - <view class="sbox" v-if="item.questionType==1"> - <view class="t2"> - {{item.questionName}} - </view> - <u-radio-group v-model="item.remark" @change="radioGroupChange"> - <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId"> - {{aa.answerName}} - </u-radio> - </u-radio-group> - <view class="line"></view> - </view> - </template> - - - <view class="sbox"> - <view class="t2" style="margin-bottom: 30rpx;"> - 瀵规垜浠殑璇勪环 - </view> - <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="璇疯緭鍏�..."></u-textarea> - </view> - </view> - <view style="height: 200rpx;"></view> - <view class="bottom"> - <view class="b1" @click="submit()"> - 鎻愪氦 - </view> - </view> - </view> + <view style="margin-top: 20rpx;"> + <view class="wbox2"> + <view class="t"> + 鎵ф硶璇勪环 + </view> + <template v-for="(item,index) in msg"> + <view class="sbox" v-if="item.questionType==2"> + <view class="t2"> + {{item.questionName}} + </view> + <view class="xbox"> + <view @click="daxing(index,1)"> + <img src="/static/qiye/xing1.png" alt="" /> + <view> + 寰堢碂绯� + </view> + </view> + <view @click="daxing(index,2)"> + <img v-if="item.getScore>=2" src="/static/qiye/xing1.png" alt="" /> + <img v-else src="/static/qiye/xing2.png" alt="" /> + <view :class="item.getScore==2?'hei':''"> + 涓嶆弧鎰� + </view> + </view> + <view @click="daxing(index,3)"> + <img v-if="item.getScore>=3" src="/static/qiye/xing1.png" alt="" /> + <img v-else src="/static/qiye/xing2.png" alt="" /> + <view :class="item.getScore==3?'hei':''"> + 涓�鑸埇 + </view> + </view> + <view @click="daxing(index,4)"> + <img v-if="item.getScore>=4" src="/static/qiye/xing1.png" alt="" /> + <img v-else src="/static/qiye/xing2.png" alt="" /> + <view :class="item.getScore==4?'hei':''"> + 婊℃剰 + </view> + </view> + <view @click="daxing(index,5)"> + <img v-if="item.getScore>=5" src="/static/qiye/xing1.png" alt="" /> + <img v-else src="/static/qiye/xing2.png" alt="" /> + <view :class="item.getScore==5?'hei':''"> + 闈炲父婊℃剰 + </view> + </view> + </view> + <view class="line"></view> + </view> + <view class="sbox" v-if="item.questionType==1"> + <view class="t2"> + {{item.questionName}} + </view> + <u-radio-group v-model="item.remark" @change="radioGroupChange"> + <u-radio v-for="(aa, ii) in item.answerList" :key="ii" :name="aa.answerId"> + {{aa.answerName}} + </u-radio> + </u-radio-group> + <view class="line"></view> + </view> + </template> + + + <view class="sbox"> + <view class="t2" style="margin-bottom: 30rpx;"> + 瀵规垜浠殑璇勪环 + </view> + <u-textarea :cursorSpacing="70" v-model="questionRemark" placeholder="璇疯緭鍏�..."></u-textarea> + </view> + </view> + <view style="height: 200rpx;"></view> + <view class="bottom"> + <view class="b1" @click="submit()"> + 鎻愪氦 + </view> + </view> + </view> </template> <script> - import { evaluate,saveOrder } from '@/api/qiye.js' - - export default { - data() { - return { - xing: 5, - value: 'orange', - msg:[], - questionRemark:'', - orderId:'' - } - }, - onLoad(options) { - this.orderId = options.id - //this.getdata(options.id) - evaluate().then(val => { - this.msg = val.data.data.questionList - for(let i = 0;i<this.msg.length;i++){ - if(this.msg[i].questionType==2){ - this.msg[i].getScore = 5 - } - } - //console.log(this.msg) - }) - }, - methods: { - daxing(i,a) { - this.msg[i].getScore = a - //this.xing = a - }, - radioGroupChange(e){ - //console.log(this.msg) - }, - submit(){ - let data = { - orderId:this.orderId, - questionList:this.msg, - questionRemark:this.questionRemark - } - console.log(data) - //return; - saveOrder(data).then(val => { - uni.showToast({ - title: '鎻愪氦鎴愬姛', - icon: 'none' - }) - setTimeout(() => { - uni.navigateBack() - }, 500) - }) - } - } - } + import { + evaluate, + saveOrder + } from '@/api/qiye.js' + + export default { + data() { + return { + type: '', // 1缁煎悎鏌ヤ竴娆� + xing: 5, + value: 'orange', + msg: [], + questionRemark: '', + orderId: '' + } + }, + onLoad(options) { + this.orderId = options.id + this.type = options.type || '' + //this.getdata(options.id) + evaluate().then(val => { + this.msg = val.data.data.questionList + for (let i = 0; i < this.msg.length; i++) { + if (this.msg[i].questionType == 2) { + this.msg[i].getScore = 5 + } + } + //console.log(this.msg) + }) + }, + methods: { + daxing(i, a) { + this.msg[i].getScore = a + //this.xing = a + }, + radioGroupChange(e) { + //console.log(this.msg) + }, + submit() { + let data = { + orderId: this.orderId, + questionList: this.msg, + questionRemark: this.questionRemark + } + console.log(data) + //return; + saveOrder(data).then(val => { + uni.showToast({ + title: '鎻愪氦鎴愬姛', + icon: 'none' + }) + setTimeout(() => { + uni.navigateBack() + if (this.type == 1) { + uni.$emit('refresh') + } + }, 500) + }) + } + } + } </script> <style> - page { - background: #F4F4F4; - } + page { + background: #F4F4F4; + } </style> <style lang="scss" scoped> - .wbox2 { - background: #fff; - border-radius: 5px; - box-sizing: border-box; - margin: 0 32rpx; + .wbox2 { + background: #fff; + border-radius: 5px; + box-sizing: border-box; + margin: 0 32rpx; - .t { - padding: 24rpx; - border-bottom: 1px solid #EEEEEE; - color: #202d44; - font-size: 36rpx; - font-weight: bold; - } + .t { + padding: 24rpx; + border-bottom: 1px solid #EEEEEE; + color: #202d44; + font-size: 36rpx; + font-weight: bold; + } - .sbox { - padding: 24rpx; + .sbox { + padding: 24rpx; - .line { - border-bottom: 1px dashed #f1f1f1; - margin-top: 32rpx; - } + .line { + border-bottom: 1px dashed #f1f1f1; + margin-top: 32rpx; + } - .xbox { - display: flex; - margin-top: 36rpx; - justify-content: space-between; + .xbox { + display: flex; + margin-top: 36rpx; + justify-content: space-between; - img { - width: 74rpx; - height: 74rpx; - } + img { + width: 74rpx; + height: 74rpx; + } - >view { - text-align: center; - font-size: 28rpx; - color: #C3C6CD; - } - } - } - } + >view { + text-align: center; + font-size: 28rpx; + color: #C3C6CD; + } + } + } + } - ::v-deep .u-radio-group { - margin-top: 20rpx; + ::v-deep .u-radio-group { + margin-top: 20rpx; - .u-radio { - margin-right: 20rpx; - } - } + .u-radio { + margin-right: 20rpx; + } + } - .hei { - color: #202D44; - } -.bottom { - position: fixed; - bottom: 0; - width: 100%; - left: 0; - height: 132rpx; - background: #fff; - display: flex; - justify-content: center; - align-items: center; - .b1 { - width: 686rpx; - height: 88rpx; - border-radius: 10px; - background: #1171E0; - line-height: 88rpx; - text-align: center; - color: #fff; - } - + .hei { + color: #202D44; + } - - } + .bottom { + position: fixed; + bottom: 0; + width: 100%; + left: 0; + height: 132rpx; + background: #fff; + display: flex; + justify-content: center; + align-items: center; + .b1 { + width: 686rpx; + height: 88rpx; + border-radius: 10px; + background: #1171E0; + line-height: 88rpx; + text-align: center; + color: #fff; + } + + + + } </style> \ No newline at end of file diff --git a/qiye/record/record.vue b/qiye/record/record.vue index b117ca2..795636d 100644 --- a/qiye/record/record.vue +++ b/qiye/record/record.vue @@ -1,48 +1,57 @@ <template> - <view> + <view> - <u-sticky bgColor="white"> - <u-navbar title="鎵ф硶璁板綍" :autoBack="true" placeholder> - <view slot="left"></view> - </u-navbar> - <u-tabs :list="list" @change="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> - </u-sticky> - <view class="item" v-for="(item,index) in list1"> - <img src="/static/i05.png" class="img" alt="" /> - <view class="right"> - <view class="name"> - <view class="l"> - {{item.companyName}} - </view> - <template v-if="item.orderStatus==2"> - <view class="r color3"> - 鏈墽娉� - </view> - </template> - <template v-if="item.isEva==0"> - <view class="r color2"> - 寰呰瘎浠� - </view> - </template> - <template v-if="item.isEva==1"> - <view class="r color1"> - 宸茶瘎浠� - </view> - </template> - </view> - <view class="box"> - <view class="l"> - <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text style="display: inline-block;width: 35%;">鎵ф硶鍗曚綅锛�</text> <text style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p> - <p>鎵ф硶鏃堕棿锛歿{item.inTime || item.planTime}}</p> - </view> - <view class="r" @click="chakan(item.orderId)"> - 鍘绘煡鐪� - </view> - </view> - </view> - </view> - <u-empty v-if="!list1.length"></u-empty> - <!-- <view class="item"> + <u-sticky bgColor="white"> + <u-navbar title="鎵ф硶璁板綍" :autoBack="true" placeholder> + <view slot="left"></view> + </u-navbar> + <u-tabs :list="list" @change="click" :current="current" :scrollable="false" bgColor="white"></u-tabs> + </u-sticky> + <view class="item" v-for="(item,index) in list1"> + <img src="/static/i05.png" class="img" alt="" /> + <view class="right"> + <view class="name"> + <view class="l"> + {{item.enforceReason}} + </view> + <!-- <template v-if="item.orderStatus==2"> + <view class="r color3"> + 鏈墽娉� + </view> + </template> + <template v-if="item.isEva==0"> + <view class="r color2"> + 寰呰瘎浠� + </view> + </template> + <template v-if="item.isEva==1"> + <view class="r color1"> + 宸茶瘎浠� + </view> + </template> --> + </view> + <view class="box"> + <view class="l"> + <p style="display: flex;justify-content: flex-start;align-items: flex-start;"><text + style="display: inline-block;width: 35%;">鎵ф硶鍗曚綅锛�</text> <text + style="display: inline-block;width: 65%;">{{item.executeDeptName|| item.applyDeptName}}</text></p> + <p>鎵ф硶鏃堕棿锛歿{item.inTime || item.planTime}}</p> + </view> + + <!-- 缁煎悎鏌ヤ竴娆� --> + <view v-if="item.orderType == 2" class="r" @click="jumpCompositeDetail(item.comprehensiveId)"> + 鍘绘煡鐪� + </view> + <!-- 姝e父鎯呭喌 --> + <view v-else class="r" @click="chakan(item.orderId)"> + 鍘绘煡鐪� + </view> + + </view> + </view> + </view> + <u-empty v-if="!list1.length"></u-empty> + <!-- <view class="item"> <img src="/static/i05.png" class="img" alt="" /> <view class="right"> <view class="name"> @@ -86,197 +95,208 @@ </view> </view> </view> --> - <view style="height: 150rpx;"></view> - <tabsCom :activeNumber.sync="activeNumber"></tabsCom> + <view style="height: 150rpx;"></view> + <tabsCom :activeNumber.sync="activeNumber"></tabsCom> - </view> + </view> </template> <script> - import tabsCom from '@/qiye/components/bottom.vue' - import { - companyList - } from '@/api/qiye.js' + import tabsCom from '@/qiye/components/bottom.vue' + import { + companyList + } from '@/api/qiye.js' - export default { - components: { - tabsCom - }, - data() { - return { - activeNumber: 1, - list: [{ - name: '鍏ㄩ儴', - value: { + export default { + components: { + tabsCom + }, + data() { + return { + activeNumber: 1, + list: [ + // { + // name: '鍏ㄩ儴', + // value: { - } - }, { - name: '鏈墽娉�', - value: { - orderStatus: 2 - } - }, { - name: '寰呯‘璁�', - value: { - orderStatus: 4 - } - }, { - name: '寰呰瘎浠�', - value: { - isEva: 0, - orderStatus: 5 - } - },{ - name: '宸茶瘎浠�', - value: { - isEva: 1 - } - }], - current: 0, - list1: [], - queryParams: { - pageNum: 1, - pageSize: 10, - companyId: '', - }, - total: 1, - } - }, - onShow() { - this.list1 = [] - this.queryParams.pageNum = 1 - this.getList() - }, - onReachBottom() { - if (this.list1.length == this.total) { - return - } - this.queryParams.pageNum++ - this.getList() - }, - methods: { - chakan(id) { - uni.navigateTo({ - url: `/qiye/record/details?id=${id}` - }) - }, - getList() { - uni.showLoading({ - title: '鍔犺浇涓�...', - mask: true - }) - let data = uni.getStorageSync("qiyedata") - this.queryParams.companyId = data.companyId - companyList({ - ...this.queryParams, - ...this.list[this.current].value - }).then(val => { - this.total = val.data.total - this.list1 = [...this.list1, ...val.data.rows] - }).catch(err => { - uni.hideLoading() - }) - }, - click(i) { - this.list1 = [] - this.queryParams.pageNum = 1 - this.current = i.index - // console.log(i.index) + // } + // }, { + // name: '鏈墽娉�', + // value: { + // orderStatus: 2 + // } + // }, + { + name: '寰呯‘璁�', + value: { + orderStatus: 4 + } + }, { + name: '寰呰瘎浠�', + value: { + isEva: 0, + orderStatus: 5 + } + }, { + name: '宸茶瘎浠�', + value: { + isEva: 1 + } + } + ], + current: 0, + list1: [], + queryParams: { + pageNum: 1, + pageSize: 10, + companyId: '', + }, + total: 1, + } + }, + onShow() { + this.list1 = [] + this.queryParams.pageNum = 1 + this.getList() + }, + onReachBottom() { + if (this.list1.length == this.total) { + return + } + this.queryParams.pageNum++ + this.getList() + }, + methods: { + chakan(id) { + uni.navigateTo({ + url: `/qiye/record/details?id=${id}` + }) + }, - // if(i.index==1){ - // this.queryParams.isEva = 0 - // } - // if(i.index==2){ - // this.queryParams.orderStatus = 2 - // } - // if(i.index==3){ - // this.queryParams.isEva = 1 - // } - this.getList() - } - } - } + // 缁煎悎鏌ヤ竴娆� + jumpCompositeDetail(id) { + uni.navigateTo({ + url: `/qiye/record/compositeDetails?id=${id}` + }) + }, + + getList() { + uni.showLoading({ + title: '鍔犺浇涓�...', + mask: true + }) + let data = uni.getStorageSync("qiyedata") + this.queryParams.companyId = data.companyId + companyList({ + ...this.queryParams, + ...this.list[this.current].value + }).then(val => { + this.total = val.data.total + this.list1 = [...this.list1, ...val.data.rows] + }).catch(err => { + uni.hideLoading() + }) + }, + click(i) { + this.list1 = [] + this.queryParams.pageNum = 1 + this.current = i.index + // console.log(i.index) + + // if(i.index==1){ + // this.queryParams.isEva = 0 + // } + // if(i.index==2){ + // this.queryParams.orderStatus = 2 + // } + // if(i.index==3){ + // this.queryParams.isEva = 1 + // } + this.getList() + } + } + } </script> <style> - page { - background: #f4f4f4; - } + page { + background: #f4f4f4; + } </style> <style lang="scss" scoped> - .item { - background: #fff; - border-radius: 5px; - padding: 24rpx; - box-sizing: border-box; - margin: 20rpx 32rpx; - display: flex; + .item { + background: #fff; + border-radius: 5px; + padding: 24rpx; + box-sizing: border-box; + margin: 20rpx 32rpx; + display: flex; - .img { - width: 56rpx; - height: 56rpx; - } + .img { + width: 56rpx; + height: 56rpx; + } - .right { - width: 90%; + .right { + width: 90%; - .name { - display: flex; - justify-content: space-between; + .name { + display: flex; + justify-content: space-between; - .l { - color: #202d44; - font-size: 32rpx; - line-height: 44rpx; - margin-bottom: 24rpx; - width: 80%; - } + .l { + color: #202d44; + font-size: 32rpx; + line-height: 44rpx; + margin-bottom: 24rpx; + width: 80%; + } - .r { - font-size: 28rpx; - width: 20%; - text-align: right; - } - } + .r { + font-size: 28rpx; + width: 20%; + text-align: right; + } + } - .box { - display: flex; - justify-content: space-between; + .box { + display: flex; + justify-content: space-between; - .l { - font-size: 26rpx; - color: #7e8593; - max-width: 80%; - } + .l { + font-size: 26rpx; + color: #7e8593; + max-width: 80%; + } - .r { - width: 132rpx; - height: 64rpx; - line-height: 64rpx; - border-radius: 5px; - border: 1px solid #ABD2FF; - background: #F0F8FF; - color: #1171e0; - text-align: center; - font-size: 30rpx; - } - } - } - } + .r { + width: 132rpx; + height: 64rpx; + line-height: 64rpx; + border-radius: 5px; + border: 1px solid #ABD2FF; + background: #F0F8FF; + color: #1171e0; + text-align: center; + font-size: 30rpx; + } + } + } + } - .color1 { - color: #FE7B32; - //cheng - } + .color1 { + color: #FE7B32; + //cheng + } - .color2 { - color: #EB4746; + .color2 { + color: #EB4746; - //hong - } + //hong + } - .color3 { - color: #3EB47A; - //lv - } + .color3 { + color: #3EB47A; + //lv + } </style> \ No newline at end of file -- Gitblit v1.9.1