From 233a467167e2b363098cc7fa63e7f26d1d15507b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期日, 27 四月 2025 16:23:28 +0800
Subject: [PATCH] 线索任务
---
pages/cluetask/home/statistic-proxy.js | 59 +++++++++++++-
app.json | 3
pages/cluetask/question/index.js | 14 +++
pages/cluetask/question/index.wxml | 4
config/index.js | 4
pages/cluetask/home/options-proxy.js | 25 +++---
services/clue/fetchClue.js | 38 +++++++++
pages/cluetask/home/tasks-proxy.js | 14 +++
project.private.config.json | 2
pages/cluetask/home/tasks.wxml | 7 +
pages/cluetask/home/tasks.wxss | 3
pages/cluetask/home/index.js | 30 +++++--
12 files changed, 170 insertions(+), 33 deletions(-)
diff --git a/app.json b/app.json
index 3598588..16ad222 100644
--- a/app.json
+++ b/app.json
@@ -136,6 +136,7 @@
}
},
"requiredPrivateInfos": [
- "chooseLocation"
+ "chooseLocation",
+ "getLocation"
]
}
\ No newline at end of file
diff --git a/config/index.js b/config/index.js
index 6894fb8..ece4cb1 100644
--- a/config/index.js
+++ b/config/index.js
@@ -19,9 +19,9 @@
// 閬撹矾搴旀�ョ嚎绱�
const clueUrl = 'https://fyami.com.cn:448/';
-// const clueUrl = 'http://192.168.0.110:8080/';
+// const clueUrl = 'http://192.168.0.110:8084/';
const cu = 'https://fyami.com.cn:448';
-// const cu = 'http://192.168.0.110:8080';
+// const cu = 'http://192.168.0.110:8084';
const cluePicUrl = `${cu}/images/`;
// 杩愯妯″紡
diff --git a/pages/cluetask/home/index.js b/pages/cluetask/home/index.js
index 1069fa1..b148dff 100644
--- a/pages/cluetask/home/index.js
+++ b/pages/cluetask/home/index.js
@@ -1,9 +1,9 @@
+import dayjs from 'dayjs';
+
import { useLoading } from '../../../behaviors/loading';
import { useOptions } from './options-proxy.js';
import { useStatistic } from './statistic-proxy.js';
import { useTasks } from './tasks-proxy.js';
-
-import { fetchClueTask } from '../../../services/clue/fetchClue';
const app = getApp();
@@ -19,9 +19,9 @@
onShow() {
if (this.getTabBar()) {
- this.getTabBar().init();
+ this.getTabBar().init();
}
- this.refresh();
+ // this.refresh();
},
onPullDownRefresh() {
@@ -45,14 +45,26 @@
},
refresh() {
- this._startLoad();
+ if (this.optionsCount >= 2) this._startLoad();
},
_fetchData(page) {
- return fetchClueTask({}).then(res => {
- this.setData({ clueTaskList: res.data });
- this.calClueCount();
- this.formatClueTask();
+ const array = [];
+ array.push(this.searchClueTask(page));
+ if (page == 1) {
+ array.push(this.fetchClueTaskSummary(page));
+ }
+ return Promise.all(array).then(res => {
+ return res[0].head;
});
},
+
+ _getOptions() {
+ const { location, time } = this.data;
+ return {
+ ...location,
+ startTime: dayjs(time).startOf('month').format('YYYY-MM-DD HH:mm:ss'),
+ endTime: dayjs(time).endOf('month').format('YYYY-MM-DD HH:mm:ss'),
+ };
+ },
});
diff --git a/pages/cluetask/home/options-proxy.js b/pages/cluetask/home/options-proxy.js
index a9d6890..8056d29 100644
--- a/pages/cluetask/home/options-proxy.js
+++ b/pages/cluetask/home/options-proxy.js
@@ -6,7 +6,7 @@
*/
export const useOptions = Behavior({
data: {
- time:'',
+ time: '',
},
methods: {
setLocation(e) {
@@ -22,15 +22,17 @@
locationValue,
} = e.detail;
this.setData({
- provinceName,
- cityName,
- districtName,
- townName,
- provinceCode,
- cityCode,
- districtCode,
- townCode,
- locationValue,
+ location: {
+ provinceName,
+ cityName,
+ districtName,
+ townName,
+ provinceCode,
+ cityCode,
+ districtCode,
+ townCode,
+ locationValue,
+ },
});
},
initLocation(e) {
@@ -40,8 +42,7 @@
// 琛屾斂鍖哄垝鍒囨崲鏃讹紝鑾峰彇鏂扮殑绾夸笂鐩戠淇℃伅浠ュ強绾夸笅宸℃煡鐩戠淇℃伅
onLocationChange(e) {
this.setLocation(e);
- this.fetchSupervision();
- this.fetchInspection();
+ this._startLoad();
},
// 鏃堕棿鏇存敼
diff --git a/pages/cluetask/home/statistic-proxy.js b/pages/cluetask/home/statistic-proxy.js
index 189bdb3..65ed899 100644
--- a/pages/cluetask/home/statistic-proxy.js
+++ b/pages/cluetask/home/statistic-proxy.js
@@ -1,4 +1,6 @@
import { getClueStatistic } from '../../../model/clue/clueTask';
+import { fetchClueTaskSummary } from '../../../services/clue/fetchClue';
+
/**
* 绾跨储浠诲姟缁熻鐩稿叧淇℃伅鑾峰彇閫昏緫
@@ -8,13 +10,60 @@
clueCountRes: [],
},
methods: {
+ fetchClueTaskSummary(page) {
+ const options = this._getOptions();
+ fetchClueTaskSummary(options).then(res => {
+ const {
+ totalCount,
+ internalTaskCount,
+ externalTaskCount,
+ finishedCount,
+ unfinishedCount,
+ internalFinishedCount,
+ internalUnFinishedCount,
+ externalFinishedCount,
+ externalUnFinishedCount,
+ } = res.data;
+ const p1 = Math.round((finishedCount / totalCount) * 1000) / 10;
+ const p2 = Math.round((unfinishedCount / totalCount) * 1000) / 10;
+ this.setData({
+ clueCountRes: [
+ {
+ name: '鎬昏',
+ value: totalCount,
+ diff: '',
+ clickable: false,
+ },
+ {
+ name: '宸插畬鎴�',
+ value: finishedCount,
+ diff: totalCount == 0 ? '0%' : `${p1}%`,
+ clickable: false,
+ },
+ {
+ name: '寰呭畬鎴�',
+ value: unfinishedCount,
+ diff: totalCount == 0 ? '0%' : `${p2}%`,
+ clickable: false,
+ },
+ // {
+ // name: '寰呭畬鎴�',
+ // value: unfinishedCount,
+ // diff: totalCount == 0 ? '0%' : `${p2}%`,
+ // clickable: false,
+ // },
+ ],
+ });
+ });
+ },
+
/**
* 璁$畻绾跨储宸℃煡瀹屾垚鎯呭喌
*/
- calClueCount() {
- this.setData({
- clueCountRes: getClueStatistic(this.data.clueTaskList),
- });
- },
+ // calClueCount() {
+ // this.setData({
+ // clueCountRes: getClueStatistic(this.data.clueTaskList),
+ // });
+ // },
},
});
diff --git a/pages/cluetask/home/tasks-proxy.js b/pages/cluetask/home/tasks-proxy.js
index 7bde071..91c6eb3 100644
--- a/pages/cluetask/home/tasks-proxy.js
+++ b/pages/cluetask/home/tasks-proxy.js
@@ -2,12 +2,26 @@
import dataResponseLevel from '../../../common/clue/dataResponseLevel';
import dataTravelMode from '../../../common/clue/dataTravelMode';
+import { searchClueTask } from '../../../services/clue/fetchClue';
+
+
/**
* 绾跨储浠诲姟鍒楄〃灞曠ず鐩稿叧閫昏緫
*/
export const useTasks = Behavior({
data: {},
methods: {
+ searchClueTask(page) {
+ const options = this._getOptions()
+ options.finished = false
+ return searchClueTask(options, page, 30).then(res => {
+ this.setData({ clueTaskList: res.data });
+ this.formatClueTask();
+
+ return res.head;
+ });
+ },
+
/**
* 鏍煎紡鍖�
*/
diff --git a/pages/cluetask/home/tasks.wxml b/pages/cluetask/home/tasks.wxml
index 60fafba..860826f 100644
--- a/pages/cluetask/home/tasks.wxml
+++ b/pages/cluetask/home/tasks.wxml
@@ -8,7 +8,12 @@
bindtap="handleClueTaskClick"
>
<view class="clue-task__title-wrap">
- <view class="clue-task__title">{{item._taskTime}}</view>
+ <view class="clue-task__title">
+ <t-tag variant="light" theme="{{item.finished ? 'success' : 'danger'}}"
+ >{{item.finished ? '瀹屾垚' : '寰呭鐞�'}}</t-tag
+ >
+ {{item._taskTime}}
+ </view>
<view class="clue-task__abstract">
搴旀�ュ贰鏌�
<t-icon name="chevron-right" size="var(--icon-width)" color="black" />
diff --git a/pages/cluetask/home/tasks.wxss b/pages/cluetask/home/tasks.wxss
index 6c22bd9..b00da27 100644
--- a/pages/cluetask/home/tasks.wxss
+++ b/pages/cluetask/home/tasks.wxss
@@ -12,6 +12,9 @@
}
.clue-task__title {
+ display: flex;
+ align-items: center;
+ gap: 4px;
font-weight: 550;
font-size: var(--td-font-size-m);
}
diff --git a/pages/cluetask/question/index.js b/pages/cluetask/question/index.js
index 1762113..48a8915 100644
--- a/pages/cluetask/question/index.js
+++ b/pages/cluetask/question/index.js
@@ -189,6 +189,20 @@
// 娣诲姞鍥剧墖
handleAddImg(e) {
+ wx.chooseAddress({
+
+ })
+ wx.getLocation({
+ type:'wgs84',
+ success:res=>{
+ this.setData({
+ locations: {
+ ...res,
+ coorTxt: `${res.longitude},${res.latitude}`,
+ },
+ });
+ }
+ })
const { fileList } = this.data;
const { files } = e.detail;
this.setData({
diff --git a/pages/cluetask/question/index.wxml b/pages/cluetask/question/index.wxml
index 3fbb8d1..c2b4668 100644
--- a/pages/cluetask/question/index.wxml
+++ b/pages/cluetask/question/index.wxml
@@ -39,8 +39,8 @@
/>
</t-cell>
<view wx:if="{{validated && (!fileList || fileList.length == 0)}}" class="tips">
- 闂鍥剧墖鑷冲皯閫変竴寮�
- </view>
+ 闂鍥剧墖鑷冲皯閫変竴寮�
+ </view>
</t-form>
</view>
<view class="page-footer"></view>
diff --git a/project.private.config.json b/project.private.config.json
index ce2e311..b9996cb 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -2,7 +2,7 @@
"description": "椤圭洰绉佹湁閰嶇疆鏂囦欢銆傛鏂囦欢涓殑鍐呭灏嗚鐩� project.config.json 涓殑鐩稿悓瀛楁銆傞」鐩殑鏀瑰姩浼樺厛鍚屾鍒版鏂囦欢涓�傝瑙佹枃妗o細https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "ep-law-abiding-manage-weixin",
"setting": {
- "compileHotReLoad": false,
+ "compileHotReLoad": true,
"urlCheck": true
},
"libVersion": "3.7.12"
diff --git a/services/clue/fetchClue.js b/services/clue/fetchClue.js
index be15df5..6c6d3de 100644
--- a/services/clue/fetchClue.js
+++ b/services/clue/fetchClue.js
@@ -61,6 +61,42 @@
});
}
+/**
+ * 鏌ヨ绾跨储浠诲姟
+ * @param {object} options 鏌ヨ鏉′欢
+ * @param {Number} page 椤电爜
+ * @param {Number} per_page 鍗曢〉鏁版嵁閲�
+ * @returns
+ */
+function searchClueTask(options, page, per_page) {
+ return post(
+ {
+ url: `clue/task/search`,
+ params:{page, per_page},
+ data: options,
+ },
+ clueUrl,
+ ).then(res => {
+ return res.data;
+ });
+}
+
+/**
+ * 鏌ヨ绾跨储浠诲姟
+ * @param {object} options 鏌ヨ鏉′欢
+ * @returns
+ */
+function fetchClueTaskSummary(options) {
+ return post(
+ {
+ url: `clue/task/summary`,
+ data: options,
+ },
+ clueUrl,
+ ).then(res => {
+ return res.data;
+ });
+}
/******************************************************************************* */
/**
* 鑾峰彇绾跨储缁撹
@@ -195,6 +231,8 @@
fetchClue,
fetchClueInternal,
fetchClueTask,
+ searchClueTask,
+ fetchClueTaskSummary,
getConclusion,
uploadConclusion,
updateQuestion,
--
Gitblit v1.9.3