From 1e857671cbc8332f95ce19b2ec5db204ad5bcd58 Mon Sep 17 00:00:00 2001
From: yangzhq68909 <993367776@qq.com>
Date: Mon, 14 Oct 2024 15:22:41 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=99=84=E4=BB=B6=E5=8F=8A?=
=?UTF-8?q?=E5=9B=9E=E6=98=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bpm/leaveApplication/index.vue | 38 +-
pages/leave/application.vue | 115 +-
pages/useredit/useredit.vue | 15 +-
unpackage/dist/dev/app-plus/app-service.js | 7315 ++++++++++-------
unpackage/dist/dev/app-plus/app.css | 276 +
.../dev/app-plus/pages/leave/application.css | 294 +-
6 files changed, 4992 insertions(+), 3061 deletions(-)
diff --git a/bpm/leaveApplication/index.vue b/bpm/leaveApplication/index.vue
index 8271a3a..28b9626 100644
--- a/bpm/leaveApplication/index.vue
+++ b/bpm/leaveApplication/index.vue
@@ -44,7 +44,7 @@
请假天数:
- {{info.qjdays}}
+ {{info.days}}
@@ -64,6 +64,12 @@
{{info.reason}}
+
+
+ 附件:
+
+
+
@@ -106,13 +112,26 @@
watch,
onMounted
} from 'vue'
+ import {
+ imgUrl
+ } from '@/utils/index.js';
const props = defineProps({
dataId: {
type: String,
default: ''
},
})
-
+ const imageValue = ref([])
+ const imageStyles = {
+ width: 64,
+ height: 64,
+ border: {
+ color: "#dce7e1",
+ width: 2,
+ style: 'dashed',
+ radius: '2px'
+ }
+ }
const info = ref({})
// 申请信息
const qjQueryById = () => {
@@ -121,10 +140,23 @@
}).then((res) => {
if (res.success) {
info.value = res.result.records[0]
+
+ // 构造 imageValue 数组
+ imageValue.value = info.value.path.split(',').map(path => {
+ const name = path.split('/').pop(); // 获取文件名
+ const extname = name.split('.').pop(); // 获取文件扩展名并转换为大写
+ return {
+ name,
+ extname,
+ url: imgUrl(path)
+ };
+ });
+ console.log('---',imageValue.value)
}
})
- }
+ }
+
/**审批步骤*/
const extActFlowData = () => {
extActFlowDataApi({
diff --git a/pages/leave/application.vue b/pages/leave/application.vue
index 7103f4e..0f6e77b 100644
--- a/pages/leave/application.vue
+++ b/pages/leave/application.vue
@@ -68,17 +68,22 @@
请假地点:
-
+
+
+
+
+ 请假事由:
+
+
+
+
+
+ 上传附件:
+
+
-
-
- 请假事由:
-
-
-
+
提交
@@ -146,11 +151,41 @@
const address = ref('')
/**请假事由*/
const reason = ref('')
-
+ /**附件路径*/
+ const path = ref([])
+ const baseUrl = import.meta.env.VITE_REQUEST_BASE_URL + '/jeecg-boot/sys/common/upload/'
+ const imageStyles = {
+ width: 64,
+ height: 64,
+ border: {
+ color: "#dce7e1",
+ width: 2,
+ style: 'dashed',
+ radius: '2px'
+ }
+ }
onLoad(() => {
loadData()
})
+ const select = (e) => {
+ const tempFilePaths = e.tempFilePaths
+ for (let i = 0; i < e.tempFilePaths.length; i++) {
+ let photoPath = '职工请假/' + store.userinfo.orgCode + '/' + store.userinfo.realname
+ uni.uploadFile({
+ url: baseUrl,
+ filePath: e.tempFilePaths[i],
+ name: 'file',
+ formData: {
+ appPath: photoPath
+ },
+ success: (res) => {
+ path.value.push(JSON.parse(res.data).message)
+ }
+ });
+ }
+ }
+
const qjAdd = () => {
if (!phone.value.trim()) return proxy.$toast('请输入联系方式')
if (!type.value) return proxy.$toast('请选择请假类型')
@@ -172,7 +207,8 @@
examineleader: typeArr.value[typeIndex.value].username,
address: address.value,
reason: reason.value,
- zwcj: zwcj.value,
+ zwmc: zwcj.value,
+ path: path.value.toString()
}).then((res) => {
if (res.success) {
startMutilProcess(res.message)
@@ -181,6 +217,7 @@
}
})
}
+
const startMutilProcess = (id) => {
startMutilProcessApi({
flowCode: "dev_cxc_qxj",
@@ -300,60 +337,4 @@
color: #333333;
}
}
-
- .reason {
- background-color: #fff;
- margin-top: 20rpx;
-
- height: 290rpx;
- padding: 30rpx;
-
- .title {
- font-size: 28rpx;
- color: #333333;
-
- }
-
- textarea {
- width: 100%;
- margin-top: 20rpx;
- }
- }
-
-
- // .progress_box {
- // background-color: #fff;
- // margin-top: 20rpx;
- // padding: 30rpx;
-
- // .title {
- // font-size: 28rpx;
- // color: #333333;
- // }
-
- // .avatar {
- // width: 78rpx;
- // height: 78rpx;
- // border-radius: 38rpx;
- // background-color: #333333;
- // margin-top: 30rpx;
- // }
-
- // text {
- // font-size: 24rpx;
- // color: #333333;
- // margin-top: 10rpx;
- // }
-
- // .line {
- // width: 91rpx;
- // height: 17rpx;
- // margin: 0 40rpx;
- // }
- // }
-
- .lines {
- height: 20rpx;
- background-color: #F8F8F8;
- }
\ No newline at end of file
diff --git a/pages/useredit/useredit.vue b/pages/useredit/useredit.vue
index fd636a8..6807193 100644
--- a/pages/useredit/useredit.vue
+++ b/pages/useredit/useredit.vue
@@ -54,7 +54,7 @@
import {
useStore
} from '@/store';
- const baseUrl = import.meta.env.VITE_REQUEST_BASE_URL + '/jeecg-boot'
+ const baseUrl = import.meta.env.VITE_REQUEST_BASE_URL + '/jeecg-boot/sys/common/upload'
const store = useStore()
const jump = (url) => {
@@ -65,23 +65,23 @@
})
}
const chooseAvatar = () => {
-
uni.chooseImage({
count: 1,
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
+ const photoPath = '用户头像/' + store.userinfo.realname
uni.uploadFile({
- url: baseUrl + '/sys/common/upload', //仅为示例,非真实的接口地址
+ url: baseUrl, //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'file',
- header: {
- "X-Access-Token": store.token
+ formData: {
+ appPath: photoPath
},
- success: (uploadFileRes) => {
+ success: (res) => {
uni.showLoading({
title: '上传中...'
})
- form.avatar = JSON.parse(uploadFileRes.data).message
+ form.avatar = JSON.parse(res.data).message
userEditApi({
avatar: form.avatar,
id: store.userinfo.id
@@ -134,7 +134,6 @@
frontColor: "#ffffff",
backgroundColor: '#bebebe'
})
-
})
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index 6021b59..aa73af6 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -1754,7 +1754,7 @@ This will fail in production.`);
}
return target;
};
- const _sfc_main$N = {
+ const _sfc_main$Q = {
__name: "login",
setup(__props) {
const store = useStore();
@@ -1895,7 +1895,7 @@ This will fail in production.`);
};
}
};
- const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["__scopeId", "data-v-e4e4508d"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/login/login.vue"]]);
+ const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$Q, [["__scopeId", "data-v-e4e4508d"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/login/login.vue"]]);
const fontData = [
{
"font_class": "arrow-down",
@@ -2546,7 +2546,7 @@ This will fail in production.`);
const reg = /^[0-9]*$/g;
return typeof val === "number" || reg.test(val) ? val + "px" : val;
};
- const _sfc_main$M = {
+ const _sfc_main$P = {
name: "UniIcons",
emits: ["click"],
props: {
@@ -2600,7 +2600,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock(
"text",
{
@@ -2615,7 +2615,7 @@ This will fail in production.`);
/* CLASS, STYLE */
);
}
- const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$b], ["__scopeId", "data-v-d31e1c47"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]);
+ const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$P, [["render", _sfc_render$e], ["__scopeId", "data-v-d31e1c47"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]);
let Calendar$1 = class Calendar {
constructor({
selected,
@@ -2971,7 +2971,7 @@ This will fail in production.`);
}
return value;
}
- const _sfc_main$L = {
+ const _sfc_main$O = {
props: {
weeks: {
type: Object,
@@ -3005,7 +3005,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock(
"view",
{
@@ -3061,7 +3061,7 @@ This will fail in production.`);
/* CLASS, NEED_HYDRATION */
);
}
- const calendarItem = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$a], ["__scopeId", "data-v-3c762a01"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue"]]);
+ const calendarItem = /* @__PURE__ */ _export_sfc(_sfc_main$O, [["render", _sfc_render$d], ["__scopeId", "data-v-3c762a01"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue"]]);
const isObject = (val) => val !== null && typeof val === "object";
const defaultDelimiters = ["{", "}"];
class BaseFormatter {
@@ -3420,7 +3420,7 @@ This will fail in production.`);
const {
t: t$3
} = initVueI18n(i18nMessages);
- const _sfc_main$K = {
+ const _sfc_main$N = {
name: "UniDatetimePicker",
data() {
return {
@@ -4024,7 +4024,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "uni-datetime-picker" }, [
vue.createElementVNode("view", {
onClick: _cache[0] || (_cache[0] = (...args) => $options.initTimePicker && $options.initTimePicker(...args))
@@ -4301,11 +4301,11 @@ This will fail in production.`);
)) : vue.createCommentVNode("v-if", true)
]);
}
- const TimePicker = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$9], ["__scopeId", "data-v-1d532b70"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue"]]);
+ const TimePicker = /* @__PURE__ */ _export_sfc(_sfc_main$N, [["render", _sfc_render$c], ["__scopeId", "data-v-1d532b70"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue"]]);
const {
t: t$2
} = initVueI18n(i18nMessages);
- const _sfc_main$J = {
+ const _sfc_main$M = {
components: {
calendarItem,
timePicker: TimePicker
@@ -4786,7 +4786,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
const _component_calendar_item = vue.resolveComponent("calendar-item");
const _component_time_picker = vue.resolveComponent("time-picker");
const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
@@ -5070,8 +5070,8 @@ This will fail in production.`);
/* NEED_HYDRATION */
);
}
- const Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["render", _sfc_render$8], ["__scopeId", "data-v-1d379219"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue"]]);
- const _sfc_main$I = {
+ const Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["render", _sfc_render$b], ["__scopeId", "data-v-1d379219"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue"]]);
+ const _sfc_main$L = {
name: "UniDatetimePicker",
options: {
virtualHost: true
@@ -5727,7 +5727,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
const _component_time_picker = vue.resolveComponent("time-picker");
const _component_Calendar = vue.resolveComponent("Calendar");
@@ -6071,8 +6071,8 @@ This will fail in production.`);
}, null, 8, ["date", "defTime", "start-date", "end-date", "selectableTimes", "startPlaceholder", "endPlaceholder", "default-value", "pleStatus", "range", "hasTime", "hideSecond", "onConfirm", "onMaskClose", "onChange"])) : vue.createCommentVNode("v-if", true)
]);
}
- const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render$7], ["__scopeId", "data-v-9802168a"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue"]]);
- const _sfc_main$H = {
+ const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["render", _sfc_render$a], ["__scopeId", "data-v-9802168a"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue"]]);
+ const _sfc_main$K = {
name: "UniDrawer",
components: {},
emits: ["change"],
@@ -6144,7 +6144,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
return $data.visibleSync ? (vue.openBlock(), vue.createElementBlock(
"view",
{
@@ -6180,7 +6180,7 @@ This will fail in production.`);
/* CLASS, NEED_HYDRATION */
)) : vue.createCommentVNode("v-if", true);
}
- const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["render", _sfc_render$6], ["__scopeId", "data-v-f7c32d22"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue"]]);
+ const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["render", _sfc_render$9], ["__scopeId", "data-v-f7c32d22"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue"]]);
function taskListApi(config) {
return https({
url: "/act/task/list",
@@ -6400,7 +6400,7 @@ This will fail in production.`);
data: config
});
}
- const _sfc_main$G = {
+ const _sfc_main$J = {
__name: "customNav",
setup(__props) {
vue.useCssVars((_ctx) => ({
@@ -6419,7 +6419,7 @@ This will fail in production.`);
};
}
};
- const customNav = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-420daeb5"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/customNav.vue"]]);
+ const customNav = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-420daeb5"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/customNav.vue"]]);
const baseurl = "http://10.75.166.174:8080/jeecg-boot/sys/common/static/";
const toast = (title, icon, duration) => {
uni.showToast({
@@ -6637,7 +6637,7 @@ This will fail in production.`);
const imgUrl = (url) => {
return baseurl + `/${url}`;
};
- const _sfc_main$F = {
+ const _sfc_main$I = {
__name: "index",
setup(__props) {
vue.useCssVars((_ctx) => ({
@@ -6826,7 +6826,7 @@ This will fail in production.`);
getlist();
});
return (_ctx, _cache) => {
- const _component_uni_datetime_picker = resolveEasycom(vue.resolveDynamicComponent("uni-datetime-picker"), __easycom_0$3);
+ const _component_uni_datetime_picker = resolveEasycom(vue.resolveDynamicComponent("uni-datetime-picker"), __easycom_0$4);
const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
const _component_uni_drawer = resolveEasycom(vue.resolveDynamicComponent("uni-drawer"), __easycom_2$1);
return vue.openBlock(), vue.createElementBlock(
@@ -7147,8 +7147,8 @@ This will fail in production.`);
};
}
};
- const PagesTabIndex = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-ae0729d5"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/index.vue"]]);
- const _sfc_main$E = {
+ const PagesTabIndex = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-ae0729d5"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/index.vue"]]);
+ const _sfc_main$H = {
__name: "office",
setup(__props) {
vue.useCssVars((_ctx) => ({
@@ -7275,8 +7275,8 @@ This will fail in production.`);
};
}
};
- const PagesTabOffice = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-305a3c9f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/office.vue"]]);
- const _sfc_main$D = {
+ const PagesTabOffice = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-305a3c9f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/office.vue"]]);
+ const _sfc_main$G = {
__name: "dataCom",
props: {
title: {
@@ -7386,8 +7386,8 @@ This will fail in production.`);
};
}
};
- const dataCom = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-92a54120"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/dataCom.vue"]]);
- const _sfc_main$C = {
+ const dataCom = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__scopeId", "data-v-92a54120"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/dataCom.vue"]]);
+ const _sfc_main$F = {
__name: "product",
setup(__props) {
vue.useCssVars((_ctx) => ({
@@ -7546,7 +7546,7 @@ This will fail in production.`);
};
}
};
- const PagesTabProduct = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-6ccf0546"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/product.vue"]]);
+ const PagesTabProduct = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-6ccf0546"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/product.vue"]]);
const { registerUTSInterface, initUTSProxyClass, initUTSProxyFunction, initUTSPackageName, initUTSIndexClassName, initUTSClassName } = uni;
const name = "wuwxStepCounter";
const moduleName = "计步器(兼容Android和iOS)";
@@ -7556,7 +7556,7 @@ This will fail in production.`);
const pkg = /* @__PURE__ */ initUTSPackageName(name, is_uni_modules);
const cls = /* @__PURE__ */ initUTSIndexClassName(name, is_uni_modules);
const startStepCountingUpdates = /* @__PURE__ */ initUTSProxyFunction(false, { moduleName, moduleType, errMsg, main: true, package: pkg, class: cls, name: "startStepCountingUpdatesByJs", params: [{ "name": "options", "type": "UTSSDKModulesWuwxStepCounterStartStepCountingUpdatesOptionsJSONObject" }], return: "" });
- const _sfc_main$B = {
+ const _sfc_main$E = {
__name: "my",
setup(__props) {
const store = useStore();
@@ -7841,8 +7841,8 @@ This will fail in production.`);
};
}
};
- const PagesTabMy = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-2086c871"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/my.vue"]]);
- const _sfc_main$A = {
+ const PagesTabMy = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-2086c871"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/tab/my.vue"]]);
+ const _sfc_main$D = {
__name: "tasklistCom",
props: {
taskArr: {
@@ -7953,8 +7953,8 @@ This will fail in production.`);
};
}
};
- const tasklistCom = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-a83f61d7"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/tasklistCom.vue"]]);
- const _sfc_main$z = {
+ const tasklistCom = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-a83f61d7"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/tasklistCom.vue"]]);
+ const _sfc_main$C = {
__name: "index",
setup(__props) {
const store = useStore();
@@ -8077,7 +8077,7 @@ This will fail in production.`);
};
}
};
- const PagesTaskIndex = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-3dabfb60"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/task/index.vue"]]);
+ const PagesTaskIndex = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-3dabfb60"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/task/index.vue"]]);
class MPAnimation {
constructor(options, _this) {
this.options = options;
@@ -8190,7 +8190,7 @@ This will fail in production.`);
clearTimeout(_this.timer);
return new MPAnimation(option, _this);
}
- const _sfc_main$y = {
+ const _sfc_main$B = {
name: "uniTransition",
emits: ["click", "change"],
props: {
@@ -8441,7 +8441,7 @@ This will fail in production.`);
}
}
};
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
+ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("view", {
ref: "ani",
animation: $data.animationData,
@@ -8454,8 +8454,8 @@ This will fail in production.`);
[vue.vShow, $data.isShow]
]);
}
- const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$5], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
- const _sfc_main$x = {
+ const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["render", _sfc_render$8], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-transition/components/uni-transition/uni-transition.vue"]]);
+ const _sfc_main$A = {
name: "uniPopup",
components: {},
emits: ["change", "maskClick"],
@@ -8805,8 +8805,8 @@ This will fail in production.`);
}
}
};
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$2);
+ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
+ const _component_uni_transition = resolveEasycom(vue.resolveDynamicComponent("uni-transition"), __easycom_0$3);
return $data.showPopup ? (vue.openBlock(), vue.createElementBlock(
"view",
{
@@ -8865,8 +8865,8 @@ This will fail in production.`);
/* CLASS */
)) : vue.createCommentVNode("v-if", true);
}
- const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$4], ["__scopeId", "data-v-4dd3c44b"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
- const _sfc_main$w = {
+ const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$7], ["__scopeId", "data-v-4dd3c44b"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-popup/components/uni-popup/uni-popup.vue"]]);
+ const _sfc_main$z = {
__name: "handle",
setup(__props) {
const store = useStore();
@@ -9154,8 +9154,8 @@ This will fail in production.`);
};
}
};
- const PagesTaskHandle = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-aeec6874"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/task/handle.vue"]]);
- const _sfc_main$v = {
+ const PagesTaskHandle = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-aeec6874"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/task/handle.vue"]]);
+ const _sfc_main$y = {
__name: "message_list",
setup(__props) {
const store = useStore();
@@ -9224,8 +9224,8 @@ This will fail in production.`);
};
}
};
- const PagesTalkMessage_list = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-e2a9a302"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/message_list.vue"]]);
- const _sfc_main$u = {
+ const PagesTalkMessage_list = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-e2a9a302"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/message_list.vue"]]);
+ const _sfc_main$x = {
__name: "conversation",
setup(__props) {
const store = useStore();
@@ -9300,8 +9300,8 @@ This will fail in production.`);
};
}
};
- const PagesTalkConversation = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-696a96aa"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/conversation.vue"]]);
- const _sfc_main$t = {
+ const PagesTalkConversation = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-696a96aa"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/conversation.vue"]]);
+ const _sfc_main$w = {
__name: "system",
setup(__props) {
const store = useStore();
@@ -9343,8 +9343,8 @@ This will fail in production.`);
};
}
};
- const PagesTalkSystem = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-5621beca"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/system.vue"]]);
- const _sfc_main$s = {
+ const PagesTalkSystem = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-5621beca"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/talk/system.vue"]]);
+ const _sfc_main$v = {
__name: "index",
setup(__props) {
vue.useCssVars((_ctx) => ({
@@ -9591,8 +9591,8 @@ This will fail in production.`);
};
}
};
- const PagesDocumentIndex = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-ae7a950b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/document/index.vue"]]);
- const _sfc_main$r = {
+ const PagesDocumentIndex = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-ae7a950b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/document/index.vue"]]);
+ const _sfc_main$u = {
__name: "detail",
setup(__props) {
const store = useStore();
@@ -9660,8 +9660,8 @@ This will fail in production.`);
};
}
};
- const PagesDocumentDetail = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-2c024c80"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/document/detail.vue"]]);
- const _sfc_main$q = {
+ const PagesDocumentDetail = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-2c024c80"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/document/detail.vue"]]);
+ const _sfc_main$t = {
__name: "index",
setup(__props) {
const store = useStore();
@@ -9782,8 +9782,8 @@ This will fail in production.`);
};
}
};
- const PagesMeetingIndex = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-f3707b27"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/meeting/index.vue"]]);
- const _sfc_main$p = {
+ const PagesMeetingIndex = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-f3707b27"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/meeting/index.vue"]]);
+ const _sfc_main$s = {
__name: "detail",
setup(__props) {
const store = useStore();
@@ -9874,2909 +9874,7 @@ This will fail in production.`);
};
}
};
- const PagesMeetingDetail = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-ee2c785f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/meeting/detail.vue"]]);
- function qjAddApi(config) {
- return https({
- url: "/CxcQxj/cxcQxj/add",
- method: "post",
- data: config
- });
- }
- function queryZwmcAndExaApi(username) {
- return https({
- url: "/CxcQxj/cxcQxj/queryZwmcByUsername",
- method: "get",
- data: {
- username
- }
- });
- }
- function qjQueryByIdApi(config) {
- return https({
- url: "/CxcQxj/cxcQxj/queryById",
- method: "get",
- data: config
- });
- }
- function queryDepByCode(code) {
- return https({
- url: "/sys/sysDepart/queryDepNameByDepCode",
- method: "get",
- data: {
- code
- }
- });
- }
- function obj2strClass(obj) {
- let classess = "";
- for (let key in obj) {
- const val = obj[key];
- if (val) {
- classess += `${key} `;
- }
- }
- return classess;
- }
- function obj2strStyle(obj) {
- let style = "";
- for (let key in obj) {
- const val = obj[key];
- style += `${key}:${val};`;
- }
- return style;
- }
- const _sfc_main$o = {
- name: "uni-easyinput",
- emits: [
- "click",
- "iconClick",
- "update:modelValue",
- "input",
- "focus",
- "blur",
- "confirm",
- "clear",
- "eyes",
- "change",
- "keyboardheightchange"
- ],
- model: {
- prop: "modelValue",
- event: "update:modelValue"
- },
- options: {
- virtualHost: true
- },
- inject: {
- form: {
- from: "uniForm",
- default: null
- },
- formItem: {
- from: "uniFormItem",
- default: null
- }
- },
- props: {
- name: String,
- value: [Number, String],
- modelValue: [Number, String],
- type: {
- type: String,
- default: "text"
- },
- clearable: {
- type: Boolean,
- default: true
- },
- autoHeight: {
- type: Boolean,
- default: false
- },
- placeholder: {
- type: String,
- default: " "
- },
- placeholderStyle: String,
- focus: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- maxlength: {
- type: [Number, String],
- default: 140
- },
- confirmType: {
- type: String,
- default: "done"
- },
- clearSize: {
- type: [Number, String],
- default: 24
- },
- inputBorder: {
- type: Boolean,
- default: true
- },
- prefixIcon: {
- type: String,
- default: ""
- },
- suffixIcon: {
- type: String,
- default: ""
- },
- trim: {
- type: [Boolean, String],
- default: false
- },
- cursorSpacing: {
- type: Number,
- default: 0
- },
- passwordIcon: {
- type: Boolean,
- default: true
- },
- adjustPosition: {
- type: Boolean,
- default: true
- },
- primaryColor: {
- type: String,
- default: "#2979ff"
- },
- styles: {
- type: Object,
- default() {
- return {
- color: "#333",
- backgroundColor: "#fff",
- disableColor: "#F7F6F6",
- borderColor: "#e5e5e5"
- };
- }
- },
- errorMessage: {
- type: [String, Boolean],
- default: ""
- }
- },
- data() {
- return {
- focused: false,
- val: "",
- showMsg: "",
- border: false,
- isFirstBorder: false,
- showClearIcon: false,
- showPassword: false,
- focusShow: false,
- localMsg: "",
- isEnter: false
- // 用于判断当前是否是使用回车操作
- };
- },
- computed: {
- // 输入框内是否有值
- isVal() {
- const val = this.val;
- if (val || val === 0) {
- return true;
- }
- return false;
- },
- msg() {
- return this.localMsg || this.errorMessage;
- },
- // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值
- inputMaxlength() {
- return Number(this.maxlength);
- },
- // 处理外层样式的style
- boxStyle() {
- return `color:${this.inputBorder && this.msg ? "#e43d33" : this.styles.color};`;
- },
- // input 内容的类和样式处理
- inputContentClass() {
- return obj2strClass({
- "is-input-border": this.inputBorder,
- "is-input-error-border": this.inputBorder && this.msg,
- "is-textarea": this.type === "textarea",
- "is-disabled": this.disabled,
- "is-focused": this.focusShow
- });
- },
- inputContentStyle() {
- const focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;
- const borderColor = this.inputBorder && this.msg ? "#dd524d" : focusColor;
- return obj2strStyle({
- "border-color": borderColor || "#e5e5e5",
- "background-color": this.disabled ? this.styles.disableColor : this.styles.backgroundColor
- });
- },
- // input右侧样式
- inputStyle() {
- const paddingRight = this.type === "password" || this.clearable || this.prefixIcon ? "" : "10px";
- return obj2strStyle({
- "padding-right": paddingRight,
- "padding-left": this.prefixIcon ? "" : "10px"
- });
- }
- },
- watch: {
- value(newVal) {
- if (newVal === null) {
- this.val = "";
- return;
- }
- this.val = newVal;
- },
- modelValue(newVal) {
- if (newVal === null) {
- this.val = "";
- return;
- }
- this.val = newVal;
- },
- focus(newVal) {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- }
- },
- created() {
- this.init();
- if (this.form && this.formItem) {
- this.$watch("formItem.errMsg", (newVal) => {
- this.localMsg = newVal;
- });
- }
- },
- mounted() {
- this.$nextTick(() => {
- this.focused = this.focus;
- this.focusShow = this.focus;
- });
- },
- methods: {
- /**
- * 初始化变量值
- */
- init() {
- if (this.value || this.value === 0) {
- this.val = this.value;
- } else if (this.modelValue || this.modelValue === 0 || this.modelValue === "") {
- this.val = this.modelValue;
- } else {
- this.val = "";
- }
- },
- /**
- * 点击图标时触发
- * @param {Object} type
- */
- onClickIcon(type) {
- this.$emit("iconClick", type);
- },
- /**
- * 显示隐藏内容,密码框时生效
- */
- onEyes() {
- this.showPassword = !this.showPassword;
- this.$emit("eyes", this.showPassword);
- },
- /**
- * 输入时触发
- * @param {Object} event
- */
- onInput(event) {
- let value = event.detail.value;
- if (this.trim) {
- if (typeof this.trim === "boolean" && this.trim) {
- value = this.trimStr(value);
- }
- if (typeof this.trim === "string") {
- value = this.trimStr(value, this.trim);
- }
- }
- if (this.errMsg)
- this.errMsg = "";
- this.val = value;
- this.$emit("input", value);
- this.$emit("update:modelValue", value);
- },
- /**
- * 外部调用方法
- * 获取焦点时触发
- * @param {Object} event
- */
- onFocus() {
- this.$nextTick(() => {
- this.focused = true;
- });
- this.$emit("focus", null);
- },
- _Focus(event) {
- this.focusShow = true;
- this.$emit("focus", event);
- },
- /**
- * 外部调用方法
- * 失去焦点时触发
- * @param {Object} event
- */
- onBlur() {
- this.focused = false;
- this.$emit("blur", null);
- },
- _Blur(event) {
- event.detail.value;
- this.focusShow = false;
- this.$emit("blur", event);
- if (this.isEnter === false) {
- this.$emit("change", this.val);
- }
- if (this.form && this.formItem) {
- const { validateTrigger } = this.form;
- if (validateTrigger === "blur") {
- this.formItem.onFieldChange();
- }
- }
- },
- /**
- * 按下键盘的发送键
- * @param {Object} e
- */
- onConfirm(e2) {
- this.$emit("confirm", this.val);
- this.isEnter = true;
- this.$emit("change", this.val);
- this.$nextTick(() => {
- this.isEnter = false;
- });
- },
- /**
- * 清理内容
- * @param {Object} event
- */
- onClear(event) {
- this.val = "";
- this.$emit("input", "");
- this.$emit("update:modelValue", "");
- this.$emit("clear");
- },
- /**
- * 键盘高度发生变化的时候触发此事件
- * 兼容性:微信小程序2.7.0+、App 3.1.0+
- * @param {Object} event
- */
- onkeyboardheightchange(event) {
- this.$emit("keyboardheightchange", event);
- },
- /**
- * 去除空格
- */
- trimStr(str, pos = "both") {
- if (pos === "both") {
- return str.trim();
- } else if (pos === "left") {
- return str.trimLeft();
- } else if (pos === "right") {
- return str.trimRight();
- } else if (pos === "start") {
- return str.trimStart();
- } else if (pos === "end") {
- return str.trimEnd();
- } else if (pos === "all") {
- return str.replace(/\s+/g, "");
- } else if (pos === "none") {
- return str;
- }
- return str;
- }
- }
- };
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput", { "uni-easyinput-error": $options.msg }]),
- style: vue.normalizeStyle($options.boxStyle)
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["uni-easyinput__content", $options.inputContentClass]),
- style: vue.normalizeStyle($options.inputContentStyle)
- },
- [
- $props.prefixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.prefixIcon,
- color: "#c0c4cc",
- onClick: _cache[0] || (_cache[0] = ($event) => $options.onClickIcon("prefix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true),
- vue.renderSlot(_ctx.$slots, "left", {}, void 0, true),
- $props.type === "textarea" ? (vue.openBlock(), vue.createElementBlock("textarea", {
- key: 1,
- class: vue.normalizeClass(["uni-easyinput__content-textarea", { "input-padding": $props.inputBorder }]),
- name: $props.name,
- value: $data.val,
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- disabled: $props.disabled,
- "placeholder-class": "uni-easyinput__placeholder-class",
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- autoHeight: $props.autoHeight,
- "cursor-spacing": $props.cursorSpacing,
- "adjust-position": $props.adjustPosition,
- onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),
- onBlur: _cache[2] || (_cache[2] = (...args) => $options._Blur && $options._Blur(...args)),
- onFocus: _cache[3] || (_cache[3] = (...args) => $options._Focus && $options._Focus(...args)),
- onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 42, ["name", "value", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "autoHeight", "cursor-spacing", "adjust-position"])) : (vue.openBlock(), vue.createElementBlock("input", {
- key: 2,
- type: $props.type === "password" ? "text" : $props.type,
- class: "uni-easyinput__content-input",
- style: vue.normalizeStyle($options.inputStyle),
- name: $props.name,
- value: $data.val,
- password: !$data.showPassword && $props.type === "password",
- placeholder: $props.placeholder,
- placeholderStyle: $props.placeholderStyle,
- "placeholder-class": "uni-easyinput__placeholder-class",
- disabled: $props.disabled,
- maxlength: $options.inputMaxlength,
- focus: $data.focused,
- confirmType: $props.confirmType,
- "cursor-spacing": $props.cursorSpacing,
- "adjust-position": $props.adjustPosition,
- onFocus: _cache[6] || (_cache[6] = (...args) => $options._Focus && $options._Focus(...args)),
- onBlur: _cache[7] || (_cache[7] = (...args) => $options._Blur && $options._Blur(...args)),
- onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)),
- onConfirm: _cache[9] || (_cache[9] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
- onKeyboardheightchange: _cache[10] || (_cache[10] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
- }, null, 44, ["type", "name", "value", "password", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "confirmType", "cursor-spacing", "adjust-position"])),
- $props.type === "password" && $props.passwordIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 3 },
- [
- vue.createCommentVNode(" 开启密码时显示小眼睛 "),
- $options.isVal ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: $data.showPassword ? "eye-slash-filled" : "eye-filled",
- size: 22,
- color: $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onEyes
- }, null, 8, ["class", "type", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : vue.createCommentVNode("v-if", true),
- $props.suffixIcon ? (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 4 },
- [
- $props.suffixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: "content-clear-icon",
- type: $props.suffixIcon,
- color: "#c0c4cc",
- onClick: _cache[11] || (_cache[11] = ($event) => $options.onClickIcon("suffix")),
- size: "22"
- }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )) : (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- { key: 5 },
- [
- $props.clearable && $options.isVal && !$props.disabled && $props.type !== "textarea" ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
- type: "clear",
- size: $props.clearSize,
- color: $options.msg ? "#dd524d" : $data.focusShow ? $props.primaryColor : "#c0c4cc",
- onClick: $options.onClear
- }, null, 8, ["class", "size", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
- ],
- 64
- /* STABLE_FRAGMENT */
- )),
- vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
- ],
- 6
- /* CLASS, STYLE */
- )
- ],
- 6
- /* CLASS, STYLE */
- );
- }
- const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$3], ["__scopeId", "data-v-09fd5285"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue"]]);
- function isString(data) {
- return typeof data === "string";
- }
- function paging(data, PAGENUM = 50) {
- if (!Array.isArray(data) || !data.length)
- return data;
- const pages2 = [];
- data.forEach((item, index) => {
- const i2 = Math.floor(index / PAGENUM);
- if (!pages2[i2]) {
- pages2[i2] = [];
- }
- pages2[i2].push(item);
- });
- return pages2;
- }
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
- __name: "data-select-item",
- props: {
- node: {
- type: Object,
- default: () => ({})
- },
- choseParent: {
- type: Boolean,
- default: true
- },
- dataLabel: {
- type: String,
- default: "name"
- },
- dataValue: {
- type: String,
- default: "value"
- },
- dataChildren: {
- type: String,
- default: "children"
- },
- border: {
- type: Boolean,
- default: false
- },
- linkage: {
- type: Boolean,
- default: false
- },
- lazyLoadChildren: {
- type: Boolean,
- default: false
- },
- level: {
- type: Number,
- default: 0
- }
- },
- setup(__props) {
- const { nodeClick, nameClick, loadNode, initData, addNode } = vue.inject("nodeFn");
- const props = __props;
- const listData = vue.ref([]);
- const clearTimerList = vue.ref([]);
- const loadingArr = vue.ref([]);
- vue.watchEffect(() => {
- if (props.node.showChildren && props.node[props.dataChildren] && props.node[props.dataChildren].length) {
- resetClearTimerList();
- renderTree(props.node[props.dataChildren]);
- }
- });
- function resetClearTimerList() {
- const list = [...clearTimerList.value];
- clearTimerList.value = [];
- list.forEach((fn) => fn());
- }
- function renderTree(arr) {
- const pagingArr = paging(arr);
- listData.value = (pagingArr == null ? void 0 : pagingArr[0]) || [];
- lazyRenderList(pagingArr, 1);
- }
- function lazyRenderList(arr, startIndex) {
- for (let i2 = startIndex; i2 < arr.length; i2++) {
- let timer = null;
- timer = setTimeout(() => {
- listData.value.push(...arr[i2]);
- }, i2 * 500);
- clearTimerList.push(() => clearTimeout(timer));
- }
- }
- function handleNameClick(node) {
- var _a;
- if (!node.visible)
- return;
- if (!((_a = node[props.dataChildren]) == null ? void 0 : _a.length) && props.lazyLoadChildren) {
- loadingArr.value.push(node[props.dataValue].toString());
- loadNode(node).then((res) => {
- addNode(node, initData(res, node.visible));
- }).finally(() => {
- loadingArr.value = [];
- });
- } else {
- nameClick(node);
- }
- }
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["customthree-tree-select-content", {
- border: __props.border && __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length && __props.node.showChildren
- }]),
- style: vue.normalizeStyle({ marginLeft: `${__props.level ? 14 : 0}px` })
- },
- [
- __props.node.visible ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "custom-tree-select-item"
- }, [
- vue.createElementVNode("view", { class: "item-content" }, [
- vue.createElementVNode("view", {
- class: "left",
- onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => handleNameClick(__props.node), ["stop"]))
- }, [
- vue.createElementVNode("view", { class: "icon-group" }, [
- __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["right-icon", { active: __props.node.showChildren }])
- },
- [
- vue.createVNode(_component_uni_icons, {
- type: "right",
- size: "14",
- color: "#333"
- })
- ],
- 2
- /* CLASS */
- )) : (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "smallcircle-filled"
- }, [
- vue.createVNode(_component_uni_icons, {
- class: "smallcircle-filled-icon",
- type: "smallcircle-filled",
- size: "10",
- color: "#333"
- })
- ]))
- ]),
- loadingArr.value.includes(__props.node[props.dataValue].toString()) ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "loading-icon-box"
- }, [
- vue.createVNode(_component_uni_icons, {
- class: "loading-icon",
- type: "spinner-cycle",
- size: "14",
- color: "#333"
- })
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode(
- "view",
- {
- class: "name",
- style: vue.normalizeStyle(__props.node.disabled ? "color: #999" : "")
- },
- [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(__props.node[__props.dataLabel]),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- )
- ]),
- __props.choseParent || !__props.choseParent && !__props.node[__props.dataChildren] || !__props.choseParent && __props.node[__props.dataChildren] && !__props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- class: vue.normalizeClass(["check-box", { disabled: __props.node.disabled }]),
- onClick: _cache[1] || (_cache[1] = vue.withModifiers(($event) => !__props.node.disabled && vue.unref(nodeClick)(__props.node), ["stop"]))
- },
- [
- !__props.node.checked && __props.node.partChecked && __props.linkage ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "part-checked"
- })) : vue.createCommentVNode("v-if", true),
- __props.node.checked ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 1,
- type: "checkmarkempty",
- size: "18",
- color: __props.node.disabled ? "#333" : "#007aff"
- }, null, 8, ["color"])) : vue.createCommentVNode("v-if", true)
- ],
- 2
- /* CLASS */
- )) : vue.createCommentVNode("v-if", true)
- ])
- ])) : vue.createCommentVNode("v-if", true),
- __props.node.showChildren && __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock("view", { key: 1 }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(listData.value, (item) => {
- return vue.openBlock(), vue.createBlock(dataSelectItem, {
- key: item[__props.dataValue],
- node: item,
- dataLabel: __props.dataLabel,
- dataValue: __props.dataValue,
- dataChildren: __props.dataChildren,
- choseParent: __props.choseParent,
- lazyLoadChildren: __props.lazyLoadChildren,
- border: __props.border,
- linkage: __props.linkage,
- level: __props.level + 1
- }, null, 8, ["node", "dataLabel", "dataValue", "dataChildren", "choseParent", "lazyLoadChildren", "border", "linkage", "level"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])) : vue.createCommentVNode("v-if", true)
- ],
- 6
- /* CLASS, STYLE */
- );
- };
- }
- });
- const dataSelectItem = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-3a65eef7"], ["__file", "D:/projects/cxc-szcx-uniapp/components/treeSelect/data-select-item.vue"]]);
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
- __name: "treeSelect",
- props: {
- canSelectAll: {
- type: Boolean,
- default: false
- },
- safeArea: {
- type: Boolean,
- default: true
- },
- search: {
- type: Boolean,
- default: false
- },
- clearResetSearch: {
- type: Boolean,
- default: false
- },
- animation: {
- type: Boolean,
- default: true
- },
- "is-mask-click": {
- type: Boolean,
- default: true
- },
- "mask-background-color": {
- type: String,
- default: "rgba(0,0,0,0.4)"
- },
- "background-color": {
- type: String,
- default: "none"
- },
- "safe-area": {
- type: Boolean,
- default: true
- },
- choseParent: {
- type: Boolean,
- default: false
- },
- placeholder: {
- type: String,
- default: "请选择"
- },
- confirmText: {
- type: String,
- default: "确认"
- },
- confirmTextColor: {
- type: String,
- default: "#007aff"
- },
- dataSource: {
- type: Array,
- default: () => []
- },
- dataLabel: {
- type: String,
- default: "name"
- },
- dataValue: {
- type: String,
- default: "id"
- },
- dataChildren: {
- type: String,
- default: "children"
- },
- linkage: {
- type: Boolean,
- default: false
- },
- removeLinkage: {
- type: Boolean,
- default: true
- },
- clearable: {
- type: Boolean,
- default: false
- },
- mutiple: {
- type: Boolean,
- default: false
- },
- disabled: {
- type: Boolean,
- default: false
- },
- deleteSource: {
- type: Boolean,
- default: false
- },
- showChildren: {
- type: Boolean,
- default: false
- },
- border: {
- type: Boolean,
- default: false
- },
- lazyLoadChildren: {
- type: Boolean,
- default: false
- },
- load: {
- type: Function,
- default: function() {
- }
- },
- modelValue: {
- type: [Array, String],
- default: () => []
- }
- },
- emits: ["update:modelValue", "change", "maskClick", "select-change", "removeSelect"],
- setup(__props, { emit: __emit }) {
- const props = __props;
- const emits = __emit;
- const contentHeight = vue.ref("500px");
- const treeData = vue.ref([]);
- const filterTreeData = vue.ref([]);
- const clearTimerList = vue.ref([]);
- const selectedListBaseinfo = vue.ref([]);
- const showPopup = vue.ref(false);
- const isSelectedAll = vue.ref(false);
- const scrollTop = vue.ref(0);
- const searchStr = vue.ref("");
- const popup = vue.ref(null);
- const partCheckedSet = /* @__PURE__ */ new Set();
- vue.provide("nodeFn", {
- nodeClick: handleNodeClick,
- nameClick: handleHideChildren,
- loadNode: props.load,
- initData,
- addNode
- });
- const selectList = vue.computed(() => {
- const newVal = props.modelValue === null ? "" : props.modelValue;
- return isString(newVal) ? newVal.length ? newVal.split(",") : [] : newVal.map((item) => item.toString());
- });
- vue.onMounted(() => {
- getContentHeight(uni.getSystemInfoSync());
- });
- function getContentHeight({ screenHeight }) {
- contentHeight.value = `${Math.floor(screenHeight * 0.7)}px`;
- }
- vue.watch(
- () => props.dataSource,
- (newVal) => {
- if (newVal) {
- treeData.value = initData(newVal);
- if (showPopup.value) {
- resetClearTimerList();
- renderTree(treeData.value);
- }
- }
- },
- { immediate: true, deep: true }
- );
- vue.watch(
- () => props.modelValue,
- (newVal) => {
- const ids = newVal ? Array.isArray(newVal) ? newVal : newVal.split(",") : [];
- changeStatus(treeData.value, ids, true);
- filterTreeData.value.length && changeStatus(filterTreeData.value, ids);
- },
- { immediate: true }
- );
- function goTop() {
- scrollTop.val = 10;
- vue.nextTick(() => {
- scrollTop.value = 0;
- });
- }
- function handleSearch(isClear = false) {
- resetClearTimerList();
- if (isClear) {
- if (props.clearResetSearch) {
- renderTree(treeData.value);
- }
- } else {
- renderTree(searchValue(searchStr.value, treeData.value));
- }
- goTop();
- uni.hideKeyboard();
- }
- function searchValue(str, arr) {
- const res = [];
- arr.forEach((item) => {
- var _a, _b;
- if (item.visible) {
- if (item[props.dataLabel].toString().toLowerCase().indexOf(str.toLowerCase()) > -1) {
- res.push(item);
- } else {
- if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
- const data = searchValue(str, item[props.dataChildren]);
- if (data == null ? void 0 : data.length) {
- if (str && !item.showChildren && ((_b = item[props.dataChildren]) == null ? void 0 : _b.length)) {
- item.showChildren = true;
- }
- res.push({
- ...item,
- [props.dataChildren]: data
- });
- }
- }
- }
- }
- });
- return res;
- }
- async function open2() {
- if (props.disabled)
- return;
- showPopup.value = true;
- popup.value.open();
- renderTree(treeData.value);
- }
- function close() {
- popup.value.close();
- }
- function change(data) {
- if (!data.show) {
- resetClearTimerList();
- searchStr.value = "";
- showPopup.value = false;
- }
- emits("change", data);
- }
- function maskClick() {
- emits("maskClick");
- }
- function initData(arr, parentVisible) {
- var _a;
- if (!Array.isArray(arr))
- return [];
- const res = [];
- for (let i2 = 0; i2 < arr.length; i2++) {
- const obj = {
- [props.dataLabel]: arr[i2][props.dataLabel],
- [props.dataValue]: arr[i2][props.dataValue]
- };
- obj.checked = selectList.value.includes(arr[i2][props.dataValue].toString());
- obj.disabled = Boolean(arr[i2].disabled);
- obj.partChecked = Boolean(arr[i2].partChecked === void 0 ? false : arr[i2].partChecked);
- obj.partChecked && obj.partCheckedSet.add(obj[props.dataValue]);
- !obj.partChecked && (isSelectedAll.value = false);
- const parentVisibleState = parentVisible === void 0 ? true : parentVisible;
- const curVisibleState = arr[i2].visible === void 0 ? true : Boolean(arr[i2].visible);
- if (parentVisibleState === curVisibleState) {
- obj.visible = parentVisibleState;
- } else if (!parentVisibleState || !curVisibleState) {
- obj.visible = false;
- } else {
- obj.visible = true;
- }
- obj.showChildren = "showChildren" in arr[i2] && arr[i2].showChildren != void 0 ? arr[i2].showChildren : props.showChildren;
- if (arr[i2].visible && !arr[i2].disabled && !arr[i2].checked) {
- isSelectedAll.value = false;
- }
- if ((_a = arr[i2][props.dataChildren]) == null ? void 0 : _a.length) {
- obj[props.dataChildren] = initData(arr[i2][props.dataChildren], obj.visible);
- }
- res.push(obj);
- }
- return res;
- }
- function addNode(node, children) {
- getReflectNode(node, treeData.value)[props.dataChildren] = children;
- handleHideChildren(node);
- }
- function resetClearTimerList() {
- const list = [...clearTimerList.value];
- clearTimerList.value = [];
- list.forEach((fn) => fn());
- }
- function renderTree(arr) {
- const pagingArr = paging(arr);
- filterTreeData.value = (pagingArr == null ? void 0 : pagingArr[0]) || [];
- lazyRenderList(pagingArr, 1);
- }
- function lazyRenderList(arr, startIndex) {
- for (let i2 = startIndex; i2 < arr.length; i2++) {
- let timer = null;
- timer = setTimeout(() => {
- filterTreeData.value.push(...arr[i2]);
- }, i2 * 500);
- clearTimerList.push(() => clearTimeout(timer));
- }
- }
- function changeStatus(list, ids, needEmit = false) {
- var _a;
- const arr = [...list];
- let flag = true;
- needEmit && (selectedListBaseinfo.value = []);
- while (arr.length) {
- const item = arr.shift();
- if (ids.includes(item[props.dataValue].toString())) {
- item.checked = true;
- item.partChecked = false;
- partCheckedSet.delete(item[props.dataValue]);
- needEmit && selectedListBaseinfo.value.push(item);
- } else {
- item.checked = false;
- if (item.visible && !item.disabled) {
- flag = false;
- }
- if (partCheckedSet.has(item[props.dataValue])) {
- item.partChecked = true;
- } else {
- item.partChecked = false;
- }
- }
- if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
- arr.push(...item[props.dataChildren]);
- }
- }
- isSelectedAll.value = flag;
- needEmit && emits("select-change", [...selectedListBaseinfo.value]);
- }
- function removeSelectedItem(node) {
- isSelectedAll.value = false;
- if (props.linkage) {
- handleNodeClick(node, false);
- emits("removeSelect", node);
- } else {
- const emitData = selectList.value.filter((item) => item !== node[props.dataValue].toString());
- emits("removeSelect", node);
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- }
- }
- function getReflectNode(node, arr) {
- var _a;
- const array = [...arr];
- while (array.length) {
- const item = array.shift();
- if (item[props.dataValue] === node[props.dataValue]) {
- return item;
- }
- if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
- array.push(...item[props.dataChildren]);
- }
- }
- return {};
- }
- function getChildren(node) {
- var _a;
- if (!((_a = node[props.dataChildren]) == null ? void 0 : _a.length))
- return [];
- const res = node[props.dataChildren].reduce((pre, val) => {
- if (val.visible) {
- return [...pre, val];
- }
- return pre;
- }, []);
- for (let i2 = 0; i2 < node[props.dataChildren].length; i2++) {
- res.push(...getChildren(node[props.dataChildren][i2]));
- }
- return res;
- }
- function getParentNode(target, arr) {
- var _a;
- let res = [];
- for (let i2 = 0; i2 < arr.length; i2++) {
- if (arr[i2][props.dataValue] === target[props.dataValue]) {
- return true;
- }
- if ((_a = arr[i2][props.dataChildren]) == null ? void 0 : _a.length) {
- const childRes = getParentNode(target, arr[i2][props.dataChildren]);
- if (typeof childRes === "boolean" && childRes) {
- res = [arr[i2]];
- } else if (Array.isArray(childRes) && childRes.length) {
- res = [...childRes, arr[i2]];
- }
- }
- }
- return res;
- }
- function handleNodeClick(data, status) {
- const node = getReflectNode(data, treeData.value);
- node.checked = typeof status === "boolean" ? status : !node.checked;
- node.partChecked = false;
- partCheckedSet.delete(node[props.dataValue]);
- if (!props.mutiple) {
- let emitData = [];
- if (node.checked) {
- emitData = [node[props.dataValue].toString()];
- }
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- } else {
- if (!props.linkage) {
- let emitData = null;
- if (node.checked) {
- emitData = Array.from(/* @__PURE__ */ new Set([...selectList.value, node[props.dataValue].toString()]));
- } else {
- emitData = selectList.value.filter((id) => id !== node[props.dataValue].toString());
- }
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- } else {
- let emitData = [...selectList.value];
- const parentNodes = getParentNode(node, treeData.value);
- const childrenVal = getChildren(node).filter((item) => !item.disabled);
- if (node.checked) {
- emitData = Array.from(/* @__PURE__ */ new Set([...emitData, node[props.dataValue].toString()]));
- if (childrenVal.length) {
- emitData = Array.from(
- /* @__PURE__ */ new Set([...emitData, ...childrenVal.map((item) => item[props.dataValue].toString())])
- );
- childrenVal.forEach((childNode) => {
- childNode.partChecked = false;
- partCheckedSet.delete(childNode[props.dataValue]);
- });
- }
- if (parentNodes.length) {
- let flag = false;
- while (parentNodes.length) {
- const item = parentNodes.shift();
- if (!item.disabled) {
- if (flag) {
- item.partChecked = true;
- partCheckedSet.add(item[props.dataValue]);
- } else {
- const allChecked = item[props.dataChildren].filter((node2) => node2.visible && !node2.disabled).every((node2) => node2.checked);
- if (allChecked) {
- item.checked = true;
- item.partChecked = false;
- partCheckedSet.delete(item[props.dataValue]);
- emitData = Array.from(/* @__PURE__ */ new Set([...emitData, item[props.dataValue].toString()]));
- } else {
- item.partChecked = true;
- partCheckedSet.add(item[props.dataValue]);
- flag = true;
- }
- }
- }
- }
- }
- } else {
- emitData = emitData.filter((id) => id !== node[props.dataValue].toString());
- if (childrenVal.length) {
- childrenVal.forEach((childNode) => {
- emitData = emitData.filter((id) => id !== childNode[props.dataValue].toString());
- });
- }
- if (parentNodes.length) {
- parentNodes.forEach((parentNode) => {
- if (emitData.includes(parentNode[props.dataValue].toString())) {
- parentNode.checked = false;
- }
- emitData = emitData.filter((id) => id !== parentNode[props.dataValue].toString());
- const hasChecked = parentNode[props.dataChildren].filter((node2) => node2.visible && !node2.disabled).some((node2) => node2.checked || node2.partChecked);
- parentNode.partChecked = hasChecked;
- if (hasChecked) {
- partCheckedSet.add(parentNode[props.dataValue]);
- } else {
- partCheckedSet.delete(parentNode[props.dataValue]);
- }
- });
- }
- }
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- }
- }
- }
- function handleHideChildren(node) {
- const status = !node.showChildren;
- getReflectNode(node, treeData.value).showChildren = status;
- getReflectNode(node, filterTreeData.value).showChildren = status;
- }
- function handleSelectAll() {
- isSelectedAll.value = !isSelectedAll.value;
- if (isSelectedAll.value) {
- if (!props.mutiple) {
- uni.showToast({
- title: "单选模式下不能全选",
- icon: "none",
- duration: 1e3
- });
- return;
- }
- let emitData = [];
- treeData.value.forEach((item) => {
- var _a;
- if (item.visible || item.disabled && item.checked) {
- emitData = Array.from(/* @__PURE__ */ new Set([...emitData, item[props.dataValue].toString()]));
- if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
- emitData = Array.from(
- /* @__PURE__ */ new Set([
- ...emitData,
- ...getChildren(item).filter((item2) => !item2.disabled || item2.disabled && item2.checked).map((item2) => item2[props.dataValue].toString())
- ])
- );
- }
- }
- });
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- } else {
- clearSelectList();
- }
- }
- function clearSelectList() {
- if (props.disabled)
- return;
- partCheckedSet.clear();
- const emitData = [];
- selectedListBaseinfo.value.forEach((node) => {
- if (node.visible && node.checked && node.disabled) {
- emitData.push(node[props.dataValue]);
- }
- });
- emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
- }
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1);
- const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_2);
- return vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- null,
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["select-list", { disabled: __props.disabled }, { active: selectList.value.length }]),
- onClick: open2
- },
- [
- vue.createElementVNode("view", { class: "left" }, [
- selectList.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "select-items"
- }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(selectedListBaseinfo.value, (item) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "select-item",
- key: item[__props.dataValue]
- }, [
- vue.createElementVNode("view", { class: "name" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item[__props.dataLabel]),
- 1
- /* TEXT */
- )
- ]),
- !__props.disabled && !item.disabled && __props.deleteSource ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "close",
- onClick: vue.withModifiers(($event) => removeSelectedItem(item), ["stop"])
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "closeempty",
- size: "16",
- color: "#999"
- })
- ], 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])) : (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "no-data"
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(__props.placeholder),
- 1
- /* TEXT */
- )
- ]))
- ]),
- vue.createElementVNode("view", null, [
- !selectList.value.length || !__props.clearable ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "bottom",
- color: "#333333"
- })) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", {
- onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
- }, ["stop"]))
- }, [
- selectList.value.length && __props.clearable ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
- key: 0,
- type: "clear",
- size: "24",
- color: "#c0c4cc",
- onClick: clearSelectList
- })) : vue.createCommentVNode("v-if", true)
- ])
- ])
- ],
- 2
- /* CLASS */
- ),
- vue.createVNode(_component_uni_popup, {
- ref_key: "popup",
- ref: popup,
- animation: __props.animation,
- "is-mask-click": _ctx.isMaskClick,
- "mask-background-color": _ctx.maskBackgroundColor,
- "background-color": _ctx.backgroundColor,
- "safe-area": __props.safeArea,
- type: "bottom",
- onChange: change,
- onMaskClick: maskClick
- }, {
- default: vue.withCtx(() => [
- vue.createElementVNode(
- "view",
- {
- class: "popup-content",
- style: vue.normalizeStyle({ height: contentHeight.value })
- },
- [
- vue.createElementVNode("view", { class: "title" }, [
- __props.mutiple && __props.canSelectAll ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "left",
- onClick: handleSelectAll
- }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(isSelectedAll.value ? "取消全选" : "全选"),
- 1
- /* TEXT */
- )
- ])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "center" }, [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(__props.placeholder),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode(
- "view",
- {
- class: "right",
- style: vue.normalizeStyle({ color: __props.confirmTextColor }),
- onClick: close
- },
- [
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(__props.confirmText),
- 1
- /* TEXT */
- )
- ],
- 4
- /* STYLE */
- )
- ]),
- __props.search ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "search-box"
- }, [
- vue.createVNode(_component_uni_easyinput, {
- maxlength: -1,
- prefixIcon: "search",
- placeholder: "搜索",
- modelValue: searchStr.value,
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchStr.value = $event),
- "confirm-type": "search",
- onConfirm: _cache[2] || (_cache[2] = ($event) => handleSearch(false)),
- onClear: _cache[3] || (_cache[3] = ($event) => handleSearch(true))
- }, null, 8, ["modelValue"]),
- vue.createElementVNode("button", {
- type: "primary",
- size: "mini",
- class: "search-btn",
- onClick: _cache[4] || (_cache[4] = ($event) => handleSearch(false))
- }, "搜索")
- ])) : vue.createCommentVNode("v-if", true),
- treeData.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 1,
- class: "select-content"
- }, [
- vue.createElementVNode("scroll-view", {
- class: "scroll-view-box",
- "scroll-top": scrollTop.value,
- "scroll-y": "true",
- onTouchmove: _cache[5] || (_cache[5] = vue.withModifiers(() => {
- }, ["stop"]))
- }, [
- !filterTreeData.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "no-data center"
- }, [
- vue.createElementVNode("text", null, "暂无数据")
- ])) : vue.createCommentVNode("v-if", true),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(filterTreeData.value, (item) => {
- return vue.openBlock(), vue.createBlock(dataSelectItem, {
- key: item[__props.dataValue],
- node: item,
- dataLabel: __props.dataLabel,
- dataValue: __props.dataValue,
- dataChildren: __props.dataChildren,
- choseParent: __props.choseParent,
- border: __props.border,
- linkage: __props.linkage,
- lazyLoadChildren: __props.lazyLoadChildren
- }, null, 8, ["node", "dataLabel", "dataValue", "dataChildren", "choseParent", "border", "linkage", "lazyLoadChildren"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- )),
- vue.createElementVNode("view", { class: "sentry" })
- ], 40, ["scroll-top"])
- ])) : (vue.openBlock(), vue.createElementBlock("view", {
- key: 2,
- class: "no-data center"
- }, [
- vue.createElementVNode("text", null, "暂无数据")
- ]))
- ],
- 4
- /* STYLE */
- )
- ]),
- _: 1
- /* STABLE */
- }, 8, ["animation", "is-mask-click", "mask-background-color", "background-color", "safe-area"])
- ],
- 64
- /* STABLE_FRAGMENT */
- );
- };
- }
- });
- const treeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-0328d33e"], ["__file", "D:/projects/cxc-szcx-uniapp/components/treeSelect/treeSelect.vue"]]);
- const _sfc_main$l = {
- __name: "application",
- setup(__props) {
- const store = useStore();
- const {
- proxy
- } = vue.getCurrentInstance();
- const realname = vue.ref(store.userinfo.realname);
- const depart = vue.ref("");
- const phone = vue.ref(store.userinfo.phone);
- const type = vue.ref("");
- const dataSource = vue.ref([]);
- const beginTime = vue.ref("");
- const chooseStart = (e2) => {
- beginTime.value = e2.detail.value;
- };
- const endTime = vue.ref("");
- const chooseEnd = (e2) => {
- endTime.value = e2.detail.value;
- };
- const typeArr = vue.ref([]);
- const typeIndex = vue.ref(null);
- const ifShow = vue.ref(true);
- const zwcj = vue.ref("");
- const address = vue.ref("");
- const reason = vue.ref("");
- onLoad(() => {
- loadData();
- });
- const qjAdd = () => {
- if (!phone.value.trim())
- return proxy.$toast("请输入联系方式");
- if (!type.value)
- return proxy.$toast("请选择请假类型");
- if (!beginTime.value)
- return proxy.$toast("请选择开始时间");
- if (!endTime.value)
- return proxy.$toast("请选择结束时间");
- if (ifShow.value) {
- if (typeIndex.value == null) {
- return proxy.$toast("请选择审批领导");
- }
- }
- if (!address.value.trim())
- return proxy.$toast("请输入请假地点");
- if (!reason.value.trim())
- return proxy.$toast("请输入请假事由");
- qjAddApi({
- username: store.userinfo.username,
- phone: phone.value,
- type: type.value,
- begintime: beginTime.value,
- endtime: endTime.value,
- examineleader: typeArr.value[typeIndex.value].username,
- address: address.value,
- reason: reason.value,
- zwcj: zwcj.value
- }).then((res) => {
- if (res.success) {
- startMutilProcess(res.message);
- } else {
- proxy.$toast(res.message);
- }
- });
- };
- const startMutilProcess = (id) => {
- startMutilProcessApi({
- flowCode: "dev_cxc_qxj",
- id,
- formUrl: "modules/qxj/modules/CxcQxjBpmModel",
- formUrlMobile: "leaveApplication"
- //对应main.js里全局注册createApp()里的 app.component('leaveApplication',index)
- }).then((res) => {
- if (res.success) {
- proxy.$toast(res.message);
- setTimeout(() => {
- uni.navigateBack();
- }, 2e3);
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/leave/application.vue:198", err);
- });
- };
- const loadData = () => {
- getCategoryItemsApi("1838487445813645313").then((res) => {
- if (res.success) {
- dataSource.value = res.result;
- }
- });
- queryDepByCode(store.userinfo.orgCode).then((res) => {
- if (res.success) {
- depart.value = res.result;
- }
- });
- queryZwmcAndExaApi(store.userinfo.username).then((res) => {
- if (res.success) {
- typeArr.value = res.result.list;
- zwcj.value = res.result.zwmc;
- if (zwcj.value == "单位专家" || zwcj.value == "正职" || zwcj.value == "高级主管") {
- ifShow.value = false;
- }
- } else {
- proxy.$toast(res.message);
- }
- });
- };
- const bindType = (e2) => {
- typeIndex.value = e2.detail.value;
- };
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass({ "gray": vue.unref(store).isgray == 1 })
- },
- [
- vue.createElementVNode("view", { class: "form" }, [
- vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
- vue.createElementVNode("view", { class: "title" }, " 职工姓名: "),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => realname.value = $event),
- disabled: ""
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, realname.value]
- ])
- ]),
- vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
- vue.createElementVNode("view", { class: "title" }, " 工作单位: "),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => depart.value = $event),
- disabled: ""
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, depart.value]
- ])
- ]),
- vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
- vue.createElementVNode("view", { class: "title" }, " 联系方式: "),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => phone.value = $event)
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, phone.value]
- ])
- ]),
- vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
- vue.createElementVNode("view", { class: "title" }, " 请假类型: "),
- vue.createVNode(treeSelect, {
- dataSource: dataSource.value,
- modelValue: type.value,
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => type.value = $event),
- dataValue: "name"
- }, null, 8, ["dataSource", "modelValue"])
- ]),
- vue.createElementVNode("picker", {
- mode: "date",
- fields: "day",
- onChange: chooseStart,
- value: beginTime.value
- }, [
- vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
- vue.createElementVNode("view", { class: "title" }, " 开始时间: "),
- vue.createElementVNode("view", { class: "f-row aic" }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass([{ "choose": !beginTime.value }, { "choosed": beginTime.value }])
- },
- vue.toDisplayString(beginTime.value ? beginTime.value : "请选择"),
- 3
- /* TEXT, CLASS */
- ),
- vue.createVNode(_component_uni_icons, {
- type: "bottom",
- color: "#333333"
- })
- ])
- ])
- ], 40, ["value"]),
- vue.createElementVNode("picker", {
- mode: "date",
- fields: "day",
- onChange: chooseEnd,
- value: endTime.value
- }, [
- vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
- vue.createElementVNode("view", { class: "title" }, " 截止时间: "),
- vue.createElementVNode("view", { class: "f-row aic" }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass([{ "choose": !endTime.value }, { "choosed": endTime.value }])
- },
- vue.toDisplayString(endTime.value ? endTime.value : "请选择"),
- 3
- /* TEXT, CLASS */
- ),
- vue.createVNode(_component_uni_icons, {
- type: "bottom",
- color: "#333333"
- })
- ])
- ])
- ], 40, ["value"]),
- ifShow.value ? (vue.openBlock(), vue.createElementBlock("picker", {
- key: 0,
- onChange: bindType,
- value: typeIndex.value,
- range: typeArr.value,
- "range-key": "realname"
- }, [
- vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
- vue.createElementVNode("view", { class: "title" }, " 审批领导: "),
- vue.createElementVNode("view", { class: "f-row aic" }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass([{ "choose": typeIndex.value == null }, { "choosed": typeIndex.value != null }])
- },
- vue.toDisplayString(typeIndex.value != null ? typeArr.value[typeIndex.value].realname : "请选择"),
- 3
- /* TEXT, CLASS */
- ),
- vue.createVNode(_component_uni_icons, {
- type: "bottom",
- color: "#333333"
- })
- ])
- ])
- ], 40, ["value", "range"])) : vue.createCommentVNode("v-if", true),
- vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
- vue.createElementVNode("view", { class: "title" }, " 请假地点: "),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => address.value = $event),
- type: "text",
- placeholder: "请输入",
- "placeholder-style": "font-size: 28rpx;color: #999999;"
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, address.value]
- ])
- ])
- ]),
- vue.createElementVNode("view", { class: "reason f-col" }, [
- vue.createElementVNode("view", { class: "title" }, " 请假事由: "),
- vue.withDirectives(vue.createElementVNode(
- "textarea",
- {
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => reason.value = $event),
- placeholder: "请输入请假事由",
- "placeholder-style": "font-size: 28rpx;color: #999999;",
- cols: "30",
- rows: "10"
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, reason.value]
- ])
- ]),
- vue.createElementVNode("view", { class: "btn f-col aic" }, [
- vue.createElementVNode("view", { onClick: qjAdd }, " 提交 ")
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesLeaveApplication = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-f12ae642"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/leave/application.vue"]]);
- const _sfc_main$k = {
- __name: "index",
- setup(__props) {
- const store = useStore();
- const back = () => {
- uni.navigateBack();
- };
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createVNode(customNav, null, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "nav_box f-row aic" }, [
- vue.createElementVNode("view", {
- class: "back",
- onClick: back
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "left",
- size: "20",
- color: "#fff"
- })
- ]),
- vue.createElementVNode("view", { class: "avatar" }, [
- vue.createElementVNode("image", {
- src: vue.unref(store).userinfo.avatar,
- mode: ""
- }, null, 8, ["src"])
- ]),
- vue.createElementVNode("view", { class: "f-col" }, [
- vue.createElementVNode(
- "view",
- { class: "name" },
- vue.toDisplayString(vue.unref(store).userinfo.realname),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "view",
- { class: "position" },
- vue.toDisplayString(vue.unref(store).role),
- 1
- /* TEXT */
- )
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createElementVNode("view", { class: "time_box f-row aic jcb" }, [
- vue.createElementVNode("view", { class: "box" }, [
- vue.createElementVNode("view", { class: "time f-row aic" }, [
- vue.createElementVNode("view", { class: "" }, " 上班 9:30 "),
- vue.createElementVNode("image", {
- src: "/static/checkin/chenggong.png",
- mode: ""
- })
- ]),
- vue.createElementVNode("view", { class: "text" }, " 重庆市渝北区上弯路 ")
- ]),
- vue.createElementVNode("view", { class: "box" }, [
- vue.createElementVNode("view", { class: "time f-row aic" }, [
- vue.createElementVNode("view", { class: "" }, " 下班 16:30 "),
- vue.createElementVNode("image", {
- src: "/static/checkin/shibai.png",
- mode: ""
- })
- ]),
- vue.createElementVNode("view", { class: "text" }, " 打卡已超时 ")
- ])
- ]),
- vue.createElementVNode("view", { class: "checkin" }, [
- vue.createElementVNode("view", { class: "f-col aic" }, [
- vue.createElementVNode("view", { class: "status f-col aic" }, [
- vue.createCommentVNode(' \r\n \r\n '),
- vue.createElementVNode("image", {
- src: "/static/checkin/position4.png",
- mode: ""
- }),
- vue.createElementVNode("text", null, "打卡失败")
- ]),
- vue.createElementVNode("view", {
- class: vue.normalizeClass(["circle", "f-col", "aic", "out", "check", "success", "fail"])
- }, [
- vue.createElementVNode("view", { class: "title" }, " 上班打卡 "),
- vue.createElementVNode("view", { class: "time" }, " 9:00 "),
- vue.createElementVNode("view", { class: "ontime" }, " 已超时 ")
- ])
- ])
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesCheckinIndex = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-1410bd6b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/checkin/index.vue"]]);
- const _sfc_main$j = {
- __name: "useredit",
- setup(__props) {
- const baseUrl2 = "http://10.75.166.174:8080/jeecg-boot";
- const store = useStore();
- const chooseAvatar = () => {
- uni.chooseImage({
- count: 1,
- success: (chooseImageRes) => {
- const tempFilePaths = chooseImageRes.tempFilePaths;
- uni.uploadFile({
- url: baseUrl2 + "/sys/common/upload",
- //仅为示例,非真实的接口地址
- filePath: tempFilePaths[0],
- name: "file",
- header: {
- "X-Access-Token": store.token
- },
- success: (uploadFileRes) => {
- uni.showLoading({
- title: "上传中..."
- });
- form.avatar = JSON.parse(uploadFileRes.data).message;
- userEditApi({
- avatar: form.avatar,
- id: store.userinfo.id
- }).then((res) => {
- if (res) {
- uni.showToast({
- title: res,
- icon: "success",
- duration: 2e3
- });
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/useredit/useredit.vue:97", err);
- });
- },
- fail(err) {
- formatAppLog("log", "at pages/useredit/useredit.vue:101", "图片上传出错", err);
- }
- });
- }
- });
- };
- const form = vue.reactive({
- avatar: "",
- realname: "",
- phone: ""
- });
- const loginout = () => {
- uni.showModal({
- title: "退出登录",
- content: "您确认要退出登录吗?",
- success(res) {
- if (res.confirm) {
- uni.removeStorageSync("token");
- uni.removeStorageSync("user");
- uni.removeStorageSync("role");
- uni.removeStorageSync("logintime");
- uni.reLaunch({
- url: "/pages/login/login"
- });
- }
- }
- });
- };
- onLoad(() => {
- uni.setNavigationBarColor({
- frontColor: "#ffffff",
- backgroundColor: "#bebebe"
- });
- });
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- null,
- [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createElementVNode("view", { class: "box" }, [
- vue.createElementVNode("view", null, "头像"),
- vue.createElementVNode("view", { style: { "display": "flex", "align-items": "center" } }, [
- vue.createElementVNode("button", {
- class: "head-btn",
- onClick: chooseAvatar
- }, [
- !form.avatar ? (vue.openBlock(), vue.createElementBlock("image", {
- key: 0,
- class: "head-img",
- src: vue.unref(imgUrl)(vue.unref(store).userinfo.avatar),
- mode: ""
- }, null, 8, ["src"])) : (vue.openBlock(), vue.createElementBlock("image", {
- key: 1,
- class: "head-img",
- src: vue.unref(imgUrl)(form.avatar)
- }, null, 8, ["src"]))
- ]),
- vue.createVNode(_component_uni_icons, {
- type: "right",
- size: "24"
- })
- ])
- ]),
- vue.createElementVNode("view", {
- class: "box",
- style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
- }, [
- vue.createElementVNode("view", null, "姓名"),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- disabled: "",
- style: { "text-align": "right" },
- type: "nickname",
- "placeholder-style": "font-size: 32rpx;color: #999999;",
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(store).userinfo.realname = $event),
- placeholder: "请输入姓名"
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, vue.unref(store).userinfo.realname]
- ])
- ]),
- vue.createElementVNode("view", {
- class: "box",
- style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
- }, [
- vue.createElementVNode("view", null, "手机号"),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- disabled: "",
- style: { "text-align": "right" },
- type: "nickname",
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(store).userinfo.phone = $event),
- placeholder: "请输入手机号",
- "placeholder-style": "font-size: 32rpx;color: #999999;"
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, vue.unref(store).userinfo.phone]
- ])
- ]),
- vue.createElementVNode("view", {
- class: "box",
- style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
- }, [
- vue.createElementVNode("view", null, "劳动合同号"),
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- style: { "text-align": "right" },
- type: "nickname",
- disabled: "",
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(store).userinfo.workNo = $event),
- placeholder: "请输入劳动合同号",
- "placeholder-style": "font-size: 32rpx;color: #999999;"
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vModelText, vue.unref(store).userinfo.workNo]
- ])
- ])
- ],
- 2
- /* CLASS */
- ),
- vue.createElementVNode("view", { class: "line" }),
- vue.createElementVNode("view", {
- class: "btn",
- onClick: loginout
- }, " 退出登录 ")
- ],
- 64
- /* STABLE_FRAGMENT */
- );
- };
- }
- };
- const PagesUsereditUseredit = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-503dd57f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/useredit.vue"]]);
- const _sfc_main$i = {
- __name: "address",
- setup(__props) {
- const store = useStore();
- const jump = (url) => {
- beforeJump(url, () => {
- uni.navigateTo({
- url
- });
- });
- };
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createElementVNode("view", { class: "list" }, [
- (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(2, (item, i2) => {
- return vue.createElementVNode("view", {
- class: "item",
- key: i2
- }, [
- vue.createElementVNode("view", { class: "province f-row aic" }, [
- vue.createElementVNode("view", { class: "" }, " 浙江省,杭州市 "),
- vue.createElementVNode("image", {
- src: "/static/my/default.png",
- mode: ""
- })
- ]),
- vue.createElementVNode("view", { class: "address f-row jcb" }, [
- vue.createElementVNode("view", { class: "" }, " 重庆 重庆市 渝北区 龙溪街道花卉园东路黄金 宝高级住宅小区 "),
- vue.createElementVNode("image", {
- src: "/static/my/edit.png",
- mode: ""
- })
- ]),
- vue.createElementVNode("view", { class: "set f-row aic jcb" }, [
- vue.createElementVNode("view", { class: "f-row aic" }, [
- vue.createCommentVNode(' '),
- vue.createElementVNode("image", {
- src: "/static/login/nocheck.png",
- mode: ""
- }),
- vue.createTextVNode(" 设为默认地址 ")
- ]),
- vue.createElementVNode("view", { class: "" }, " 删除 ")
- ])
- ]);
- }),
- 64
- /* STABLE_FRAGMENT */
- ))
- ]),
- vue.createElementVNode("view", { class: "btn f-col aic" }, [
- vue.createElementVNode("view", {
- class: "",
- onClick: _cache[0] || (_cache[0] = ($event) => jump("/pages/useredit/add_address"))
- }, " +添加收货地址 ")
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesUsereditAddress = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-4bd9b73b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/address.vue"]]);
- const _sfc_main$h = {
- __name: "add_address",
- setup(__props) {
- const store = useStore();
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createElementVNode("view", { class: "area f-row jcb" }, [
- vue.createElementVNode("view", { class: "title topic" }, " 所在地区 "),
- vue.createElementVNode("input", {
- type: "text",
- placeholder: "省、市、区、街道"
- })
- ]),
- vue.createElementVNode("view", { class: "area f-row jcb" }, [
- vue.createElementVNode("view", { class: "title topic" }, " 详细地址 "),
- vue.createElementVNode("textarea", { placeholder: "小区楼栋/乡村名称" })
- ]),
- vue.createElementVNode("view", { class: "area f-row jcb" }, [
- vue.createElementVNode("view", { class: "title" }, " 设为默认地址 "),
- vue.createElementVNode("image", {
- src: "/static/login/checked.png",
- mode: ""
- }),
- vue.createCommentVNode(' ')
- ]),
- vue.createElementVNode("view", { class: "btn f-col aic" }, [
- vue.createElementVNode("view", { class: "" }, " 保存 ")
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesUsereditAdd_address = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-f1271877"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/add_address.vue"]]);
- const _sfc_main$g = {
- __name: "addressbook",
- setup(__props) {
- const store = useStore();
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass({ "gray": vue.unref(store).isgray == 1 })
- },
- [
- vue.createElementVNode("view", { class: "list" }, [
- (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(4, (item, i2) => {
- return vue.createElementVNode("view", {
- class: "item f-row aic jcb",
- key: i2
- }, [
- vue.createElementVNode("view", { class: "user f-row aic" }, [
- vue.createElementVNode("image", {
- src: "",
- mode: ""
- }),
- vue.createElementVNode("view", { class: "name_job" }, [
- vue.createElementVNode("view", { class: "name" }, " 我是晴天 "),
- vue.createElementVNode("view", { class: "job" }, " 销售部-销售总监 ")
- ])
- ]),
- vue.createElementVNode("view", { class: "btn" }, " 电话联系 ")
- ]);
- }),
- 64
- /* STABLE_FRAGMENT */
- ))
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesUsereditAddressbook = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-c0e791d9"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/addressbook.vue"]]);
- const _sfc_main$f = {
- __name: "extendCom",
- props: {
- title: {
- type: String,
- default: ""
- },
- img: {
- type: String,
- default: ""
- },
- list: {
- type: Array,
- default: function() {
- return [];
- }
- },
- // selfArrquery: {
- // type: Array,
- // default: function() {
- // return []
- // }
- // },
- total: {
- type: Number,
- default: 0
- }
- },
- setup(__props) {
- vue.useCssVars((_ctx) => ({
- "e40cd242-moreHeight": moreHeight.value
- }));
- const props = __props;
- const open2 = vue.ref(false);
- const moreHeight = vue.ref(null);
- const CurrentInstance = vue.getCurrentInstance();
- vue.watch(() => props.list, () => {
- vue.nextTick(() => {
- uni.createSelectorQuery().in(CurrentInstance.proxy).select(".item_box").boundingClientRect((data) => {
- moreHeight.value = (data == null ? void 0 : data.height) + "px";
- formatAppLog("log", "at bpm/extendCom.vue:82", "moreHeight", moreHeight.value);
- }).exec();
- });
- }, {
- immediate: true
- });
- const tolist = (title) => {
- let id = null;
- beforeJump("/pages/task/index", () => {
- if (props.title == "待办事项") {
- id = 0;
- }
- if (props.title == "已办事项") {
- id = 2;
- }
- if (props.title == "本人发起") {
- return uni.navigateTo({
- url: `/pages/task/self?title=${title}`
- });
- }
- uni.navigateTo({
- url: `/pages/task/index?id=${id}&title=${title}`
- });
- });
- };
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [
- vue.createElementVNode("view", { class: "todo f-col aic" }, [
- vue.createElementVNode("view", { class: "f-col aic" }, [
- vue.createElementVNode("view", {
- class: "title_box f-row aic jcb",
- onClick: _cache[0] || (_cache[0] = ($event) => tolist(""))
- }, [
- vue.createElementVNode("view", { class: "title f-row aic" }, [
- vue.createElementVNode("image", {
- src: `/static/my/${__props.img}.png`,
- mode: ""
- }, null, 8, ["src"]),
- vue.createTextVNode(
- " " + vue.toDisplayString(__props.title),
- 1
- /* TEXT */
- )
- ]),
- vue.createElementVNode(
- "view",
- { class: "num" },
- vue.toDisplayString(__props.total),
- 1
- /* TEXT */
- )
- ]),
- __props.list.length ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "list"
- }, [
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass(["box", { "close": __props.list.length > 5 && open2.value }])
- },
- [
- vue.createElementVNode("view", { class: "item_box" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(__props.list, (item, i2) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- onClick: ($event) => tolist(item.title),
- class: "item f-row aic",
- key: i2
- }, [
- vue.createElementVNode(
- "view",
- { class: "" },
- vue.toDisplayString(item.title),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "text",
- null,
- vue.toDisplayString(item.num),
- 1
- /* TEXT */
- )
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ],
- 2
- /* CLASS */
- ),
- vue.withDirectives(vue.createElementVNode(
- "view",
- {
- class: "more",
- onClick: _cache[1] || (_cache[1] = ($event) => open2.value = !open2.value)
- },
- vue.toDisplayString(!open2.value ? "显示更多" : "收起"),
- 513
- /* TEXT, NEED_PATCH */
- ), [
- [vue.vShow, __props.list.length > 5]
- ])
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ])
- ]);
- };
- }
- };
- const extendCom = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-e40cd242"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/extendCom.vue"]]);
- const _sfc_main$e = {
- __name: "todotask",
- setup(__props) {
- const store = useStore();
- onLoad(() => {
- taskList();
- taskHistoryList();
- myApplyProcessList();
- });
- const todoArr = vue.ref([]);
- const todoTotal = vue.ref(0);
- const taskList = () => {
- taskListApi({
- pageNo: 1,
- pageSize: 4,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res) => {
- var _a, _b, _c, _d;
- if (res == null ? void 0 : res.success) {
- if (((_a = res == null ? void 0 : res.result) == null ? void 0 : _a.total) > 4) {
- taskListApi({
- pageNo: 1,
- pageSize: (_b = res == null ? void 0 : res.result) == null ? void 0 : _b.total,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res1) => {
- var _a2, _b2;
- if (res1 == null ? void 0 : res1.success) {
- todoArr.value = [...todoArr.value, ...handleData((_a2 = res1 == null ? void 0 : res1.result) == null ? void 0 : _a2.records)];
- todoTotal.value = (_b2 = res1 == null ? void 0 : res1.result) == null ? void 0 : _b2.total;
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:53", "err", err);
- });
- } else {
- todoArr.value = [...todoArr.value, ...handleData((_c = res == null ? void 0 : res.result) == null ? void 0 : _c.records)];
- todoTotal.value = (_d = res == null ? void 0 : res.result) == null ? void 0 : _d.total;
- }
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:62", err);
- });
- };
- const doneArr = vue.ref([]);
- const doneTotal = vue.ref(0);
- const taskHistoryList = () => {
- taskHistoryListApi({
- pageNo: 1,
- pageSize: 4,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res) => {
- if (res.success) {
- if (res.result.total > 4) {
- taskHistoryListApi({
- pageNo: 1,
- pageSize: res.result.total,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res1) => {
- if (res1.success) {
- doneArr.value = [...doneArr.value, ...handleData(res1.result.records)];
- doneTotal.value = res1.result.total;
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:87", err);
- });
- } else {
- doneArr.value = [...doneArr.value, ...handleData(res.result.records)];
- doneTotal.value = res.result.total;
- }
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:96", err);
- });
- };
- const selfArr = vue.ref([]);
- const selfTotal = vue.ref(0);
- vue.ref([]);
- const myApplyProcessList = () => {
- myApplyProcessListApi({
- pageNo: 1,
- pageSize: 4,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res) => {
- if (res.success) {
- if (res.result.total > 4) {
- myApplyProcessListApi({
- pageNo: 1,
- pageSize: res.result.total,
- _t: (/* @__PURE__ */ new Date()).getTime()
- }).then((res1) => {
- if (res1.success) {
- selfArr.value = [...selfArr.value, ...handleData(res1.result.records)];
- selfTotal.value = res1.result.total;
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:122", err);
- });
- } else {
- selfArr.value = [...selfArr.value, ...handleData(res.result.records)];
- selfTotal.value = res.result.total;
- }
- }
- }).catch((err) => {
- formatAppLog("log", "at pages/task/todotask.vue:132", err);
- });
- };
- const handleData = (titlearr) => {
- let titleArr = titlearr.length ? titlearr.map((item) => item.processDefinitionName || item.prcocessDefinitionName) : [];
- let res = titleArr.reduce((obj, title) => {
- if (title in obj) {
- obj[title]++;
- } else {
- obj[title] = 1;
- }
- return obj;
- }, {});
- return Object.entries(res).map(([k, v2]) => ({
- title: k,
- num: v2
- }));
- };
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createVNode(extendCom, {
- title: "待办事项",
- img: "todo",
- list: todoArr.value,
- total: todoTotal.value
- }, null, 8, ["list", "total"]),
- vue.createVNode(extendCom, {
- title: "已办事项",
- img: "done",
- list: doneArr.value,
- total: doneTotal.value
- }, null, 8, ["list", "total"]),
- vue.createVNode(extendCom, {
- title: "本人发起",
- img: "self",
- list: selfArr.value,
- total: selfTotal.value
- }, null, 8, ["list", "total"])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesTaskTodotask = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "D:/projects/cxc-szcx-uniapp/pages/task/todotask.vue"]]);
- const _sfc_main$d = {
- __name: "safeCom",
- setup(__props) {
- const jump = (url) => {
- beforeJump(url, () => {
- uni.navigateTo({
- url
- });
- });
- };
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock("view", { class: "list f-row aic jcb" }, [
- (vue.openBlock(), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList(20, (item, i2) => {
- return vue.createElementVNode("view", {
- class: "item",
- key: i2,
- onClick: _cache[0] || (_cache[0] = ($event) => jump("/pages/safe/detail"))
- }, [
- vue.createElementVNode("view", { class: "" }, [
- vue.createElementVNode("image", {
- src: "",
- mode: ""
- })
- ]),
- vue.createElementVNode("view", { class: "text" }, " 五月天“突然好想你”线上演唱会精彩回放 ")
- ]);
- }),
- 64
- /* STABLE_FRAGMENT */
- ))
- ]);
- };
- }
- };
- const safeCom = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-982fcf41"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/safeCom.vue"]]);
- const _sfc_main$c = {
- __name: "manage",
- setup(__props) {
- const store = useStore();
- const showicon = vue.ref(true);
- const searchKey = vue.ref("");
- return (_ctx, _cache) => {
- const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createVNode(customNav, null, {
- default: vue.withCtx(() => [
- vue.createElementVNode("view", { class: "nav_box f-row aic jcb" }, [
- vue.createElementVNode("view", {
- class: "back f-row aic",
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.back && _ctx.back(...args))
- }, [
- vue.createVNode(_component_uni_icons, {
- type: "left",
- size: "20",
- color: "#fff"
- })
- ]),
- vue.createElementVNode("view", { class: "search f-row aic" }, [
- vue.withDirectives(vue.createElementVNode(
- "input",
- {
- type: "text",
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchKey.value = $event),
- onConfirm: _cache[2] || (_cache[2] = (...args) => _ctx.search && _ctx.search(...args)),
- onBlur: _cache[3] || (_cache[3] = ($event) => showicon.value = !searchKey.value),
- onFocus: _cache[4] || (_cache[4] = ($event) => showicon.value = false)
- },
- null,
- 544
- /* NEED_HYDRATION, NEED_PATCH */
- ), [
- [vue.vModelText, searchKey.value]
- ]),
- showicon.value ? (vue.openBlock(), vue.createElementBlock("view", {
- key: 0,
- class: "f-row aic"
- }, [
- vue.createElementVNode("image", {
- src: "/static/search.png",
- mode: ""
- }),
- vue.createElementVNode("text", null, "搜索")
- ])) : vue.createCommentVNode("v-if", true)
- ])
- ])
- ]),
- _: 1
- /* STABLE */
- }),
- vue.createElementVNode("view", { class: "" }, [
- vue.createVNode(safeCom)
- ])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesSafeManage = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-dc2f4615"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/safe/manage.vue"]]);
- const _sfc_main$b = {
- __name: "index",
- setup(__props) {
- const store = useStore();
- const shishiArr = vue.ref([]);
- const productArr = vue.ref([]);
- onLoad((options) => {
- shishiArr.value = JSON.parse(options.shishi);
- productArr.value = JSON.parse(options.product);
- });
- return (_ctx, _cache) => {
- return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: vue.normalizeClass(["f-col", "aic", { "gray": vue.unref(store).isgray == 1 }])
- },
- [
- vue.createVNode(dataCom, {
- title: "实时输差",
- list: shishiArr.value
- }, null, 8, ["list"]),
- vue.createVNode(dataCom, {
- title: "偏远计量点",
- list: shishiArr.value
- }, null, 8, ["list"]),
- vue.createVNode(dataCom, {
- title: "生产实时数据",
- list: productArr.value
- }, null, 8, ["list"])
- ],
- 2
- /* CLASS */
- );
- };
- }
- };
- const PagesProductIndex = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "D:/projects/cxc-szcx-uniapp/pages/product/index.vue"]]);
- const en = {
- "uni-load-more.contentdown": "Pull up to show more",
- "uni-load-more.contentrefresh": "loading...",
- "uni-load-more.contentnomore": "No more data"
- };
- const zhHans = {
- "uni-load-more.contentdown": "上拉显示更多",
- "uni-load-more.contentrefresh": "正在加载...",
- "uni-load-more.contentnomore": "没有更多数据了"
- };
- const zhHant = {
- "uni-load-more.contentdown": "上拉顯示更多",
- "uni-load-more.contentrefresh": "正在加載...",
- "uni-load-more.contentnomore": "沒有更多數據了"
- };
- const messages = {
- en,
- "zh-Hans": zhHans,
- "zh-Hant": zhHant
- };
- let platform;
- setTimeout(() => {
- platform = uni.getSystemInfoSync().platform;
- }, 16);
- const {
- t: t$1
- } = initVueI18n(messages);
- const _sfc_main$a = {
- name: "UniLoadMore",
- emits: ["clickLoadMore"],
- props: {
- status: {
- // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
- type: String,
- default: "more"
- },
- showIcon: {
- type: Boolean,
- default: true
- },
- iconType: {
- type: String,
- default: "auto"
- },
- iconSize: {
- type: Number,
- default: 24
- },
- color: {
- type: String,
- default: "#777777"
- },
- contentText: {
- type: Object,
- default() {
- return {
- contentdown: "",
- contentrefresh: "",
- contentnomore: ""
- };
- }
- },
- showText: {
- type: Boolean,
- default: true
- }
- },
- data() {
- return {
- webviewHide: false,
- platform,
- imgBase64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZV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"
- };
- },
- computed: {
- iconSnowWidth() {
- return (Math.floor(this.iconSize / 24) || 1) * 2;
- },
- contentdownText() {
- return this.contentText.contentdown || t$1("uni-load-more.contentdown");
- },
- contentrefreshText() {
- return this.contentText.contentrefresh || t$1("uni-load-more.contentrefresh");
- },
- contentnomoreText() {
- return this.contentText.contentnomore || t$1("uni-load-more.contentnomore");
- }
- },
- mounted() {
- var pages2 = getCurrentPages();
- var page = pages2[pages2.length - 1];
- var currentWebview = page.$getAppWebview();
- currentWebview.addEventListener("hide", () => {
- this.webviewHide = true;
- });
- currentWebview.addEventListener("show", () => {
- this.webviewHide = false;
- });
- },
- methods: {
- onClick() {
- this.$emit("clickLoadMore", {
- detail: {
- status: this.status
- }
- });
- }
- }
- };
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "uni-load-more",
- onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
- }, [
- !$data.webviewHide && ($props.iconType === "circle" || $props.iconType === "auto" && $data.platform === "android") && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 0,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--android-MP"
- },
- [
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "uni-load-more__img-icon",
- style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
- },
- null,
- 4
- /* STYLE */
- )
- ],
- 4
- /* STYLE */
- )) : !$data.webviewHide && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
- "view",
- {
- key: 1,
- style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
- class: "uni-load-more__img uni-load-more__img--ios-H5"
- },
- [
- vue.createElementVNode("image", {
- src: $data.imgBase64,
- mode: "widthFix"
- }, null, 8, ["src"])
- ],
- 4
- /* STYLE */
- )) : vue.createCommentVNode("v-if", true),
- $props.showText ? (vue.openBlock(), vue.createElementBlock(
- "text",
- {
- key: 2,
- class: "uni-load-more__text",
- style: vue.normalizeStyle({ color: $props.color })
- },
- vue.toDisplayString($props.status === "more" ? $options.contentdownText : $props.status === "loading" ? $options.contentrefreshText : $options.contentnomoreText),
- 5
- /* TEXT, STYLE */
- )) : vue.createCommentVNode("v-if", true)
- ]);
- }
- const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$2], ["__scopeId", "data-v-9245e42c"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"]]);
+ const PagesMeetingDetail = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-ee2c785f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/meeting/detail.vue"]]);
const pages = [
{
path: "pages/login/login",
@@ -13028,7 +10126,7 @@ This will fail in production.`);
uniIdRouter
};
var define_process_env_UNI_SECURE_NETWORK_CONFIG_default = [];
- function t(e2) {
+ function t$1(e2) {
return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2;
}
function n(e2, t2, n2) {
@@ -15309,7 +12407,7 @@ ${i3}
}(t3), t3);
};
};
- }), xs = t(Cs);
+ }), xs = t$1(Cs);
const Os = "manual";
function Es(e2) {
return { props: { localdata: { type: Array, default: () => [] }, options: { type: [Object, Array], default: () => ({}) }, spaceInfo: { type: Object, default: () => ({}) }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, gettreepath: { type: [Boolean, String], default: false }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: false }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: false } }, data: () => ({ mixinDatacomLoading: false, mixinDatacomHasMore: false, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {}, mixinDatacomError: null }), created() {
@@ -15716,6 +12814,4263 @@ ${i3}
} }), bs(Bs), Bs.addInterceptor = N, Bs.removeInterceptor = D, Bs.interceptObject = F;
})();
var Ws = Bs;
+ const ERR_MSG_OK = "chooseAndUploadFile:ok";
+ const ERR_MSG_FAIL = "chooseAndUploadFile:fail";
+ function chooseImage(opts) {
+ const {
+ count,
+ sizeType = ["original", "compressed"],
+ sourceType,
+ extension
+ } = opts;
+ return new Promise((resolve, reject) => {
+ uni.chooseImage({
+ count,
+ sizeType,
+ sourceType,
+ extension,
+ success(res) {
+ resolve(normalizeChooseAndUploadFileRes(res, "image"));
+ },
+ fail(res) {
+ reject({
+ errMsg: res.errMsg.replace("chooseImage:fail", ERR_MSG_FAIL)
+ });
+ }
+ });
+ });
+ }
+ function chooseVideo(opts) {
+ const {
+ count,
+ camera,
+ compressed,
+ maxDuration,
+ sourceType,
+ extension
+ } = opts;
+ return new Promise((resolve, reject) => {
+ uni.chooseVideo({
+ camera,
+ compressed,
+ maxDuration,
+ sourceType,
+ extension,
+ success(res) {
+ const {
+ tempFilePath,
+ duration,
+ size,
+ height,
+ width
+ } = res;
+ resolve(normalizeChooseAndUploadFileRes({
+ errMsg: "chooseVideo:ok",
+ tempFilePaths: [tempFilePath],
+ tempFiles: [{
+ name: res.tempFile && res.tempFile.name || "",
+ path: tempFilePath,
+ size,
+ type: res.tempFile && res.tempFile.type || "",
+ width,
+ height,
+ duration,
+ fileType: "video",
+ cloudPath: ""
+ }]
+ }, "video"));
+ },
+ fail(res) {
+ reject({
+ errMsg: res.errMsg.replace("chooseVideo:fail", ERR_MSG_FAIL)
+ });
+ }
+ });
+ });
+ }
+ function chooseAll(opts) {
+ const {
+ count,
+ extension
+ } = opts;
+ return new Promise((resolve, reject) => {
+ let chooseFile = uni.chooseFile;
+ if (typeof wx !== "undefined" && typeof wx.chooseMessageFile === "function") {
+ chooseFile = wx.chooseMessageFile;
+ }
+ if (typeof chooseFile !== "function") {
+ return reject({
+ errMsg: ERR_MSG_FAIL + " 请指定 type 类型,该平台仅支持选择 image 或 video。"
+ });
+ }
+ chooseFile({
+ type: "all",
+ count,
+ extension,
+ success(res) {
+ resolve(normalizeChooseAndUploadFileRes(res));
+ },
+ fail(res) {
+ reject({
+ errMsg: res.errMsg.replace("chooseFile:fail", ERR_MSG_FAIL)
+ });
+ }
+ });
+ });
+ }
+ function normalizeChooseAndUploadFileRes(res, fileType) {
+ res.tempFiles.forEach((item, index) => {
+ if (!item.name) {
+ item.name = item.path.substring(item.path.lastIndexOf("/") + 1);
+ }
+ if (fileType) {
+ item.fileType = fileType;
+ }
+ item.cloudPath = Date.now() + "_" + index + item.name.substring(item.name.lastIndexOf("."));
+ });
+ if (!res.tempFilePaths) {
+ res.tempFilePaths = res.tempFiles.map((file) => file.path);
+ }
+ return res;
+ }
+ function uploadCloudFiles(files, max = 5, onUploadProgress) {
+ files = JSON.parse(JSON.stringify(files));
+ const len = files.length;
+ let count = 0;
+ let self2 = this;
+ return new Promise((resolve) => {
+ while (count < max) {
+ next();
+ }
+ function next() {
+ let cur = count++;
+ if (cur >= len) {
+ !files.find((item) => !item.url && !item.errMsg) && resolve(files);
+ return;
+ }
+ const fileItem = files[cur];
+ const index = self2.files.findIndex((v2) => v2.uuid === fileItem.uuid);
+ fileItem.url = "";
+ delete fileItem.errMsg;
+ Ws.uploadFile({
+ filePath: fileItem.path,
+ cloudPath: fileItem.cloudPath,
+ fileType: fileItem.fileType,
+ onUploadProgress: (res) => {
+ res.index = index;
+ onUploadProgress && onUploadProgress(res);
+ }
+ }).then((res) => {
+ fileItem.url = res.fileID;
+ fileItem.index = index;
+ if (cur < len) {
+ next();
+ }
+ }).catch((res) => {
+ fileItem.errMsg = res.errMsg || res.message;
+ fileItem.index = index;
+ if (cur < len) {
+ next();
+ }
+ });
+ }
+ });
+ }
+ function uploadFiles(choosePromise, {
+ onChooseFile,
+ onUploadProgress
+ }) {
+ return choosePromise.then((res) => {
+ if (onChooseFile) {
+ const customChooseRes = onChooseFile(res);
+ if (typeof customChooseRes !== "undefined") {
+ return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === "undefined" ? res : chooseRes);
+ }
+ }
+ return res;
+ }).then((res) => {
+ if (res === false) {
+ return {
+ errMsg: ERR_MSG_OK,
+ tempFilePaths: [],
+ tempFiles: []
+ };
+ }
+ return res;
+ });
+ }
+ function chooseAndUploadFile(opts = {
+ type: "all"
+ }) {
+ if (opts.type === "image") {
+ return uploadFiles(chooseImage(opts), opts);
+ } else if (opts.type === "video") {
+ return uploadFiles(chooseVideo(opts), opts);
+ }
+ return uploadFiles(chooseAll(opts), opts);
+ }
+ const get_file_ext = (name2) => {
+ const last_len = name2.lastIndexOf(".");
+ const len = name2.length;
+ return {
+ name: name2.substring(0, last_len),
+ ext: name2.substring(last_len + 1, len)
+ };
+ };
+ const get_extname = (fileExtname) => {
+ if (!Array.isArray(fileExtname)) {
+ let extname = fileExtname.replace(/(\[|\])/g, "");
+ return extname.split(",");
+ } else {
+ return fileExtname;
+ }
+ };
+ const get_files_and_is_max = (res, _extname) => {
+ let filePaths = [];
+ let files = [];
+ if (!_extname || _extname.length === 0) {
+ return {
+ filePaths,
+ files
+ };
+ }
+ res.tempFiles.forEach((v2) => {
+ let fileFullName = get_file_ext(v2.name);
+ const extname = fileFullName.ext.toLowerCase();
+ if (_extname.indexOf(extname) !== -1) {
+ files.push(v2);
+ filePaths.push(v2.path);
+ }
+ });
+ if (files.length !== res.tempFiles.length) {
+ uni.showToast({
+ title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`,
+ icon: "none",
+ duration: 5e3
+ });
+ }
+ return {
+ filePaths,
+ files
+ };
+ };
+ const get_file_info = (filepath) => {
+ return new Promise((resolve, reject) => {
+ uni.getImageInfo({
+ src: filepath,
+ success(res) {
+ resolve(res);
+ },
+ fail(err) {
+ reject(err);
+ }
+ });
+ });
+ };
+ const get_file_data = async (files, type = "image") => {
+ let fileFullName = get_file_ext(files.name);
+ const extname = fileFullName.ext.toLowerCase();
+ let filedata = {
+ name: files.name,
+ uuid: files.uuid,
+ extname: extname || "",
+ cloudPath: files.cloudPath,
+ fileType: files.fileType,
+ thumbTempFilePath: files.thumbTempFilePath,
+ url: files.path || files.path,
+ size: files.size,
+ //单位是字节
+ image: {},
+ path: files.path,
+ video: {}
+ };
+ if (type === "image") {
+ const imageinfo = await get_file_info(files.path);
+ delete filedata.video;
+ filedata.image.width = imageinfo.width;
+ filedata.image.height = imageinfo.height;
+ filedata.image.location = imageinfo.path;
+ } else {
+ delete filedata.image;
+ }
+ return filedata;
+ };
+ const _sfc_main$r = {
+ name: "uploadImage",
+ emits: ["uploadFiles", "choose", "delFile"],
+ props: {
+ filesList: {
+ type: Array,
+ default() {
+ return [];
+ }
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ disablePreview: {
+ type: Boolean,
+ default: false
+ },
+ limit: {
+ type: [Number, String],
+ default: 9
+ },
+ imageStyles: {
+ type: Object,
+ default() {
+ return {
+ width: "auto",
+ height: "auto",
+ border: {}
+ };
+ }
+ },
+ delIcon: {
+ type: Boolean,
+ default: true
+ },
+ readonly: {
+ type: Boolean,
+ default: false
+ }
+ },
+ computed: {
+ styles() {
+ let styles = {
+ width: "auto",
+ height: "auto",
+ border: {}
+ };
+ return Object.assign(styles, this.imageStyles);
+ },
+ boxStyle() {
+ const {
+ width = "auto",
+ height = "auto"
+ } = this.styles;
+ let obj = {};
+ if (height === "auto") {
+ if (width !== "auto") {
+ obj.height = this.value2px(width);
+ obj["padding-top"] = 0;
+ } else {
+ obj.height = 0;
+ }
+ } else {
+ obj.height = this.value2px(height);
+ obj["padding-top"] = 0;
+ }
+ if (width === "auto") {
+ if (height !== "auto") {
+ obj.width = this.value2px(height);
+ } else {
+ obj.width = "33.3%";
+ }
+ } else {
+ obj.width = this.value2px(width);
+ }
+ let classles = "";
+ for (let i2 in obj) {
+ classles += `${i2}:${obj[i2]};`;
+ }
+ return classles;
+ },
+ borderStyle() {
+ let {
+ border
+ } = this.styles;
+ let obj = {};
+ const widthDefaultValue = 1;
+ const radiusDefaultValue = 3;
+ if (typeof border === "boolean") {
+ obj.border = border ? "1px #eee solid" : "none";
+ } else {
+ let width = border && border.width || widthDefaultValue;
+ width = this.value2px(width);
+ let radius = border && border.radius || radiusDefaultValue;
+ radius = this.value2px(radius);
+ obj = {
+ "border-width": width,
+ "border-style": border && border.style || "solid",
+ "border-color": border && border.color || "#eee",
+ "border-radius": radius
+ };
+ }
+ let classles = "";
+ for (let i2 in obj) {
+ classles += `${i2}:${obj[i2]};`;
+ }
+ return classles;
+ }
+ },
+ methods: {
+ uploadFiles(item, index) {
+ this.$emit("uploadFiles", item);
+ },
+ choose() {
+ this.$emit("choose");
+ },
+ delFile(index) {
+ this.$emit("delFile", index);
+ },
+ prviewImage(img, index) {
+ let urls = [];
+ if (Number(this.limit) === 1 && this.disablePreview && !this.disabled) {
+ this.$emit("choose");
+ }
+ if (this.disablePreview)
+ return;
+ this.filesList.forEach((i2) => {
+ urls.push(i2.url);
+ });
+ uni.previewImage({
+ urls,
+ current: index
+ });
+ },
+ value2px(value) {
+ if (typeof value === "number") {
+ value += "px";
+ } else {
+ if (value.indexOf("%") === -1) {
+ value = value.indexOf("px") !== -1 ? value : value + "px";
+ }
+ }
+ return value;
+ }
+ }
+ };
+ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
+ return vue.openBlock(), vue.createElementBlock("view", { class: "uni-file-picker__container" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($props.filesList, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: "file-picker__box",
+ key: index,
+ style: vue.normalizeStyle($options.boxStyle)
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "file-picker__box-content",
+ style: vue.normalizeStyle($options.borderStyle)
+ },
+ [
+ vue.createElementVNode("image", {
+ class: "file-image",
+ src: item.url,
+ mode: "aspectFill",
+ onClick: vue.withModifiers(($event) => $options.prviewImage(item, index), ["stop"])
+ }, null, 8, ["src", "onClick"]),
+ $props.delIcon && !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "icon-del-box",
+ onClick: vue.withModifiers(($event) => $options.delFile(index), ["stop"])
+ }, [
+ vue.createElementVNode("view", { class: "icon-del" }),
+ vue.createElementVNode("view", { class: "icon-del rotate" })
+ ], 8, ["onClick"])) : vue.createCommentVNode("v-if", true),
+ item.progress && item.progress !== 100 || item.progress === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 1,
+ class: "file-picker__progress"
+ }, [
+ vue.createElementVNode("progress", {
+ class: "file-picker__progress-item",
+ percent: item.progress === -1 ? 0 : item.progress,
+ "stroke-width": "4",
+ backgroundColor: item.errMsg ? "#ff5a5f" : "#EBEBEB"
+ }, null, 8, ["percent", "backgroundColor"])
+ ])) : vue.createCommentVNode("v-if", true),
+ item.errMsg ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 2,
+ class: "file-picker__mask",
+ onClick: vue.withModifiers(($event) => $options.uploadFiles(item, index), ["stop"])
+ }, " 点击重试 ", 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 4
+ /* STYLE */
+ )
+ ],
+ 4
+ /* STYLE */
+ );
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ )),
+ $props.filesList.length < $props.limit && !$props.readonly ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 0,
+ class: "file-picker__box",
+ style: vue.normalizeStyle($options.boxStyle)
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "file-picker__box-content is-add",
+ style: vue.normalizeStyle($options.borderStyle),
+ onClick: _cache[0] || (_cache[0] = (...args) => $options.choose && $options.choose(...args))
+ },
+ [
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
+ vue.createElementVNode("view", { class: "icon-add" }),
+ vue.createElementVNode("view", { class: "icon-add rotate" })
+ ], true)
+ ],
+ 4
+ /* STYLE */
+ )
+ ],
+ 4
+ /* STYLE */
+ )) : vue.createCommentVNode("v-if", true)
+ ]);
+ }
+ const uploadImage = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$6], ["__scopeId", "data-v-bdfc07e0"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue"]]);
+ const _sfc_main$q = {
+ name: "uploadFile",
+ emits: ["uploadFiles", "choose", "delFile"],
+ props: {
+ filesList: {
+ type: Array,
+ default() {
+ return [];
+ }
+ },
+ delIcon: {
+ type: Boolean,
+ default: true
+ },
+ limit: {
+ type: [Number, String],
+ default: 9
+ },
+ showType: {
+ type: String,
+ default: ""
+ },
+ listStyles: {
+ type: Object,
+ default() {
+ return {
+ // 是否显示边框
+ border: true,
+ // 是否显示分隔线
+ dividline: true,
+ // 线条样式
+ borderStyle: {}
+ };
+ }
+ },
+ readonly: {
+ type: Boolean,
+ default: false
+ }
+ },
+ computed: {
+ list() {
+ let files = [];
+ this.filesList.forEach((v2) => {
+ files.push(v2);
+ });
+ return files;
+ },
+ styles() {
+ let styles = {
+ border: true,
+ dividline: true,
+ "border-style": {}
+ };
+ return Object.assign(styles, this.listStyles);
+ },
+ borderStyle() {
+ let {
+ borderStyle,
+ border
+ } = this.styles;
+ let obj = {};
+ if (!border) {
+ obj.border = "none";
+ } else {
+ let width = borderStyle && borderStyle.width || 1;
+ width = this.value2px(width);
+ let radius = borderStyle && borderStyle.radius || 5;
+ radius = this.value2px(radius);
+ obj = {
+ "border-width": width,
+ "border-style": borderStyle && borderStyle.style || "solid",
+ "border-color": borderStyle && borderStyle.color || "#eee",
+ "border-radius": radius
+ };
+ }
+ let classles = "";
+ for (let i2 in obj) {
+ classles += `${i2}:${obj[i2]};`;
+ }
+ return classles;
+ },
+ borderLineStyle() {
+ let obj = {};
+ let {
+ borderStyle
+ } = this.styles;
+ if (borderStyle && borderStyle.color) {
+ obj["border-color"] = borderStyle.color;
+ }
+ if (borderStyle && borderStyle.width) {
+ let width = borderStyle && borderStyle.width || 1;
+ let style = borderStyle && borderStyle.style || 0;
+ if (typeof width === "number") {
+ width += "px";
+ } else {
+ width = width.indexOf("px") ? width : width + "px";
+ }
+ obj["border-width"] = width;
+ if (typeof style === "number") {
+ style += "px";
+ } else {
+ style = style.indexOf("px") ? style : style + "px";
+ }
+ obj["border-top-style"] = style;
+ }
+ let classles = "";
+ for (let i2 in obj) {
+ classles += `${i2}:${obj[i2]};`;
+ }
+ return classles;
+ }
+ },
+ methods: {
+ uploadFiles(item, index) {
+ this.$emit("uploadFiles", {
+ item,
+ index
+ });
+ },
+ choose() {
+ this.$emit("choose");
+ },
+ delFile(index) {
+ this.$emit("delFile", index);
+ },
+ value2px(value) {
+ if (typeof value === "number") {
+ value += "px";
+ } else {
+ value = value.indexOf("px") !== -1 ? value : value + "px";
+ }
+ return value;
+ }
+ }
+ };
+ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
+ return vue.openBlock(), vue.createElementBlock("view", { class: "uni-file-picker__files" }, [
+ !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "files-button",
+ onClick: _cache[0] || (_cache[0] = (...args) => $options.choose && $options.choose(...args))
+ }, [
+ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
+ ])) : vue.createCommentVNode("v-if", true),
+ vue.createCommentVNode(` :class="{'is-text-box':showType === 'list'}" `),
+ $options.list.length > 0 ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 1,
+ class: "uni-file-picker__lists is-text-box",
+ style: vue.normalizeStyle($options.borderStyle)
+ },
+ [
+ vue.createCommentVNode(" ,'is-list-card':showType === 'list-card' "),
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($options.list, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["uni-file-picker__lists-box", {
+ "files-border": index !== 0 && $options.styles.dividline
+ }]),
+ key: index,
+ style: vue.normalizeStyle(index !== 0 && $options.styles.dividline && $options.borderLineStyle)
+ },
+ [
+ vue.createElementVNode("view", { class: "uni-file-picker__item" }, [
+ vue.createCommentVNode(` :class="{'is-text-image':showType === 'list'}" `),
+ vue.createCommentVNode(' \r\n \r\n '),
+ vue.createElementVNode(
+ "view",
+ { class: "files__name" },
+ vue.toDisplayString(item.name),
+ 1
+ /* TEXT */
+ ),
+ $props.delIcon && !$props.readonly ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "icon-del-box icon-files",
+ onClick: ($event) => $options.delFile(index)
+ }, [
+ vue.createElementVNode("view", { class: "icon-del icon-files" }),
+ vue.createElementVNode("view", { class: "icon-del rotate" })
+ ], 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
+ ]),
+ item.progress && item.progress !== 100 || item.progress === 0 ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "file-picker__progress"
+ }, [
+ vue.createElementVNode("progress", {
+ class: "file-picker__progress-item",
+ percent: item.progress === -1 ? 0 : item.progress,
+ "stroke-width": "4",
+ backgroundColor: item.errMsg ? "#ff5a5f" : "#EBEBEB"
+ }, null, 8, ["percent", "backgroundColor"])
+ ])) : vue.createCommentVNode("v-if", true),
+ item.status === "error" ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 1,
+ class: "file-picker__mask",
+ onClick: vue.withModifiers(($event) => $options.uploadFiles(item, index), ["stop"])
+ }, " 点击重试 ", 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 6
+ /* CLASS, STYLE */
+ );
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ],
+ 4
+ /* STYLE */
+ )) : vue.createCommentVNode("v-if", true)
+ ]);
+ }
+ const uploadFile = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$5], ["__scopeId", "data-v-a54939c6"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue"]]);
+ const _sfc_main$p = {
+ name: "uniFilePicker",
+ components: {
+ uploadImage,
+ uploadFile
+ },
+ options: {
+ virtualHost: true
+ },
+ emits: ["select", "success", "fail", "progress", "delete", "update:modelValue", "input"],
+ props: {
+ modelValue: {
+ type: [Array, Object],
+ default() {
+ return [];
+ }
+ },
+ value: {
+ type: [Array, Object],
+ default() {
+ return [];
+ }
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ disablePreview: {
+ type: Boolean,
+ default: false
+ },
+ delIcon: {
+ type: Boolean,
+ default: true
+ },
+ // 自动上传
+ autoUpload: {
+ type: Boolean,
+ default: true
+ },
+ // 最大选择个数 ,h5只能限制单选或是多选
+ limit: {
+ type: [Number, String],
+ default: 9
+ },
+ // 列表样式 grid | list | list-card
+ mode: {
+ type: String,
+ default: "grid"
+ },
+ // 选择文件类型 image/video/all
+ fileMediatype: {
+ type: String,
+ default: "image"
+ },
+ // 文件类型筛选
+ fileExtname: {
+ type: [Array, String],
+ default() {
+ return [];
+ }
+ },
+ title: {
+ type: String,
+ default: ""
+ },
+ listStyles: {
+ type: Object,
+ default() {
+ return {
+ // 是否显示边框
+ border: true,
+ // 是否显示分隔线
+ dividline: true,
+ // 线条样式
+ borderStyle: {}
+ };
+ }
+ },
+ imageStyles: {
+ type: Object,
+ default() {
+ return {
+ width: "auto",
+ height: "auto"
+ };
+ }
+ },
+ readonly: {
+ type: Boolean,
+ default: false
+ },
+ returnType: {
+ type: String,
+ default: "array"
+ },
+ sizeType: {
+ type: Array,
+ default() {
+ return ["original", "compressed"];
+ }
+ },
+ sourceType: {
+ type: Array,
+ default() {
+ return ["album", "camera"];
+ }
+ },
+ provider: {
+ type: String,
+ default: ""
+ // 默认上传到 unicloud 内置存储 extStorage 扩展存储
+ }
+ },
+ data() {
+ return {
+ files: [],
+ localValue: []
+ };
+ },
+ watch: {
+ value: {
+ handler(newVal, oldVal) {
+ this.setValue(newVal, oldVal);
+ },
+ immediate: true
+ },
+ modelValue: {
+ handler(newVal, oldVal) {
+ this.setValue(newVal, oldVal);
+ },
+ immediate: true
+ }
+ },
+ computed: {
+ filesList() {
+ let files = [];
+ this.files.forEach((v2) => {
+ files.push(v2);
+ });
+ return files;
+ },
+ showType() {
+ if (this.fileMediatype === "image") {
+ return this.mode;
+ }
+ return "list";
+ },
+ limitLength() {
+ if (this.returnType === "object") {
+ return 1;
+ }
+ if (!this.limit) {
+ return 1;
+ }
+ if (this.limit >= 9) {
+ return 9;
+ }
+ return this.limit;
+ }
+ },
+ created() {
+ if (!(Ws.config && Ws.config.provider)) {
+ this.noSpace = true;
+ Ws.chooseAndUploadFile = chooseAndUploadFile;
+ }
+ this.form = this.getForm("uniForms");
+ this.formItem = this.getForm("uniFormsItem");
+ if (this.form && this.formItem) {
+ if (this.formItem.name) {
+ this.rename = this.formItem.name;
+ this.form.inputChildrens.push(this);
+ }
+ }
+ },
+ methods: {
+ /**
+ * 公开用户使用,清空文件
+ * @param {Object} index
+ */
+ clearFiles(index) {
+ if (index !== 0 && !index) {
+ this.files = [];
+ this.$nextTick(() => {
+ this.setEmit();
+ });
+ } else {
+ this.files.splice(index, 1);
+ }
+ this.$nextTick(() => {
+ this.setEmit();
+ });
+ },
+ /**
+ * 公开用户使用,继续上传
+ */
+ upload() {
+ let files = [];
+ this.files.forEach((v2, index) => {
+ if (v2.status === "ready" || v2.status === "error") {
+ files.push(Object.assign({}, v2));
+ }
+ });
+ return this.uploadFiles(files);
+ },
+ async setValue(newVal, oldVal) {
+ const newData = async (v2) => {
+ const reg = /cloud:\/\/([\w.]+\/?)\S*/;
+ let url = "";
+ if (v2.fileID) {
+ url = v2.fileID;
+ } else {
+ url = v2.url;
+ }
+ if (reg.test(url)) {
+ v2.fileID = url;
+ v2.url = await this.getTempFileURL(url);
+ }
+ if (v2.url)
+ v2.path = v2.url;
+ return v2;
+ };
+ if (this.returnType === "object") {
+ if (newVal) {
+ await newData(newVal);
+ } else {
+ newVal = {};
+ }
+ } else {
+ if (!newVal)
+ newVal = [];
+ for (let i2 = 0; i2 < newVal.length; i2++) {
+ let v2 = newVal[i2];
+ await newData(v2);
+ }
+ }
+ this.localValue = newVal;
+ if (this.form && this.formItem && !this.is_reset) {
+ this.is_reset = false;
+ this.formItem.setValue(this.localValue);
+ }
+ let filesData = Object.keys(newVal).length > 0 ? newVal : [];
+ this.files = [].concat(filesData);
+ },
+ /**
+ * 选择文件
+ */
+ choose() {
+ if (this.disabled)
+ return;
+ if (this.files.length >= Number(this.limitLength) && this.showType !== "grid" && this.returnType === "array") {
+ uni.showToast({
+ title: `您最多选择 ${this.limitLength} 个文件`,
+ icon: "none"
+ });
+ return;
+ }
+ this.chooseFiles();
+ },
+ /**
+ * 选择文件并上传
+ */
+ chooseFiles() {
+ const _extname = get_extname(this.fileExtname);
+ Ws.chooseAndUploadFile({
+ type: this.fileMediatype,
+ compressed: false,
+ sizeType: this.sizeType,
+ sourceType: this.sourceType,
+ // TODO 如果为空,video 有问题
+ extension: _extname.length > 0 ? _extname : void 0,
+ count: this.limitLength - this.files.length,
+ //默认9
+ onChooseFile: this.chooseFileCallback,
+ onUploadProgress: (progressEvent) => {
+ this.setProgress(progressEvent, progressEvent.index);
+ }
+ }).then((result) => {
+ this.setSuccessAndError(result.tempFiles);
+ }).catch((err) => {
+ formatAppLog("log", "at uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue:364", "选择失败", err);
+ });
+ },
+ /**
+ * 选择文件回调
+ * @param {Object} res
+ */
+ async chooseFileCallback(res) {
+ const _extname = get_extname(this.fileExtname);
+ const is_one = Number(this.limitLength) === 1 && this.disablePreview && !this.disabled || this.returnType === "object";
+ if (is_one) {
+ this.files = [];
+ }
+ let {
+ filePaths,
+ files
+ } = get_files_and_is_max(res, _extname);
+ if (!(_extname && _extname.length > 0)) {
+ filePaths = res.tempFilePaths;
+ files = res.tempFiles;
+ }
+ let currentData = [];
+ for (let i2 = 0; i2 < files.length; i2++) {
+ if (this.limitLength - this.files.length <= 0)
+ break;
+ files[i2].uuid = Date.now();
+ let filedata = await get_file_data(files[i2], this.fileMediatype);
+ filedata.progress = 0;
+ filedata.status = "ready";
+ this.files.push(filedata);
+ currentData.push({
+ ...filedata,
+ file: files[i2]
+ });
+ }
+ this.$emit("select", {
+ tempFiles: currentData,
+ tempFilePaths: filePaths
+ });
+ res.tempFiles = files;
+ if (!this.autoUpload || this.noSpace) {
+ res.tempFiles = [];
+ }
+ res.tempFiles.forEach((fileItem, index) => {
+ this.provider && (fileItem.provider = this.provider);
+ const fileNameSplit = fileItem.name.split(".");
+ const ext = fileNameSplit.pop();
+ const fileName = fileNameSplit.join(".").replace(/[\s\/\?<>\\:\*\|":]/g, "_");
+ fileItem.cloudPath = fileName + "_" + Date.now() + "_" + index + "." + ext;
+ });
+ },
+ /**
+ * 批传
+ * @param {Object} e
+ */
+ uploadFiles(files) {
+ files = [].concat(files);
+ return uploadCloudFiles.call(this, files, 5, (res) => {
+ this.setProgress(res, res.index, true);
+ }).then((result) => {
+ this.setSuccessAndError(result);
+ return result;
+ }).catch((err) => {
+ formatAppLog("log", "at uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue:437", err);
+ });
+ },
+ /**
+ * 成功或失败
+ */
+ async setSuccessAndError(res, fn) {
+ let successData = [];
+ let errorData = [];
+ let tempFilePath = [];
+ let errorTempFilePath = [];
+ for (let i2 = 0; i2 < res.length; i2++) {
+ const item = res[i2];
+ const index = item.uuid ? this.files.findIndex((p2) => p2.uuid === item.uuid) : item.index;
+ if (index === -1 || !this.files)
+ break;
+ if (item.errMsg === "request:fail") {
+ this.files[index].url = item.path;
+ this.files[index].status = "error";
+ this.files[index].errMsg = item.errMsg;
+ errorData.push(this.files[index]);
+ errorTempFilePath.push(this.files[index].url);
+ } else {
+ this.files[index].errMsg = "";
+ this.files[index].fileID = item.url;
+ const reg = /cloud:\/\/([\w.]+\/?)\S*/;
+ if (reg.test(item.url)) {
+ this.files[index].url = await this.getTempFileURL(item.url);
+ } else {
+ this.files[index].url = item.url;
+ }
+ this.files[index].status = "success";
+ this.files[index].progress += 1;
+ successData.push(this.files[index]);
+ tempFilePath.push(this.files[index].fileID);
+ }
+ }
+ if (successData.length > 0) {
+ this.setEmit();
+ this.$emit("success", {
+ tempFiles: this.backObject(successData),
+ tempFilePaths: tempFilePath
+ });
+ }
+ if (errorData.length > 0) {
+ this.$emit("fail", {
+ tempFiles: this.backObject(errorData),
+ tempFilePaths: errorTempFilePath
+ });
+ }
+ },
+ /**
+ * 获取进度
+ * @param {Object} progressEvent
+ * @param {Object} index
+ * @param {Object} type
+ */
+ setProgress(progressEvent, index, type) {
+ this.files.length;
+ const percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total);
+ let idx = index;
+ if (!type) {
+ idx = this.files.findIndex((p2) => p2.uuid === progressEvent.tempFile.uuid);
+ }
+ if (idx === -1 || !this.files[idx])
+ return;
+ this.files[idx].progress = percentCompleted - 1;
+ this.$emit("progress", {
+ index: idx,
+ progress: parseInt(percentCompleted),
+ tempFile: this.files[idx]
+ });
+ },
+ /**
+ * 删除文件
+ * @param {Object} index
+ */
+ delFile(index) {
+ this.$emit("delete", {
+ index,
+ tempFile: this.files[index],
+ tempFilePath: this.files[index].url
+ });
+ this.files.splice(index, 1);
+ this.$nextTick(() => {
+ this.setEmit();
+ });
+ },
+ /**
+ * 获取文件名和后缀
+ * @param {Object} name
+ */
+ getFileExt(name2) {
+ const last_len = name2.lastIndexOf(".");
+ const len = name2.length;
+ return {
+ name: name2.substring(0, last_len),
+ ext: name2.substring(last_len + 1, len)
+ };
+ },
+ /**
+ * 处理返回事件
+ */
+ setEmit() {
+ let data = [];
+ if (this.returnType === "object") {
+ data = this.backObject(this.files)[0];
+ this.localValue = data ? data : null;
+ } else {
+ data = this.backObject(this.files);
+ if (!this.localValue) {
+ this.localValue = [];
+ }
+ this.localValue = [...data];
+ }
+ this.$emit("update:modelValue", this.localValue);
+ },
+ /**
+ * 处理返回参数
+ * @param {Object} files
+ */
+ backObject(files) {
+ let newFilesData = [];
+ files.forEach((v2) => {
+ newFilesData.push({
+ extname: v2.extname,
+ fileType: v2.fileType,
+ image: v2.image,
+ name: v2.name,
+ path: v2.path,
+ size: v2.size,
+ fileID: v2.fileID,
+ url: v2.url,
+ // 修改删除一个文件后不能再上传的bug, #694
+ uuid: v2.uuid,
+ status: v2.status,
+ cloudPath: v2.cloudPath
+ });
+ });
+ return newFilesData;
+ },
+ async getTempFileURL(fileList) {
+ fileList = {
+ fileList: [].concat(fileList)
+ };
+ const urls = await Ws.getTempFileURL(fileList);
+ return urls.fileList[0].tempFileURL || "";
+ },
+ /**
+ * 获取父元素实例
+ */
+ getForm(name2 = "uniForms") {
+ let parent = this.$parent;
+ let parentName = parent.$options.name;
+ while (parentName !== name2) {
+ parent = parent.$parent;
+ if (!parent)
+ return false;
+ parentName = parent.$options.name;
+ }
+ return parent;
+ }
+ }
+ };
+ function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
+ const _component_upload_image = vue.resolveComponent("upload-image");
+ const _component_upload_file = vue.resolveComponent("upload-file");
+ return vue.openBlock(), vue.createElementBlock("view", { class: "uni-file-picker" }, [
+ $props.title ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "uni-file-picker__header"
+ }, [
+ vue.createElementVNode(
+ "text",
+ { class: "file-title" },
+ vue.toDisplayString($props.title),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode(
+ "text",
+ { class: "file-count" },
+ vue.toDisplayString($options.filesList.length) + "/" + vue.toDisplayString($options.limitLength),
+ 1
+ /* TEXT */
+ )
+ ])) : vue.createCommentVNode("v-if", true),
+ $props.fileMediatype === "image" && $options.showType === "grid" ? (vue.openBlock(), vue.createBlock(_component_upload_image, {
+ key: 1,
+ readonly: $props.readonly,
+ "image-styles": $props.imageStyles,
+ "files-list": $options.filesList,
+ limit: $options.limitLength,
+ disablePreview: $props.disablePreview,
+ delIcon: $props.delIcon,
+ onUploadFiles: $options.uploadFiles,
+ onChoose: $options.choose,
+ onDelFile: $options.delFile
+ }, {
+ default: vue.withCtx(() => [
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
+ vue.createElementVNode("view", { class: "is-add" }, [
+ vue.createElementVNode("view", { class: "icon-add" }),
+ vue.createElementVNode("view", { class: "icon-add rotate" })
+ ])
+ ], true)
+ ]),
+ _: 3
+ /* FORWARDED */
+ }, 8, ["readonly", "image-styles", "files-list", "limit", "disablePreview", "delIcon", "onUploadFiles", "onChoose", "onDelFile"])) : vue.createCommentVNode("v-if", true),
+ $props.fileMediatype !== "image" || $options.showType !== "grid" ? (vue.openBlock(), vue.createBlock(_component_upload_file, {
+ key: 2,
+ readonly: $props.readonly,
+ "list-styles": $props.listStyles,
+ "files-list": $options.filesList,
+ showType: $options.showType,
+ delIcon: $props.delIcon,
+ onUploadFiles: $options.uploadFiles,
+ onChoose: $options.choose,
+ onDelFile: $options.delFile
+ }, {
+ default: vue.withCtx(() => [
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
+ vue.createElementVNode("button", {
+ type: "primary",
+ size: "mini"
+ }, "选择文件")
+ ], true)
+ ]),
+ _: 3
+ /* FORWARDED */
+ }, 8, ["readonly", "list-styles", "files-list", "showType", "delIcon", "onUploadFiles", "onChoose", "onDelFile"])) : vue.createCommentVNode("v-if", true)
+ ]);
+ }
+ const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render$4], ["__scopeId", "data-v-6223573f"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue"]]);
+ function qjAddApi(config) {
+ return https({
+ url: "/CxcQxj/cxcQxj/add",
+ method: "post",
+ data: config
+ });
+ }
+ function queryZwmcAndExaApi(username) {
+ return https({
+ url: "/CxcQxj/cxcQxj/queryZwmcByUsername",
+ method: "get",
+ data: {
+ username
+ }
+ });
+ }
+ function qjQueryByIdApi(config) {
+ return https({
+ url: "/CxcQxj/cxcQxj/queryById",
+ method: "get",
+ data: config
+ });
+ }
+ function queryDepByCode(code) {
+ return https({
+ url: "/sys/sysDepart/queryDepNameByDepCode",
+ method: "get",
+ data: {
+ code
+ }
+ });
+ }
+ function obj2strClass(obj) {
+ let classess = "";
+ for (let key in obj) {
+ const val = obj[key];
+ if (val) {
+ classess += `${key} `;
+ }
+ }
+ return classess;
+ }
+ function obj2strStyle(obj) {
+ let style = "";
+ for (let key in obj) {
+ const val = obj[key];
+ style += `${key}:${val};`;
+ }
+ return style;
+ }
+ const _sfc_main$o = {
+ name: "uni-easyinput",
+ emits: [
+ "click",
+ "iconClick",
+ "update:modelValue",
+ "input",
+ "focus",
+ "blur",
+ "confirm",
+ "clear",
+ "eyes",
+ "change",
+ "keyboardheightchange"
+ ],
+ model: {
+ prop: "modelValue",
+ event: "update:modelValue"
+ },
+ options: {
+ virtualHost: true
+ },
+ inject: {
+ form: {
+ from: "uniForm",
+ default: null
+ },
+ formItem: {
+ from: "uniFormItem",
+ default: null
+ }
+ },
+ props: {
+ name: String,
+ value: [Number, String],
+ modelValue: [Number, String],
+ type: {
+ type: String,
+ default: "text"
+ },
+ clearable: {
+ type: Boolean,
+ default: true
+ },
+ autoHeight: {
+ type: Boolean,
+ default: false
+ },
+ placeholder: {
+ type: String,
+ default: " "
+ },
+ placeholderStyle: String,
+ focus: {
+ type: Boolean,
+ default: false
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ maxlength: {
+ type: [Number, String],
+ default: 140
+ },
+ confirmType: {
+ type: String,
+ default: "done"
+ },
+ clearSize: {
+ type: [Number, String],
+ default: 24
+ },
+ inputBorder: {
+ type: Boolean,
+ default: true
+ },
+ prefixIcon: {
+ type: String,
+ default: ""
+ },
+ suffixIcon: {
+ type: String,
+ default: ""
+ },
+ trim: {
+ type: [Boolean, String],
+ default: false
+ },
+ cursorSpacing: {
+ type: Number,
+ default: 0
+ },
+ passwordIcon: {
+ type: Boolean,
+ default: true
+ },
+ adjustPosition: {
+ type: Boolean,
+ default: true
+ },
+ primaryColor: {
+ type: String,
+ default: "#2979ff"
+ },
+ styles: {
+ type: Object,
+ default() {
+ return {
+ color: "#333",
+ backgroundColor: "#fff",
+ disableColor: "#F7F6F6",
+ borderColor: "#e5e5e5"
+ };
+ }
+ },
+ errorMessage: {
+ type: [String, Boolean],
+ default: ""
+ }
+ },
+ data() {
+ return {
+ focused: false,
+ val: "",
+ showMsg: "",
+ border: false,
+ isFirstBorder: false,
+ showClearIcon: false,
+ showPassword: false,
+ focusShow: false,
+ localMsg: "",
+ isEnter: false
+ // 用于判断当前是否是使用回车操作
+ };
+ },
+ computed: {
+ // 输入框内是否有值
+ isVal() {
+ const val = this.val;
+ if (val || val === 0) {
+ return true;
+ }
+ return false;
+ },
+ msg() {
+ return this.localMsg || this.errorMessage;
+ },
+ // 因为uniapp的input组件的maxlength组件必须要数值,这里转为数值,用户可以传入字符串数值
+ inputMaxlength() {
+ return Number(this.maxlength);
+ },
+ // 处理外层样式的style
+ boxStyle() {
+ return `color:${this.inputBorder && this.msg ? "#e43d33" : this.styles.color};`;
+ },
+ // input 内容的类和样式处理
+ inputContentClass() {
+ return obj2strClass({
+ "is-input-border": this.inputBorder,
+ "is-input-error-border": this.inputBorder && this.msg,
+ "is-textarea": this.type === "textarea",
+ "is-disabled": this.disabled,
+ "is-focused": this.focusShow
+ });
+ },
+ inputContentStyle() {
+ const focusColor = this.focusShow ? this.primaryColor : this.styles.borderColor;
+ const borderColor = this.inputBorder && this.msg ? "#dd524d" : focusColor;
+ return obj2strStyle({
+ "border-color": borderColor || "#e5e5e5",
+ "background-color": this.disabled ? this.styles.disableColor : this.styles.backgroundColor
+ });
+ },
+ // input右侧样式
+ inputStyle() {
+ const paddingRight = this.type === "password" || this.clearable || this.prefixIcon ? "" : "10px";
+ return obj2strStyle({
+ "padding-right": paddingRight,
+ "padding-left": this.prefixIcon ? "" : "10px"
+ });
+ }
+ },
+ watch: {
+ value(newVal) {
+ if (newVal === null) {
+ this.val = "";
+ return;
+ }
+ this.val = newVal;
+ },
+ modelValue(newVal) {
+ if (newVal === null) {
+ this.val = "";
+ return;
+ }
+ this.val = newVal;
+ },
+ focus(newVal) {
+ this.$nextTick(() => {
+ this.focused = this.focus;
+ this.focusShow = this.focus;
+ });
+ }
+ },
+ created() {
+ this.init();
+ if (this.form && this.formItem) {
+ this.$watch("formItem.errMsg", (newVal) => {
+ this.localMsg = newVal;
+ });
+ }
+ },
+ mounted() {
+ this.$nextTick(() => {
+ this.focused = this.focus;
+ this.focusShow = this.focus;
+ });
+ },
+ methods: {
+ /**
+ * 初始化变量值
+ */
+ init() {
+ if (this.value || this.value === 0) {
+ this.val = this.value;
+ } else if (this.modelValue || this.modelValue === 0 || this.modelValue === "") {
+ this.val = this.modelValue;
+ } else {
+ this.val = "";
+ }
+ },
+ /**
+ * 点击图标时触发
+ * @param {Object} type
+ */
+ onClickIcon(type) {
+ this.$emit("iconClick", type);
+ },
+ /**
+ * 显示隐藏内容,密码框时生效
+ */
+ onEyes() {
+ this.showPassword = !this.showPassword;
+ this.$emit("eyes", this.showPassword);
+ },
+ /**
+ * 输入时触发
+ * @param {Object} event
+ */
+ onInput(event) {
+ let value = event.detail.value;
+ if (this.trim) {
+ if (typeof this.trim === "boolean" && this.trim) {
+ value = this.trimStr(value);
+ }
+ if (typeof this.trim === "string") {
+ value = this.trimStr(value, this.trim);
+ }
+ }
+ if (this.errMsg)
+ this.errMsg = "";
+ this.val = value;
+ this.$emit("input", value);
+ this.$emit("update:modelValue", value);
+ },
+ /**
+ * 外部调用方法
+ * 获取焦点时触发
+ * @param {Object} event
+ */
+ onFocus() {
+ this.$nextTick(() => {
+ this.focused = true;
+ });
+ this.$emit("focus", null);
+ },
+ _Focus(event) {
+ this.focusShow = true;
+ this.$emit("focus", event);
+ },
+ /**
+ * 外部调用方法
+ * 失去焦点时触发
+ * @param {Object} event
+ */
+ onBlur() {
+ this.focused = false;
+ this.$emit("blur", null);
+ },
+ _Blur(event) {
+ event.detail.value;
+ this.focusShow = false;
+ this.$emit("blur", event);
+ if (this.isEnter === false) {
+ this.$emit("change", this.val);
+ }
+ if (this.form && this.formItem) {
+ const { validateTrigger } = this.form;
+ if (validateTrigger === "blur") {
+ this.formItem.onFieldChange();
+ }
+ }
+ },
+ /**
+ * 按下键盘的发送键
+ * @param {Object} e
+ */
+ onConfirm(e2) {
+ this.$emit("confirm", this.val);
+ this.isEnter = true;
+ this.$emit("change", this.val);
+ this.$nextTick(() => {
+ this.isEnter = false;
+ });
+ },
+ /**
+ * 清理内容
+ * @param {Object} event
+ */
+ onClear(event) {
+ this.val = "";
+ this.$emit("input", "");
+ this.$emit("update:modelValue", "");
+ this.$emit("clear");
+ },
+ /**
+ * 键盘高度发生变化的时候触发此事件
+ * 兼容性:微信小程序2.7.0+、App 3.1.0+
+ * @param {Object} event
+ */
+ onkeyboardheightchange(event) {
+ this.$emit("keyboardheightchange", event);
+ },
+ /**
+ * 去除空格
+ */
+ trimStr(str, pos = "both") {
+ if (pos === "both") {
+ return str.trim();
+ } else if (pos === "left") {
+ return str.trimLeft();
+ } else if (pos === "right") {
+ return str.trimRight();
+ } else if (pos === "start") {
+ return str.trimStart();
+ } else if (pos === "end") {
+ return str.trimEnd();
+ } else if (pos === "all") {
+ return str.replace(/\s+/g, "");
+ } else if (pos === "none") {
+ return str;
+ }
+ return str;
+ }
+ }
+ };
+ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["uni-easyinput", { "uni-easyinput-error": $options.msg }]),
+ style: vue.normalizeStyle($options.boxStyle)
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(["uni-easyinput__content", $options.inputContentClass]),
+ style: vue.normalizeStyle($options.inputContentStyle)
+ },
+ [
+ $props.prefixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ class: "content-clear-icon",
+ type: $props.prefixIcon,
+ color: "#c0c4cc",
+ onClick: _cache[0] || (_cache[0] = ($event) => $options.onClickIcon("prefix")),
+ size: "22"
+ }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true),
+ vue.renderSlot(_ctx.$slots, "left", {}, void 0, true),
+ $props.type === "textarea" ? (vue.openBlock(), vue.createElementBlock("textarea", {
+ key: 1,
+ class: vue.normalizeClass(["uni-easyinput__content-textarea", { "input-padding": $props.inputBorder }]),
+ name: $props.name,
+ value: $data.val,
+ placeholder: $props.placeholder,
+ placeholderStyle: $props.placeholderStyle,
+ disabled: $props.disabled,
+ "placeholder-class": "uni-easyinput__placeholder-class",
+ maxlength: $options.inputMaxlength,
+ focus: $data.focused,
+ autoHeight: $props.autoHeight,
+ "cursor-spacing": $props.cursorSpacing,
+ "adjust-position": $props.adjustPosition,
+ onInput: _cache[1] || (_cache[1] = (...args) => $options.onInput && $options.onInput(...args)),
+ onBlur: _cache[2] || (_cache[2] = (...args) => $options._Blur && $options._Blur(...args)),
+ onFocus: _cache[3] || (_cache[3] = (...args) => $options._Focus && $options._Focus(...args)),
+ onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
+ onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
+ }, null, 42, ["name", "value", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "autoHeight", "cursor-spacing", "adjust-position"])) : (vue.openBlock(), vue.createElementBlock("input", {
+ key: 2,
+ type: $props.type === "password" ? "text" : $props.type,
+ class: "uni-easyinput__content-input",
+ style: vue.normalizeStyle($options.inputStyle),
+ name: $props.name,
+ value: $data.val,
+ password: !$data.showPassword && $props.type === "password",
+ placeholder: $props.placeholder,
+ placeholderStyle: $props.placeholderStyle,
+ "placeholder-class": "uni-easyinput__placeholder-class",
+ disabled: $props.disabled,
+ maxlength: $options.inputMaxlength,
+ focus: $data.focused,
+ confirmType: $props.confirmType,
+ "cursor-spacing": $props.cursorSpacing,
+ "adjust-position": $props.adjustPosition,
+ onFocus: _cache[6] || (_cache[6] = (...args) => $options._Focus && $options._Focus(...args)),
+ onBlur: _cache[7] || (_cache[7] = (...args) => $options._Blur && $options._Blur(...args)),
+ onInput: _cache[8] || (_cache[8] = (...args) => $options.onInput && $options.onInput(...args)),
+ onConfirm: _cache[9] || (_cache[9] = (...args) => $options.onConfirm && $options.onConfirm(...args)),
+ onKeyboardheightchange: _cache[10] || (_cache[10] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args))
+ }, null, 44, ["type", "name", "value", "password", "placeholder", "placeholderStyle", "disabled", "maxlength", "focus", "confirmType", "cursor-spacing", "adjust-position"])),
+ $props.type === "password" && $props.passwordIcon ? (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ { key: 3 },
+ [
+ vue.createCommentVNode(" 开启密码时显示小眼睛 "),
+ $options.isVal ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
+ type: $data.showPassword ? "eye-slash-filled" : "eye-filled",
+ size: 22,
+ color: $data.focusShow ? $props.primaryColor : "#c0c4cc",
+ onClick: $options.onEyes
+ }, null, 8, ["class", "type", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ )) : vue.createCommentVNode("v-if", true),
+ $props.suffixIcon ? (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ { key: 4 },
+ [
+ $props.suffixIcon ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ class: "content-clear-icon",
+ type: $props.suffixIcon,
+ color: "#c0c4cc",
+ onClick: _cache[11] || (_cache[11] = ($event) => $options.onClickIcon("suffix")),
+ size: "22"
+ }, null, 8, ["type"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ )) : (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ { key: 5 },
+ [
+ $props.clearable && $options.isVal && !$props.disabled && $props.type !== "textarea" ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ class: vue.normalizeClass(["content-clear-icon", { "is-textarea-icon": $props.type === "textarea" }]),
+ type: "clear",
+ size: $props.clearSize,
+ color: $options.msg ? "#dd524d" : $data.focusShow ? $props.primaryColor : "#c0c4cc",
+ onClick: $options.onClear
+ }, null, 8, ["class", "size", "color", "onClick"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ )),
+ vue.renderSlot(_ctx.$slots, "right", {}, void 0, true)
+ ],
+ 6
+ /* CLASS, STYLE */
+ )
+ ],
+ 6
+ /* CLASS, STYLE */
+ );
+ }
+ const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["render", _sfc_render$3], ["__scopeId", "data-v-09fd5285"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue"]]);
+ function isString(data) {
+ return typeof data === "string";
+ }
+ function paging(data, PAGENUM = 50) {
+ if (!Array.isArray(data) || !data.length)
+ return data;
+ const pages2 = [];
+ data.forEach((item, index) => {
+ const i2 = Math.floor(index / PAGENUM);
+ if (!pages2[i2]) {
+ pages2[i2] = [];
+ }
+ pages2[i2].push(item);
+ });
+ return pages2;
+ }
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
+ __name: "data-select-item",
+ props: {
+ node: {
+ type: Object,
+ default: () => ({})
+ },
+ choseParent: {
+ type: Boolean,
+ default: true
+ },
+ dataLabel: {
+ type: String,
+ default: "name"
+ },
+ dataValue: {
+ type: String,
+ default: "value"
+ },
+ dataChildren: {
+ type: String,
+ default: "children"
+ },
+ border: {
+ type: Boolean,
+ default: false
+ },
+ linkage: {
+ type: Boolean,
+ default: false
+ },
+ lazyLoadChildren: {
+ type: Boolean,
+ default: false
+ },
+ level: {
+ type: Number,
+ default: 0
+ }
+ },
+ setup(__props) {
+ const { nodeClick, nameClick, loadNode, initData, addNode } = vue.inject("nodeFn");
+ const props = __props;
+ const listData = vue.ref([]);
+ const clearTimerList = vue.ref([]);
+ const loadingArr = vue.ref([]);
+ vue.watchEffect(() => {
+ if (props.node.showChildren && props.node[props.dataChildren] && props.node[props.dataChildren].length) {
+ resetClearTimerList();
+ renderTree(props.node[props.dataChildren]);
+ }
+ });
+ function resetClearTimerList() {
+ const list = [...clearTimerList.value];
+ clearTimerList.value = [];
+ list.forEach((fn) => fn());
+ }
+ function renderTree(arr) {
+ const pagingArr = paging(arr);
+ listData.value = (pagingArr == null ? void 0 : pagingArr[0]) || [];
+ lazyRenderList(pagingArr, 1);
+ }
+ function lazyRenderList(arr, startIndex) {
+ for (let i2 = startIndex; i2 < arr.length; i2++) {
+ let timer = null;
+ timer = setTimeout(() => {
+ listData.value.push(...arr[i2]);
+ }, i2 * 500);
+ clearTimerList.push(() => clearTimeout(timer));
+ }
+ }
+ function handleNameClick(node) {
+ var _a;
+ if (!node.visible)
+ return;
+ if (!((_a = node[props.dataChildren]) == null ? void 0 : _a.length) && props.lazyLoadChildren) {
+ loadingArr.value.push(node[props.dataValue].toString());
+ loadNode(node).then((res) => {
+ addNode(node, initData(res, node.visible));
+ }).finally(() => {
+ loadingArr.value = [];
+ });
+ } else {
+ nameClick(node);
+ }
+ }
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["customthree-tree-select-content", {
+ border: __props.border && __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length && __props.node.showChildren
+ }]),
+ style: vue.normalizeStyle({ marginLeft: `${__props.level ? 14 : 0}px` })
+ },
+ [
+ __props.node.visible ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "custom-tree-select-item"
+ }, [
+ vue.createElementVNode("view", { class: "item-content" }, [
+ vue.createElementVNode("view", {
+ class: "left",
+ onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => handleNameClick(__props.node), ["stop"]))
+ }, [
+ vue.createElementVNode("view", { class: "icon-group" }, [
+ __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 0,
+ class: vue.normalizeClass(["right-icon", { active: __props.node.showChildren }])
+ },
+ [
+ vue.createVNode(_component_uni_icons, {
+ type: "right",
+ size: "14",
+ color: "#333"
+ })
+ ],
+ 2
+ /* CLASS */
+ )) : (vue.openBlock(), vue.createElementBlock("view", {
+ key: 1,
+ class: "smallcircle-filled"
+ }, [
+ vue.createVNode(_component_uni_icons, {
+ class: "smallcircle-filled-icon",
+ type: "smallcircle-filled",
+ size: "10",
+ color: "#333"
+ })
+ ]))
+ ]),
+ loadingArr.value.includes(__props.node[props.dataValue].toString()) ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "loading-icon-box"
+ }, [
+ vue.createVNode(_component_uni_icons, {
+ class: "loading-icon",
+ type: "spinner-cycle",
+ size: "14",
+ color: "#333"
+ })
+ ])) : vue.createCommentVNode("v-if", true),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "name",
+ style: vue.normalizeStyle(__props.node.disabled ? "color: #999" : "")
+ },
+ [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(__props.node[__props.dataLabel]),
+ 1
+ /* TEXT */
+ )
+ ],
+ 4
+ /* STYLE */
+ )
+ ]),
+ __props.choseParent || !__props.choseParent && !__props.node[__props.dataChildren] || !__props.choseParent && __props.node[__props.dataChildren] && !__props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 0,
+ class: vue.normalizeClass(["check-box", { disabled: __props.node.disabled }]),
+ onClick: _cache[1] || (_cache[1] = vue.withModifiers(($event) => !__props.node.disabled && vue.unref(nodeClick)(__props.node), ["stop"]))
+ },
+ [
+ !__props.node.checked && __props.node.partChecked && __props.linkage ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "part-checked"
+ })) : vue.createCommentVNode("v-if", true),
+ __props.node.checked ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 1,
+ type: "checkmarkempty",
+ size: "18",
+ color: __props.node.disabled ? "#333" : "#007aff"
+ }, null, 8, ["color"])) : vue.createCommentVNode("v-if", true)
+ ],
+ 2
+ /* CLASS */
+ )) : vue.createCommentVNode("v-if", true)
+ ])
+ ])) : vue.createCommentVNode("v-if", true),
+ __props.node.showChildren && __props.node[__props.dataChildren] && __props.node[__props.dataChildren].length ? (vue.openBlock(), vue.createElementBlock("view", { key: 1 }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(listData.value, (item) => {
+ return vue.openBlock(), vue.createBlock(dataSelectItem, {
+ key: item[__props.dataValue],
+ node: item,
+ dataLabel: __props.dataLabel,
+ dataValue: __props.dataValue,
+ dataChildren: __props.dataChildren,
+ choseParent: __props.choseParent,
+ lazyLoadChildren: __props.lazyLoadChildren,
+ border: __props.border,
+ linkage: __props.linkage,
+ level: __props.level + 1
+ }, null, 8, ["node", "dataLabel", "dataValue", "dataChildren", "choseParent", "lazyLoadChildren", "border", "linkage", "level"]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])) : vue.createCommentVNode("v-if", true)
+ ],
+ 6
+ /* CLASS, STYLE */
+ );
+ };
+ }
+ });
+ const dataSelectItem = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-3a65eef7"], ["__file", "D:/projects/cxc-szcx-uniapp/components/treeSelect/data-select-item.vue"]]);
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
+ __name: "treeSelect",
+ props: {
+ canSelectAll: {
+ type: Boolean,
+ default: false
+ },
+ safeArea: {
+ type: Boolean,
+ default: true
+ },
+ search: {
+ type: Boolean,
+ default: false
+ },
+ clearResetSearch: {
+ type: Boolean,
+ default: false
+ },
+ animation: {
+ type: Boolean,
+ default: true
+ },
+ "is-mask-click": {
+ type: Boolean,
+ default: true
+ },
+ "mask-background-color": {
+ type: String,
+ default: "rgba(0,0,0,0.4)"
+ },
+ "background-color": {
+ type: String,
+ default: "none"
+ },
+ "safe-area": {
+ type: Boolean,
+ default: true
+ },
+ choseParent: {
+ type: Boolean,
+ default: false
+ },
+ placeholder: {
+ type: String,
+ default: "请选择"
+ },
+ confirmText: {
+ type: String,
+ default: "确认"
+ },
+ confirmTextColor: {
+ type: String,
+ default: "#007aff"
+ },
+ dataSource: {
+ type: Array,
+ default: () => []
+ },
+ dataLabel: {
+ type: String,
+ default: "name"
+ },
+ dataValue: {
+ type: String,
+ default: "id"
+ },
+ dataChildren: {
+ type: String,
+ default: "children"
+ },
+ linkage: {
+ type: Boolean,
+ default: false
+ },
+ removeLinkage: {
+ type: Boolean,
+ default: true
+ },
+ clearable: {
+ type: Boolean,
+ default: false
+ },
+ mutiple: {
+ type: Boolean,
+ default: false
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ deleteSource: {
+ type: Boolean,
+ default: false
+ },
+ showChildren: {
+ type: Boolean,
+ default: false
+ },
+ border: {
+ type: Boolean,
+ default: false
+ },
+ lazyLoadChildren: {
+ type: Boolean,
+ default: false
+ },
+ load: {
+ type: Function,
+ default: function() {
+ }
+ },
+ modelValue: {
+ type: [Array, String],
+ default: () => []
+ }
+ },
+ emits: ["update:modelValue", "change", "maskClick", "select-change", "removeSelect"],
+ setup(__props, { emit: __emit }) {
+ const props = __props;
+ const emits = __emit;
+ const contentHeight = vue.ref("500px");
+ const treeData = vue.ref([]);
+ const filterTreeData = vue.ref([]);
+ const clearTimerList = vue.ref([]);
+ const selectedListBaseinfo = vue.ref([]);
+ const showPopup = vue.ref(false);
+ const isSelectedAll = vue.ref(false);
+ const scrollTop = vue.ref(0);
+ const searchStr = vue.ref("");
+ const popup = vue.ref(null);
+ const partCheckedSet = /* @__PURE__ */ new Set();
+ vue.provide("nodeFn", {
+ nodeClick: handleNodeClick,
+ nameClick: handleHideChildren,
+ loadNode: props.load,
+ initData,
+ addNode
+ });
+ const selectList = vue.computed(() => {
+ const newVal = props.modelValue === null ? "" : props.modelValue;
+ return isString(newVal) ? newVal.length ? newVal.split(",") : [] : newVal.map((item) => item.toString());
+ });
+ vue.onMounted(() => {
+ getContentHeight(uni.getSystemInfoSync());
+ });
+ function getContentHeight({ screenHeight }) {
+ contentHeight.value = `${Math.floor(screenHeight * 0.7)}px`;
+ }
+ vue.watch(
+ () => props.dataSource,
+ (newVal) => {
+ if (newVal) {
+ treeData.value = initData(newVal);
+ if (showPopup.value) {
+ resetClearTimerList();
+ renderTree(treeData.value);
+ }
+ }
+ },
+ { immediate: true, deep: true }
+ );
+ vue.watch(
+ () => props.modelValue,
+ (newVal) => {
+ const ids = newVal ? Array.isArray(newVal) ? newVal : newVal.split(",") : [];
+ changeStatus(treeData.value, ids, true);
+ filterTreeData.value.length && changeStatus(filterTreeData.value, ids);
+ },
+ { immediate: true }
+ );
+ function goTop() {
+ scrollTop.val = 10;
+ vue.nextTick(() => {
+ scrollTop.value = 0;
+ });
+ }
+ function handleSearch(isClear = false) {
+ resetClearTimerList();
+ if (isClear) {
+ if (props.clearResetSearch) {
+ renderTree(treeData.value);
+ }
+ } else {
+ renderTree(searchValue(searchStr.value, treeData.value));
+ }
+ goTop();
+ uni.hideKeyboard();
+ }
+ function searchValue(str, arr) {
+ const res = [];
+ arr.forEach((item) => {
+ var _a, _b;
+ if (item.visible) {
+ if (item[props.dataLabel].toString().toLowerCase().indexOf(str.toLowerCase()) > -1) {
+ res.push(item);
+ } else {
+ if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
+ const data = searchValue(str, item[props.dataChildren]);
+ if (data == null ? void 0 : data.length) {
+ if (str && !item.showChildren && ((_b = item[props.dataChildren]) == null ? void 0 : _b.length)) {
+ item.showChildren = true;
+ }
+ res.push({
+ ...item,
+ [props.dataChildren]: data
+ });
+ }
+ }
+ }
+ }
+ });
+ return res;
+ }
+ async function open2() {
+ if (props.disabled)
+ return;
+ showPopup.value = true;
+ popup.value.open();
+ renderTree(treeData.value);
+ }
+ function close() {
+ popup.value.close();
+ }
+ function change(data) {
+ if (!data.show) {
+ resetClearTimerList();
+ searchStr.value = "";
+ showPopup.value = false;
+ }
+ emits("change", data);
+ }
+ function maskClick() {
+ emits("maskClick");
+ }
+ function initData(arr, parentVisible) {
+ var _a;
+ if (!Array.isArray(arr))
+ return [];
+ const res = [];
+ for (let i2 = 0; i2 < arr.length; i2++) {
+ const obj = {
+ [props.dataLabel]: arr[i2][props.dataLabel],
+ [props.dataValue]: arr[i2][props.dataValue]
+ };
+ obj.checked = selectList.value.includes(arr[i2][props.dataValue].toString());
+ obj.disabled = Boolean(arr[i2].disabled);
+ obj.partChecked = Boolean(arr[i2].partChecked === void 0 ? false : arr[i2].partChecked);
+ obj.partChecked && obj.partCheckedSet.add(obj[props.dataValue]);
+ !obj.partChecked && (isSelectedAll.value = false);
+ const parentVisibleState = parentVisible === void 0 ? true : parentVisible;
+ const curVisibleState = arr[i2].visible === void 0 ? true : Boolean(arr[i2].visible);
+ if (parentVisibleState === curVisibleState) {
+ obj.visible = parentVisibleState;
+ } else if (!parentVisibleState || !curVisibleState) {
+ obj.visible = false;
+ } else {
+ obj.visible = true;
+ }
+ obj.showChildren = "showChildren" in arr[i2] && arr[i2].showChildren != void 0 ? arr[i2].showChildren : props.showChildren;
+ if (arr[i2].visible && !arr[i2].disabled && !arr[i2].checked) {
+ isSelectedAll.value = false;
+ }
+ if ((_a = arr[i2][props.dataChildren]) == null ? void 0 : _a.length) {
+ obj[props.dataChildren] = initData(arr[i2][props.dataChildren], obj.visible);
+ }
+ res.push(obj);
+ }
+ return res;
+ }
+ function addNode(node, children) {
+ getReflectNode(node, treeData.value)[props.dataChildren] = children;
+ handleHideChildren(node);
+ }
+ function resetClearTimerList() {
+ const list = [...clearTimerList.value];
+ clearTimerList.value = [];
+ list.forEach((fn) => fn());
+ }
+ function renderTree(arr) {
+ const pagingArr = paging(arr);
+ filterTreeData.value = (pagingArr == null ? void 0 : pagingArr[0]) || [];
+ lazyRenderList(pagingArr, 1);
+ }
+ function lazyRenderList(arr, startIndex) {
+ for (let i2 = startIndex; i2 < arr.length; i2++) {
+ let timer = null;
+ timer = setTimeout(() => {
+ filterTreeData.value.push(...arr[i2]);
+ }, i2 * 500);
+ clearTimerList.push(() => clearTimeout(timer));
+ }
+ }
+ function changeStatus(list, ids, needEmit = false) {
+ var _a;
+ const arr = [...list];
+ let flag = true;
+ needEmit && (selectedListBaseinfo.value = []);
+ while (arr.length) {
+ const item = arr.shift();
+ if (ids.includes(item[props.dataValue].toString())) {
+ item.checked = true;
+ item.partChecked = false;
+ partCheckedSet.delete(item[props.dataValue]);
+ needEmit && selectedListBaseinfo.value.push(item);
+ } else {
+ item.checked = false;
+ if (item.visible && !item.disabled) {
+ flag = false;
+ }
+ if (partCheckedSet.has(item[props.dataValue])) {
+ item.partChecked = true;
+ } else {
+ item.partChecked = false;
+ }
+ }
+ if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
+ arr.push(...item[props.dataChildren]);
+ }
+ }
+ isSelectedAll.value = flag;
+ needEmit && emits("select-change", [...selectedListBaseinfo.value]);
+ }
+ function removeSelectedItem(node) {
+ isSelectedAll.value = false;
+ if (props.linkage) {
+ handleNodeClick(node, false);
+ emits("removeSelect", node);
+ } else {
+ const emitData = selectList.value.filter((item) => item !== node[props.dataValue].toString());
+ emits("removeSelect", node);
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ }
+ }
+ function getReflectNode(node, arr) {
+ var _a;
+ const array = [...arr];
+ while (array.length) {
+ const item = array.shift();
+ if (item[props.dataValue] === node[props.dataValue]) {
+ return item;
+ }
+ if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
+ array.push(...item[props.dataChildren]);
+ }
+ }
+ return {};
+ }
+ function getChildren(node) {
+ var _a;
+ if (!((_a = node[props.dataChildren]) == null ? void 0 : _a.length))
+ return [];
+ const res = node[props.dataChildren].reduce((pre, val) => {
+ if (val.visible) {
+ return [...pre, val];
+ }
+ return pre;
+ }, []);
+ for (let i2 = 0; i2 < node[props.dataChildren].length; i2++) {
+ res.push(...getChildren(node[props.dataChildren][i2]));
+ }
+ return res;
+ }
+ function getParentNode(target, arr) {
+ var _a;
+ let res = [];
+ for (let i2 = 0; i2 < arr.length; i2++) {
+ if (arr[i2][props.dataValue] === target[props.dataValue]) {
+ return true;
+ }
+ if ((_a = arr[i2][props.dataChildren]) == null ? void 0 : _a.length) {
+ const childRes = getParentNode(target, arr[i2][props.dataChildren]);
+ if (typeof childRes === "boolean" && childRes) {
+ res = [arr[i2]];
+ } else if (Array.isArray(childRes) && childRes.length) {
+ res = [...childRes, arr[i2]];
+ }
+ }
+ }
+ return res;
+ }
+ function handleNodeClick(data, status) {
+ const node = getReflectNode(data, treeData.value);
+ node.checked = typeof status === "boolean" ? status : !node.checked;
+ node.partChecked = false;
+ partCheckedSet.delete(node[props.dataValue]);
+ if (!props.mutiple) {
+ let emitData = [];
+ if (node.checked) {
+ emitData = [node[props.dataValue].toString()];
+ }
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ } else {
+ if (!props.linkage) {
+ let emitData = null;
+ if (node.checked) {
+ emitData = Array.from(/* @__PURE__ */ new Set([...selectList.value, node[props.dataValue].toString()]));
+ } else {
+ emitData = selectList.value.filter((id) => id !== node[props.dataValue].toString());
+ }
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ } else {
+ let emitData = [...selectList.value];
+ const parentNodes = getParentNode(node, treeData.value);
+ const childrenVal = getChildren(node).filter((item) => !item.disabled);
+ if (node.checked) {
+ emitData = Array.from(/* @__PURE__ */ new Set([...emitData, node[props.dataValue].toString()]));
+ if (childrenVal.length) {
+ emitData = Array.from(
+ /* @__PURE__ */ new Set([...emitData, ...childrenVal.map((item) => item[props.dataValue].toString())])
+ );
+ childrenVal.forEach((childNode) => {
+ childNode.partChecked = false;
+ partCheckedSet.delete(childNode[props.dataValue]);
+ });
+ }
+ if (parentNodes.length) {
+ let flag = false;
+ while (parentNodes.length) {
+ const item = parentNodes.shift();
+ if (!item.disabled) {
+ if (flag) {
+ item.partChecked = true;
+ partCheckedSet.add(item[props.dataValue]);
+ } else {
+ const allChecked = item[props.dataChildren].filter((node2) => node2.visible && !node2.disabled).every((node2) => node2.checked);
+ if (allChecked) {
+ item.checked = true;
+ item.partChecked = false;
+ partCheckedSet.delete(item[props.dataValue]);
+ emitData = Array.from(/* @__PURE__ */ new Set([...emitData, item[props.dataValue].toString()]));
+ } else {
+ item.partChecked = true;
+ partCheckedSet.add(item[props.dataValue]);
+ flag = true;
+ }
+ }
+ }
+ }
+ }
+ } else {
+ emitData = emitData.filter((id) => id !== node[props.dataValue].toString());
+ if (childrenVal.length) {
+ childrenVal.forEach((childNode) => {
+ emitData = emitData.filter((id) => id !== childNode[props.dataValue].toString());
+ });
+ }
+ if (parentNodes.length) {
+ parentNodes.forEach((parentNode) => {
+ if (emitData.includes(parentNode[props.dataValue].toString())) {
+ parentNode.checked = false;
+ }
+ emitData = emitData.filter((id) => id !== parentNode[props.dataValue].toString());
+ const hasChecked = parentNode[props.dataChildren].filter((node2) => node2.visible && !node2.disabled).some((node2) => node2.checked || node2.partChecked);
+ parentNode.partChecked = hasChecked;
+ if (hasChecked) {
+ partCheckedSet.add(parentNode[props.dataValue]);
+ } else {
+ partCheckedSet.delete(parentNode[props.dataValue]);
+ }
+ });
+ }
+ }
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ }
+ }
+ }
+ function handleHideChildren(node) {
+ const status = !node.showChildren;
+ getReflectNode(node, treeData.value).showChildren = status;
+ getReflectNode(node, filterTreeData.value).showChildren = status;
+ }
+ function handleSelectAll() {
+ isSelectedAll.value = !isSelectedAll.value;
+ if (isSelectedAll.value) {
+ if (!props.mutiple) {
+ uni.showToast({
+ title: "单选模式下不能全选",
+ icon: "none",
+ duration: 1e3
+ });
+ return;
+ }
+ let emitData = [];
+ treeData.value.forEach((item) => {
+ var _a;
+ if (item.visible || item.disabled && item.checked) {
+ emitData = Array.from(/* @__PURE__ */ new Set([...emitData, item[props.dataValue].toString()]));
+ if ((_a = item[props.dataChildren]) == null ? void 0 : _a.length) {
+ emitData = Array.from(
+ /* @__PURE__ */ new Set([
+ ...emitData,
+ ...getChildren(item).filter((item2) => !item2.disabled || item2.disabled && item2.checked).map((item2) => item2[props.dataValue].toString())
+ ])
+ );
+ }
+ }
+ });
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ } else {
+ clearSelectList();
+ }
+ }
+ function clearSelectList() {
+ if (props.disabled)
+ return;
+ partCheckedSet.clear();
+ const emitData = [];
+ selectedListBaseinfo.value.forEach((node) => {
+ if (node.visible && node.checked && node.disabled) {
+ emitData.push(node[props.dataValue]);
+ }
+ });
+ emits("update:modelValue", isString(props.modelValue) ? emitData.join(",") : emitData);
+ }
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ const _component_uni_easyinput = resolveEasycom(vue.resolveDynamicComponent("uni-easyinput"), __easycom_1);
+ const _component_uni_popup = resolveEasycom(vue.resolveDynamicComponent("uni-popup"), __easycom_2);
+ return vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(["select-list", { disabled: __props.disabled }, { active: selectList.value.length }]),
+ onClick: open2
+ },
+ [
+ vue.createElementVNode("view", { class: "left" }, [
+ selectList.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "select-items"
+ }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(selectedListBaseinfo.value, (item) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "select-item",
+ key: item[__props.dataValue]
+ }, [
+ vue.createElementVNode("view", { class: "name" }, [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(item[__props.dataLabel]),
+ 1
+ /* TEXT */
+ )
+ ]),
+ !__props.disabled && !item.disabled && __props.deleteSource ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "close",
+ onClick: vue.withModifiers(($event) => removeSelectedItem(item), ["stop"])
+ }, [
+ vue.createVNode(_component_uni_icons, {
+ type: "closeempty",
+ size: "16",
+ color: "#999"
+ })
+ ], 8, ["onClick"])) : vue.createCommentVNode("v-if", true)
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])) : (vue.openBlock(), vue.createElementBlock("view", {
+ key: 1,
+ class: "no-data"
+ }, [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(__props.placeholder),
+ 1
+ /* TEXT */
+ )
+ ]))
+ ]),
+ vue.createElementVNode("view", null, [
+ !selectList.value.length || !__props.clearable ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ type: "bottom",
+ color: "#333333"
+ })) : vue.createCommentVNode("v-if", true),
+ vue.createElementVNode("view", {
+ onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => {
+ }, ["stop"]))
+ }, [
+ selectList.value.length && __props.clearable ? (vue.openBlock(), vue.createBlock(_component_uni_icons, {
+ key: 0,
+ type: "clear",
+ size: "24",
+ color: "#c0c4cc",
+ onClick: clearSelectList
+ })) : vue.createCommentVNode("v-if", true)
+ ])
+ ])
+ ],
+ 2
+ /* CLASS */
+ ),
+ vue.createVNode(_component_uni_popup, {
+ ref_key: "popup",
+ ref: popup,
+ animation: __props.animation,
+ "is-mask-click": _ctx.isMaskClick,
+ "mask-background-color": _ctx.maskBackgroundColor,
+ "background-color": _ctx.backgroundColor,
+ "safe-area": __props.safeArea,
+ type: "bottom",
+ onChange: change,
+ onMaskClick: maskClick
+ }, {
+ default: vue.withCtx(() => [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "popup-content",
+ style: vue.normalizeStyle({ height: contentHeight.value })
+ },
+ [
+ vue.createElementVNode("view", { class: "title" }, [
+ __props.mutiple && __props.canSelectAll ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "left",
+ onClick: handleSelectAll
+ }, [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(isSelectedAll.value ? "取消全选" : "全选"),
+ 1
+ /* TEXT */
+ )
+ ])) : vue.createCommentVNode("v-if", true),
+ vue.createElementVNode("view", { class: "center" }, [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(__props.placeholder),
+ 1
+ /* TEXT */
+ )
+ ]),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "right",
+ style: vue.normalizeStyle({ color: __props.confirmTextColor }),
+ onClick: close
+ },
+ [
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(__props.confirmText),
+ 1
+ /* TEXT */
+ )
+ ],
+ 4
+ /* STYLE */
+ )
+ ]),
+ __props.search ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "search-box"
+ }, [
+ vue.createVNode(_component_uni_easyinput, {
+ maxlength: -1,
+ prefixIcon: "search",
+ placeholder: "搜索",
+ modelValue: searchStr.value,
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchStr.value = $event),
+ "confirm-type": "search",
+ onConfirm: _cache[2] || (_cache[2] = ($event) => handleSearch(false)),
+ onClear: _cache[3] || (_cache[3] = ($event) => handleSearch(true))
+ }, null, 8, ["modelValue"]),
+ vue.createElementVNode("button", {
+ type: "primary",
+ size: "mini",
+ class: "search-btn",
+ onClick: _cache[4] || (_cache[4] = ($event) => handleSearch(false))
+ }, "搜索")
+ ])) : vue.createCommentVNode("v-if", true),
+ treeData.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 1,
+ class: "select-content"
+ }, [
+ vue.createElementVNode("scroll-view", {
+ class: "scroll-view-box",
+ "scroll-top": scrollTop.value,
+ "scroll-y": "true",
+ onTouchmove: _cache[5] || (_cache[5] = vue.withModifiers(() => {
+ }, ["stop"]))
+ }, [
+ !filterTreeData.value.length ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "no-data center"
+ }, [
+ vue.createElementVNode("text", null, "暂无数据")
+ ])) : vue.createCommentVNode("v-if", true),
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(filterTreeData.value, (item) => {
+ return vue.openBlock(), vue.createBlock(dataSelectItem, {
+ key: item[__props.dataValue],
+ node: item,
+ dataLabel: __props.dataLabel,
+ dataValue: __props.dataValue,
+ dataChildren: __props.dataChildren,
+ choseParent: __props.choseParent,
+ border: __props.border,
+ linkage: __props.linkage,
+ lazyLoadChildren: __props.lazyLoadChildren
+ }, null, 8, ["node", "dataLabel", "dataValue", "dataChildren", "choseParent", "border", "linkage", "lazyLoadChildren"]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ )),
+ vue.createElementVNode("view", { class: "sentry" })
+ ], 40, ["scroll-top"])
+ ])) : (vue.openBlock(), vue.createElementBlock("view", {
+ key: 2,
+ class: "no-data center"
+ }, [
+ vue.createElementVNode("text", null, "暂无数据")
+ ]))
+ ],
+ 4
+ /* STYLE */
+ )
+ ]),
+ _: 1
+ /* STABLE */
+ }, 8, ["animation", "is-mask-click", "mask-background-color", "background-color", "safe-area"])
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+ };
+ }
+ });
+ const treeSelect = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-0328d33e"], ["__file", "D:/projects/cxc-szcx-uniapp/components/treeSelect/treeSelect.vue"]]);
+ const _sfc_main$l = {
+ __name: "application",
+ setup(__props) {
+ const store = useStore();
+ const {
+ proxy
+ } = vue.getCurrentInstance();
+ const realname = vue.ref(store.userinfo.realname);
+ const depart = vue.ref("");
+ const phone = vue.ref(store.userinfo.phone);
+ const type = vue.ref("");
+ const dataSource = vue.ref([]);
+ const beginTime = vue.ref("");
+ const chooseStart = (e2) => {
+ beginTime.value = e2.detail.value;
+ };
+ const endTime = vue.ref("");
+ const chooseEnd = (e2) => {
+ endTime.value = e2.detail.value;
+ };
+ const typeArr = vue.ref([]);
+ const typeIndex = vue.ref(null);
+ const ifShow = vue.ref(true);
+ const zwcj = vue.ref("");
+ const address = vue.ref("");
+ const reason = vue.ref("");
+ const path = vue.ref([]);
+ const baseUrl2 = "http://10.75.166.174:8080/jeecg-boot/sys/common/upload/";
+ const imageStyles = {
+ width: 64,
+ height: 64,
+ border: {
+ color: "#dce7e1",
+ width: 2,
+ style: "dashed",
+ radius: "2px"
+ }
+ };
+ onLoad(() => {
+ loadData();
+ });
+ const select = (e2) => {
+ e2.tempFilePaths;
+ for (let i2 = 0; i2 < e2.tempFilePaths.length; i2++) {
+ let photoPath = "职工请假/" + store.userinfo.orgCode + "/" + store.userinfo.realname;
+ uni.uploadFile({
+ url: baseUrl2,
+ filePath: e2.tempFilePaths[i2],
+ name: "file",
+ formData: {
+ appPath: photoPath
+ },
+ success: (res) => {
+ path.value.push(JSON.parse(res.data).message);
+ }
+ });
+ }
+ };
+ const qjAdd = () => {
+ if (!phone.value.trim())
+ return proxy.$toast("请输入联系方式");
+ if (!type.value)
+ return proxy.$toast("请选择请假类型");
+ if (!beginTime.value)
+ return proxy.$toast("请选择开始时间");
+ if (!endTime.value)
+ return proxy.$toast("请选择结束时间");
+ if (ifShow.value) {
+ if (typeIndex.value == null) {
+ return proxy.$toast("请选择审批领导");
+ }
+ }
+ if (!address.value.trim())
+ return proxy.$toast("请输入请假地点");
+ if (!reason.value.trim())
+ return proxy.$toast("请输入请假事由");
+ qjAddApi({
+ username: store.userinfo.username,
+ phone: phone.value,
+ type: type.value,
+ begintime: beginTime.value,
+ endtime: endTime.value,
+ examineleader: typeArr.value[typeIndex.value].username,
+ address: address.value,
+ reason: reason.value,
+ zwmc: zwcj.value,
+ path: path.value.toString()
+ }).then((res) => {
+ if (res.success) {
+ startMutilProcess(res.message);
+ } else {
+ proxy.$toast(res.message);
+ }
+ });
+ };
+ const startMutilProcess = (id) => {
+ startMutilProcessApi({
+ flowCode: "dev_cxc_qxj",
+ id,
+ formUrl: "modules/qxj/modules/CxcQxjBpmModel",
+ formUrlMobile: "leaveApplication"
+ //对应main.js里全局注册createApp()里的 app.component('leaveApplication',index)
+ }).then((res) => {
+ if (res.success) {
+ proxy.$toast(res.message);
+ setTimeout(() => {
+ uni.navigateBack();
+ }, 2e3);
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/leave/application.vue:235", err);
+ });
+ };
+ const loadData = () => {
+ getCategoryItemsApi("1838487445813645313").then((res) => {
+ if (res.success) {
+ dataSource.value = res.result;
+ }
+ });
+ queryDepByCode(store.userinfo.orgCode).then((res) => {
+ if (res.success) {
+ depart.value = res.result;
+ }
+ });
+ queryZwmcAndExaApi(store.userinfo.username).then((res) => {
+ if (res.success) {
+ typeArr.value = res.result.list;
+ zwcj.value = res.result.zwmc;
+ if (zwcj.value == "单位专家" || zwcj.value == "正职" || zwcj.value == "高级主管") {
+ ifShow.value = false;
+ }
+ } else {
+ proxy.$toast(res.message);
+ }
+ });
+ };
+ const bindType = (e2) => {
+ typeIndex.value = e2.detail.value;
+ };
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ const _component_uni_file_picker = resolveEasycom(vue.resolveDynamicComponent("uni-file-picker"), __easycom_0$2);
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass({ "gray": vue.unref(store).isgray == 1 })
+ },
+ [
+ vue.createElementVNode("view", { class: "form" }, [
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 职工姓名: "),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => realname.value = $event),
+ disabled: ""
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, realname.value]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 工作单位: "),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => depart.value = $event),
+ disabled: ""
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, depart.value]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 联系方式: "),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => phone.value = $event)
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, phone.value]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 请假类型: "),
+ vue.createVNode(treeSelect, {
+ dataSource: dataSource.value,
+ modelValue: type.value,
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => type.value = $event),
+ dataValue: "name"
+ }, null, 8, ["dataSource", "modelValue"])
+ ]),
+ vue.createElementVNode("picker", {
+ mode: "date",
+ fields: "day",
+ onChange: chooseStart,
+ value: beginTime.value
+ }, [
+ vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 开始时间: "),
+ vue.createElementVNode("view", { class: "f-row aic" }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass([{ "choose": !beginTime.value }, { "choosed": beginTime.value }])
+ },
+ vue.toDisplayString(beginTime.value ? beginTime.value : "请选择"),
+ 3
+ /* TEXT, CLASS */
+ ),
+ vue.createVNode(_component_uni_icons, {
+ type: "bottom",
+ color: "#333333"
+ })
+ ])
+ ])
+ ], 40, ["value"]),
+ vue.createElementVNode("picker", {
+ mode: "date",
+ fields: "day",
+ onChange: chooseEnd,
+ value: endTime.value
+ }, [
+ vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 截止时间: "),
+ vue.createElementVNode("view", { class: "f-row aic" }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass([{ "choose": !endTime.value }, { "choosed": endTime.value }])
+ },
+ vue.toDisplayString(endTime.value ? endTime.value : "请选择"),
+ 3
+ /* TEXT, CLASS */
+ ),
+ vue.createVNode(_component_uni_icons, {
+ type: "bottom",
+ color: "#333333"
+ })
+ ])
+ ])
+ ], 40, ["value"]),
+ ifShow.value ? (vue.openBlock(), vue.createElementBlock("picker", {
+ key: 0,
+ onChange: bindType,
+ value: typeIndex.value,
+ range: typeArr.value,
+ "range-key": "realname"
+ }, [
+ vue.createElementVNode("view", { class: "f-row aic jcb box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 审批领导: "),
+ vue.createElementVNode("view", { class: "f-row aic" }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass([{ "choose": typeIndex.value == null }, { "choosed": typeIndex.value != null }])
+ },
+ vue.toDisplayString(typeIndex.value != null ? typeArr.value[typeIndex.value].realname : "请选择"),
+ 3
+ /* TEXT, CLASS */
+ ),
+ vue.createVNode(_component_uni_icons, {
+ type: "bottom",
+ color: "#333333"
+ })
+ ])
+ ])
+ ], 40, ["value", "range"])) : vue.createCommentVNode("v-if", true),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 请假地点: "),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => address.value = $event),
+ placeholder: "请输入",
+ "nplaceholder-style": "font-size: 28rpx;color: #999999;"
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, address.value]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 请假事由: "),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => reason.value = $event),
+ placeholder: "请输入",
+ "placeholder-style": "font-size: 28rpx;color: #999999;"
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, reason.value]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "f-row aic jcb input_box" }, [
+ vue.createElementVNode("view", { class: "title" }, " 上传附件: "),
+ vue.createVNode(_component_uni_file_picker, {
+ onSelect: select,
+ "image-styles": imageStyles
+ })
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "btn f-col aic" }, [
+ vue.createElementVNode("view", { onClick: qjAdd }, " 提交 ")
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesLeaveApplication = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-f12ae642"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/leave/application.vue"]]);
+ const _sfc_main$k = {
+ __name: "index",
+ setup(__props) {
+ const store = useStore();
+ const back = () => {
+ uni.navigateBack();
+ };
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createVNode(customNav, null, {
+ default: vue.withCtx(() => [
+ vue.createElementVNode("view", { class: "nav_box f-row aic" }, [
+ vue.createElementVNode("view", {
+ class: "back",
+ onClick: back
+ }, [
+ vue.createVNode(_component_uni_icons, {
+ type: "left",
+ size: "20",
+ color: "#fff"
+ })
+ ]),
+ vue.createElementVNode("view", { class: "avatar" }, [
+ vue.createElementVNode("image", {
+ src: vue.unref(store).userinfo.avatar,
+ mode: ""
+ }, null, 8, ["src"])
+ ]),
+ vue.createElementVNode("view", { class: "f-col" }, [
+ vue.createElementVNode(
+ "view",
+ { class: "name" },
+ vue.toDisplayString(vue.unref(store).userinfo.realname),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode(
+ "view",
+ { class: "position" },
+ vue.toDisplayString(vue.unref(store).role),
+ 1
+ /* TEXT */
+ )
+ ])
+ ])
+ ]),
+ _: 1
+ /* STABLE */
+ }),
+ vue.createElementVNode("view", { class: "time_box f-row aic jcb" }, [
+ vue.createElementVNode("view", { class: "box" }, [
+ vue.createElementVNode("view", { class: "time f-row aic" }, [
+ vue.createElementVNode("view", { class: "" }, " 上班 9:30 "),
+ vue.createElementVNode("image", {
+ src: "/static/checkin/chenggong.png",
+ mode: ""
+ })
+ ]),
+ vue.createElementVNode("view", { class: "text" }, " 重庆市渝北区上弯路 ")
+ ]),
+ vue.createElementVNode("view", { class: "box" }, [
+ vue.createElementVNode("view", { class: "time f-row aic" }, [
+ vue.createElementVNode("view", { class: "" }, " 下班 16:30 "),
+ vue.createElementVNode("image", {
+ src: "/static/checkin/shibai.png",
+ mode: ""
+ })
+ ]),
+ vue.createElementVNode("view", { class: "text" }, " 打卡已超时 ")
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "checkin" }, [
+ vue.createElementVNode("view", { class: "f-col aic" }, [
+ vue.createElementVNode("view", { class: "status f-col aic" }, [
+ vue.createCommentVNode(' \r\n \r\n '),
+ vue.createElementVNode("image", {
+ src: "/static/checkin/position4.png",
+ mode: ""
+ }),
+ vue.createElementVNode("text", null, "打卡失败")
+ ]),
+ vue.createElementVNode("view", {
+ class: vue.normalizeClass(["circle", "f-col", "aic", "out", "check", "success", "fail"])
+ }, [
+ vue.createElementVNode("view", { class: "title" }, " 上班打卡 "),
+ vue.createElementVNode("view", { class: "time" }, " 9:00 "),
+ vue.createElementVNode("view", { class: "ontime" }, " 已超时 ")
+ ])
+ ])
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesCheckinIndex = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-1410bd6b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/checkin/index.vue"]]);
+ const _sfc_main$j = {
+ __name: "useredit",
+ setup(__props) {
+ const baseUrl2 = "http://10.75.166.174:8080/jeecg-boot/sys/common/upload";
+ const store = useStore();
+ const chooseAvatar = () => {
+ uni.chooseImage({
+ count: 1,
+ success: (chooseImageRes) => {
+ const tempFilePaths = chooseImageRes.tempFilePaths;
+ const photoPath = "用户头像/" + store.userinfo.realname;
+ uni.uploadFile({
+ url: baseUrl2,
+ //仅为示例,非真实的接口地址
+ filePath: tempFilePaths[0],
+ name: "file",
+ formData: {
+ appPath: photoPath
+ },
+ success: (res) => {
+ uni.showLoading({
+ title: "上传中..."
+ });
+ form.avatar = JSON.parse(res.data).message;
+ userEditApi({
+ avatar: form.avatar,
+ id: store.userinfo.id
+ }).then((res2) => {
+ if (res2) {
+ uni.showToast({
+ title: res2,
+ icon: "success",
+ duration: 2e3
+ });
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/useredit/useredit.vue:97", err);
+ });
+ },
+ fail(err) {
+ formatAppLog("log", "at pages/useredit/useredit.vue:101", "图片上传出错", err);
+ }
+ });
+ }
+ });
+ };
+ const form = vue.reactive({
+ avatar: "",
+ realname: "",
+ phone: ""
+ });
+ const loginout = () => {
+ uni.showModal({
+ title: "退出登录",
+ content: "您确认要退出登录吗?",
+ success(res) {
+ if (res.confirm) {
+ uni.removeStorageSync("token");
+ uni.removeStorageSync("user");
+ uni.removeStorageSync("role");
+ uni.removeStorageSync("logintime");
+ uni.reLaunch({
+ url: "/pages/login/login"
+ });
+ }
+ }
+ });
+ };
+ onLoad(() => {
+ uni.setNavigationBarColor({
+ frontColor: "#ffffff",
+ backgroundColor: "#bebebe"
+ });
+ });
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ return vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createElementVNode("view", { class: "box" }, [
+ vue.createElementVNode("view", null, "头像"),
+ vue.createElementVNode("view", { style: { "display": "flex", "align-items": "center" } }, [
+ vue.createElementVNode("button", {
+ class: "head-btn",
+ onClick: chooseAvatar
+ }, [
+ !form.avatar ? (vue.openBlock(), vue.createElementBlock("image", {
+ key: 0,
+ class: "head-img",
+ src: vue.unref(imgUrl)(vue.unref(store).userinfo.avatar),
+ mode: ""
+ }, null, 8, ["src"])) : (vue.openBlock(), vue.createElementBlock("image", {
+ key: 1,
+ class: "head-img",
+ src: vue.unref(imgUrl)(form.avatar)
+ }, null, 8, ["src"]))
+ ]),
+ vue.createVNode(_component_uni_icons, {
+ type: "right",
+ size: "24"
+ })
+ ])
+ ]),
+ vue.createElementVNode("view", {
+ class: "box",
+ style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
+ }, [
+ vue.createElementVNode("view", null, "姓名"),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ disabled: "",
+ style: { "text-align": "right" },
+ type: "nickname",
+ "placeholder-style": "font-size: 32rpx;color: #999999;",
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(store).userinfo.realname = $event),
+ placeholder: "请输入姓名"
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, vue.unref(store).userinfo.realname]
+ ])
+ ]),
+ vue.createElementVNode("view", {
+ class: "box",
+ style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
+ }, [
+ vue.createElementVNode("view", null, "手机号"),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ disabled: "",
+ style: { "text-align": "right" },
+ type: "nickname",
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(store).userinfo.phone = $event),
+ placeholder: "请输入手机号",
+ "placeholder-style": "font-size: 32rpx;color: #999999;"
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, vue.unref(store).userinfo.phone]
+ ])
+ ]),
+ vue.createElementVNode("view", {
+ class: "box",
+ style: { "padding-top": "30rpx", "padding-bottom": "30rpx" }
+ }, [
+ vue.createElementVNode("view", null, "劳动合同号"),
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ style: { "text-align": "right" },
+ type: "nickname",
+ disabled: "",
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(store).userinfo.workNo = $event),
+ placeholder: "请输入劳动合同号",
+ "placeholder-style": "font-size: 32rpx;color: #999999;"
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vModelText, vue.unref(store).userinfo.workNo]
+ ])
+ ])
+ ],
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode("view", { class: "line" }),
+ vue.createElementVNode("view", {
+ class: "btn",
+ onClick: loginout
+ }, " 退出登录 ")
+ ],
+ 64
+ /* STABLE_FRAGMENT */
+ );
+ };
+ }
+ };
+ const PagesUsereditUseredit = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-503dd57f"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/useredit.vue"]]);
+ const _sfc_main$i = {
+ __name: "address",
+ setup(__props) {
+ const store = useStore();
+ const jump = (url) => {
+ beforeJump(url, () => {
+ uni.navigateTo({
+ url
+ });
+ });
+ };
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createElementVNode("view", { class: "list" }, [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(2, (item, i2) => {
+ return vue.createElementVNode("view", {
+ class: "item",
+ key: i2
+ }, [
+ vue.createElementVNode("view", { class: "province f-row aic" }, [
+ vue.createElementVNode("view", { class: "" }, " 浙江省,杭州市 "),
+ vue.createElementVNode("image", {
+ src: "/static/my/default.png",
+ mode: ""
+ })
+ ]),
+ vue.createElementVNode("view", { class: "address f-row jcb" }, [
+ vue.createElementVNode("view", { class: "" }, " 重庆 重庆市 渝北区 龙溪街道花卉园东路黄金 宝高级住宅小区 "),
+ vue.createElementVNode("image", {
+ src: "/static/my/edit.png",
+ mode: ""
+ })
+ ]),
+ vue.createElementVNode("view", { class: "set f-row aic jcb" }, [
+ vue.createElementVNode("view", { class: "f-row aic" }, [
+ vue.createCommentVNode(' '),
+ vue.createElementVNode("image", {
+ src: "/static/login/nocheck.png",
+ mode: ""
+ }),
+ vue.createTextVNode(" 设为默认地址 ")
+ ]),
+ vue.createElementVNode("view", { class: "" }, " 删除 ")
+ ])
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ]),
+ vue.createElementVNode("view", { class: "btn f-col aic" }, [
+ vue.createElementVNode("view", {
+ class: "",
+ onClick: _cache[0] || (_cache[0] = ($event) => jump("/pages/useredit/add_address"))
+ }, " +添加收货地址 ")
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesUsereditAddress = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-4bd9b73b"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/address.vue"]]);
+ const _sfc_main$h = {
+ __name: "add_address",
+ setup(__props) {
+ const store = useStore();
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createElementVNode("view", { class: "area f-row jcb" }, [
+ vue.createElementVNode("view", { class: "title topic" }, " 所在地区 "),
+ vue.createElementVNode("input", {
+ type: "text",
+ placeholder: "省、市、区、街道"
+ })
+ ]),
+ vue.createElementVNode("view", { class: "area f-row jcb" }, [
+ vue.createElementVNode("view", { class: "title topic" }, " 详细地址 "),
+ vue.createElementVNode("textarea", { placeholder: "小区楼栋/乡村名称" })
+ ]),
+ vue.createElementVNode("view", { class: "area f-row jcb" }, [
+ vue.createElementVNode("view", { class: "title" }, " 设为默认地址 "),
+ vue.createElementVNode("image", {
+ src: "/static/login/checked.png",
+ mode: ""
+ }),
+ vue.createCommentVNode(' ')
+ ]),
+ vue.createElementVNode("view", { class: "btn f-col aic" }, [
+ vue.createElementVNode("view", { class: "" }, " 保存 ")
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesUsereditAdd_address = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-f1271877"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/add_address.vue"]]);
+ const _sfc_main$g = {
+ __name: "addressbook",
+ setup(__props) {
+ const store = useStore();
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass({ "gray": vue.unref(store).isgray == 1 })
+ },
+ [
+ vue.createElementVNode("view", { class: "list" }, [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(4, (item, i2) => {
+ return vue.createElementVNode("view", {
+ class: "item f-row aic jcb",
+ key: i2
+ }, [
+ vue.createElementVNode("view", { class: "user f-row aic" }, [
+ vue.createElementVNode("image", {
+ src: "",
+ mode: ""
+ }),
+ vue.createElementVNode("view", { class: "name_job" }, [
+ vue.createElementVNode("view", { class: "name" }, " 我是晴天 "),
+ vue.createElementVNode("view", { class: "job" }, " 销售部-销售总监 ")
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "btn" }, " 电话联系 ")
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesUsereditAddressbook = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-c0e791d9"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/useredit/addressbook.vue"]]);
+ const _sfc_main$f = {
+ __name: "extendCom",
+ props: {
+ title: {
+ type: String,
+ default: ""
+ },
+ img: {
+ type: String,
+ default: ""
+ },
+ list: {
+ type: Array,
+ default: function() {
+ return [];
+ }
+ },
+ // selfArrquery: {
+ // type: Array,
+ // default: function() {
+ // return []
+ // }
+ // },
+ total: {
+ type: Number,
+ default: 0
+ }
+ },
+ setup(__props) {
+ vue.useCssVars((_ctx) => ({
+ "e40cd242-moreHeight": moreHeight.value
+ }));
+ const props = __props;
+ const open2 = vue.ref(false);
+ const moreHeight = vue.ref(null);
+ const CurrentInstance = vue.getCurrentInstance();
+ vue.watch(() => props.list, () => {
+ vue.nextTick(() => {
+ uni.createSelectorQuery().in(CurrentInstance.proxy).select(".item_box").boundingClientRect((data) => {
+ moreHeight.value = (data == null ? void 0 : data.height) + "px";
+ formatAppLog("log", "at bpm/extendCom.vue:82", "moreHeight", moreHeight.value);
+ }).exec();
+ });
+ }, {
+ immediate: true
+ });
+ const tolist = (title) => {
+ let id = null;
+ beforeJump("/pages/task/index", () => {
+ if (props.title == "待办事项") {
+ id = 0;
+ }
+ if (props.title == "已办事项") {
+ id = 2;
+ }
+ if (props.title == "本人发起") {
+ return uni.navigateTo({
+ url: `/pages/task/self?title=${title}`
+ });
+ }
+ uni.navigateTo({
+ url: `/pages/task/index?id=${id}&title=${title}`
+ });
+ });
+ };
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [
+ vue.createElementVNode("view", { class: "todo f-col aic" }, [
+ vue.createElementVNode("view", { class: "f-col aic" }, [
+ vue.createElementVNode("view", {
+ class: "title_box f-row aic jcb",
+ onClick: _cache[0] || (_cache[0] = ($event) => tolist(""))
+ }, [
+ vue.createElementVNode("view", { class: "title f-row aic" }, [
+ vue.createElementVNode("image", {
+ src: `/static/my/${__props.img}.png`,
+ mode: ""
+ }, null, 8, ["src"]),
+ vue.createTextVNode(
+ " " + vue.toDisplayString(__props.title),
+ 1
+ /* TEXT */
+ )
+ ]),
+ vue.createElementVNode(
+ "view",
+ { class: "num" },
+ vue.toDisplayString(__props.total),
+ 1
+ /* TEXT */
+ )
+ ]),
+ __props.list.length ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "list"
+ }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(["box", { "close": __props.list.length > 5 && open2.value }])
+ },
+ [
+ vue.createElementVNode("view", { class: "item_box" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(__props.list, (item, i2) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ onClick: ($event) => tolist(item.title),
+ class: "item f-row aic",
+ key: i2
+ }, [
+ vue.createElementVNode(
+ "view",
+ { class: "" },
+ vue.toDisplayString(item.title),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode(
+ "text",
+ null,
+ vue.toDisplayString(item.num),
+ 1
+ /* TEXT */
+ )
+ ], 8, ["onClick"]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])
+ ],
+ 2
+ /* CLASS */
+ ),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "more",
+ onClick: _cache[1] || (_cache[1] = ($event) => open2.value = !open2.value)
+ },
+ vue.toDisplayString(!open2.value ? "显示更多" : "收起"),
+ 513
+ /* TEXT, NEED_PATCH */
+ ), [
+ [vue.vShow, __props.list.length > 5]
+ ])
+ ])) : vue.createCommentVNode("v-if", true)
+ ])
+ ])
+ ]);
+ };
+ }
+ };
+ const extendCom = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-e40cd242"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/extendCom.vue"]]);
+ const _sfc_main$e = {
+ __name: "todotask",
+ setup(__props) {
+ const store = useStore();
+ onLoad(() => {
+ taskList();
+ taskHistoryList();
+ myApplyProcessList();
+ });
+ const todoArr = vue.ref([]);
+ const todoTotal = vue.ref(0);
+ const taskList = () => {
+ taskListApi({
+ pageNo: 1,
+ pageSize: 4,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res) => {
+ var _a, _b, _c, _d;
+ if (res == null ? void 0 : res.success) {
+ if (((_a = res == null ? void 0 : res.result) == null ? void 0 : _a.total) > 4) {
+ taskListApi({
+ pageNo: 1,
+ pageSize: (_b = res == null ? void 0 : res.result) == null ? void 0 : _b.total,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res1) => {
+ var _a2, _b2;
+ if (res1 == null ? void 0 : res1.success) {
+ todoArr.value = [...todoArr.value, ...handleData((_a2 = res1 == null ? void 0 : res1.result) == null ? void 0 : _a2.records)];
+ todoTotal.value = (_b2 = res1 == null ? void 0 : res1.result) == null ? void 0 : _b2.total;
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:53", "err", err);
+ });
+ } else {
+ todoArr.value = [...todoArr.value, ...handleData((_c = res == null ? void 0 : res.result) == null ? void 0 : _c.records)];
+ todoTotal.value = (_d = res == null ? void 0 : res.result) == null ? void 0 : _d.total;
+ }
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:62", err);
+ });
+ };
+ const doneArr = vue.ref([]);
+ const doneTotal = vue.ref(0);
+ const taskHistoryList = () => {
+ taskHistoryListApi({
+ pageNo: 1,
+ pageSize: 4,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res) => {
+ if (res.success) {
+ if (res.result.total > 4) {
+ taskHistoryListApi({
+ pageNo: 1,
+ pageSize: res.result.total,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res1) => {
+ if (res1.success) {
+ doneArr.value = [...doneArr.value, ...handleData(res1.result.records)];
+ doneTotal.value = res1.result.total;
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:87", err);
+ });
+ } else {
+ doneArr.value = [...doneArr.value, ...handleData(res.result.records)];
+ doneTotal.value = res.result.total;
+ }
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:96", err);
+ });
+ };
+ const selfArr = vue.ref([]);
+ const selfTotal = vue.ref(0);
+ vue.ref([]);
+ const myApplyProcessList = () => {
+ myApplyProcessListApi({
+ pageNo: 1,
+ pageSize: 4,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res) => {
+ if (res.success) {
+ if (res.result.total > 4) {
+ myApplyProcessListApi({
+ pageNo: 1,
+ pageSize: res.result.total,
+ _t: (/* @__PURE__ */ new Date()).getTime()
+ }).then((res1) => {
+ if (res1.success) {
+ selfArr.value = [...selfArr.value, ...handleData(res1.result.records)];
+ selfTotal.value = res1.result.total;
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:122", err);
+ });
+ } else {
+ selfArr.value = [...selfArr.value, ...handleData(res.result.records)];
+ selfTotal.value = res.result.total;
+ }
+ }
+ }).catch((err) => {
+ formatAppLog("log", "at pages/task/todotask.vue:132", err);
+ });
+ };
+ const handleData = (titlearr) => {
+ let titleArr = titlearr.length ? titlearr.map((item) => item.processDefinitionName || item.prcocessDefinitionName) : [];
+ let res = titleArr.reduce((obj, title) => {
+ if (title in obj) {
+ obj[title]++;
+ } else {
+ obj[title] = 1;
+ }
+ return obj;
+ }, {});
+ return Object.entries(res).map(([k, v2]) => ({
+ title: k,
+ num: v2
+ }));
+ };
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createVNode(extendCom, {
+ title: "待办事项",
+ img: "todo",
+ list: todoArr.value,
+ total: todoTotal.value
+ }, null, 8, ["list", "total"]),
+ vue.createVNode(extendCom, {
+ title: "已办事项",
+ img: "done",
+ list: doneArr.value,
+ total: doneTotal.value
+ }, null, 8, ["list", "total"]),
+ vue.createVNode(extendCom, {
+ title: "本人发起",
+ img: "self",
+ list: selfArr.value,
+ total: selfTotal.value
+ }, null, 8, ["list", "total"])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesTaskTodotask = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "D:/projects/cxc-szcx-uniapp/pages/task/todotask.vue"]]);
+ const _sfc_main$d = {
+ __name: "safeCom",
+ setup(__props) {
+ const jump = (url) => {
+ beforeJump(url, () => {
+ uni.navigateTo({
+ url
+ });
+ });
+ };
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock("view", { class: "list f-row aic jcb" }, [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(20, (item, i2) => {
+ return vue.createElementVNode("view", {
+ class: "item",
+ key: i2,
+ onClick: _cache[0] || (_cache[0] = ($event) => jump("/pages/safe/detail"))
+ }, [
+ vue.createElementVNode("view", { class: "" }, [
+ vue.createElementVNode("image", {
+ src: "",
+ mode: ""
+ })
+ ]),
+ vue.createElementVNode("view", { class: "text" }, " 五月天“突然好想你”线上演唱会精彩回放 ")
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ]);
+ };
+ }
+ };
+ const safeCom = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-982fcf41"], ["__file", "D:/projects/cxc-szcx-uniapp/bpm/safeCom.vue"]]);
+ const _sfc_main$c = {
+ __name: "manage",
+ setup(__props) {
+ const store = useStore();
+ const showicon = vue.ref(true);
+ const searchKey = vue.ref("");
+ return (_ctx, _cache) => {
+ const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_1$1);
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["content", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createVNode(customNav, null, {
+ default: vue.withCtx(() => [
+ vue.createElementVNode("view", { class: "nav_box f-row aic jcb" }, [
+ vue.createElementVNode("view", {
+ class: "back f-row aic",
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.back && _ctx.back(...args))
+ }, [
+ vue.createVNode(_component_uni_icons, {
+ type: "left",
+ size: "20",
+ color: "#fff"
+ })
+ ]),
+ vue.createElementVNode("view", { class: "search f-row aic" }, [
+ vue.withDirectives(vue.createElementVNode(
+ "input",
+ {
+ type: "text",
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => searchKey.value = $event),
+ onConfirm: _cache[2] || (_cache[2] = (...args) => _ctx.search && _ctx.search(...args)),
+ onBlur: _cache[3] || (_cache[3] = ($event) => showicon.value = !searchKey.value),
+ onFocus: _cache[4] || (_cache[4] = ($event) => showicon.value = false)
+ },
+ null,
+ 544
+ /* NEED_HYDRATION, NEED_PATCH */
+ ), [
+ [vue.vModelText, searchKey.value]
+ ]),
+ showicon.value ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "f-row aic"
+ }, [
+ vue.createElementVNode("image", {
+ src: "/static/search.png",
+ mode: ""
+ }),
+ vue.createElementVNode("text", null, "搜索")
+ ])) : vue.createCommentVNode("v-if", true)
+ ])
+ ])
+ ]),
+ _: 1
+ /* STABLE */
+ }),
+ vue.createElementVNode("view", { class: "" }, [
+ vue.createVNode(safeCom)
+ ])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesSafeManage = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-dc2f4615"], ["__file", "D:/projects/cxc-szcx-uniapp/pages/safe/manage.vue"]]);
+ const _sfc_main$b = {
+ __name: "index",
+ setup(__props) {
+ const store = useStore();
+ const shishiArr = vue.ref([]);
+ const productArr = vue.ref([]);
+ onLoad((options) => {
+ shishiArr.value = JSON.parse(options.shishi);
+ productArr.value = JSON.parse(options.product);
+ });
+ return (_ctx, _cache) => {
+ return vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ class: vue.normalizeClass(["f-col", "aic", { "gray": vue.unref(store).isgray == 1 }])
+ },
+ [
+ vue.createVNode(dataCom, {
+ title: "实时输差",
+ list: shishiArr.value
+ }, null, 8, ["list"]),
+ vue.createVNode(dataCom, {
+ title: "偏远计量点",
+ list: shishiArr.value
+ }, null, 8, ["list"]),
+ vue.createVNode(dataCom, {
+ title: "生产实时数据",
+ list: productArr.value
+ }, null, 8, ["list"])
+ ],
+ 2
+ /* CLASS */
+ );
+ };
+ }
+ };
+ const PagesProductIndex = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "D:/projects/cxc-szcx-uniapp/pages/product/index.vue"]]);
+ const en = {
+ "uni-load-more.contentdown": "Pull up to show more",
+ "uni-load-more.contentrefresh": "loading...",
+ "uni-load-more.contentnomore": "No more data"
+ };
+ const zhHans = {
+ "uni-load-more.contentdown": "上拉显示更多",
+ "uni-load-more.contentrefresh": "正在加载...",
+ "uni-load-more.contentnomore": "没有更多数据了"
+ };
+ const zhHant = {
+ "uni-load-more.contentdown": "上拉顯示更多",
+ "uni-load-more.contentrefresh": "正在加載...",
+ "uni-load-more.contentnomore": "沒有更多數據了"
+ };
+ const messages = {
+ en,
+ "zh-Hans": zhHans,
+ "zh-Hant": zhHant
+ };
+ let platform;
+ setTimeout(() => {
+ platform = uni.getSystemInfoSync().platform;
+ }, 16);
+ const {
+ t
+ } = initVueI18n(messages);
+ const _sfc_main$a = {
+ name: "UniLoadMore",
+ emits: ["clickLoadMore"],
+ props: {
+ status: {
+ // 上拉的状态:more-loading前;loading-loading中;noMore-没有更多了
+ type: String,
+ default: "more"
+ },
+ showIcon: {
+ type: Boolean,
+ default: true
+ },
+ iconType: {
+ type: String,
+ default: "auto"
+ },
+ iconSize: {
+ type: Number,
+ default: 24
+ },
+ color: {
+ type: String,
+ default: "#777777"
+ },
+ contentText: {
+ type: Object,
+ default() {
+ return {
+ contentdown: "",
+ contentrefresh: "",
+ contentnomore: ""
+ };
+ }
+ },
+ showText: {
+ type: Boolean,
+ default: true
+ }
+ },
+ data() {
+ return {
+ webviewHide: false,
+ platform,
+ imgBase64: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzlBMzU3OTlEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzlBMzU3OUFEOUM0MTFFOUI0NTZDNERBQURBQzI4RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDOUEzNTc5N0Q5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDOUEzNTc5OEQ5QzQxMUU5QjQ1NkM0REFBREFDMjhGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt+ALSwAAA6CSURBVHja1FsLkFZV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"
+ };
+ },
+ computed: {
+ iconSnowWidth() {
+ return (Math.floor(this.iconSize / 24) || 1) * 2;
+ },
+ contentdownText() {
+ return this.contentText.contentdown || t("uni-load-more.contentdown");
+ },
+ contentrefreshText() {
+ return this.contentText.contentrefresh || t("uni-load-more.contentrefresh");
+ },
+ contentnomoreText() {
+ return this.contentText.contentnomore || t("uni-load-more.contentnomore");
+ }
+ },
+ mounted() {
+ var pages2 = getCurrentPages();
+ var page = pages2[pages2.length - 1];
+ var currentWebview = page.$getAppWebview();
+ currentWebview.addEventListener("hide", () => {
+ this.webviewHide = true;
+ });
+ currentWebview.addEventListener("show", () => {
+ this.webviewHide = false;
+ });
+ },
+ methods: {
+ onClick() {
+ this.$emit("clickLoadMore", {
+ detail: {
+ status: this.status
+ }
+ });
+ }
+ }
+ };
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "uni-load-more",
+ onClick: _cache[0] || (_cache[0] = (...args) => $options.onClick && $options.onClick(...args))
+ }, [
+ !$data.webviewHide && ($props.iconType === "circle" || $props.iconType === "auto" && $data.platform === "android") && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 0,
+ style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
+ class: "uni-load-more__img uni-load-more__img--android-MP"
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "uni-load-more__img-icon",
+ style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
+ },
+ null,
+ 4
+ /* STYLE */
+ ),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "uni-load-more__img-icon",
+ style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
+ },
+ null,
+ 4
+ /* STYLE */
+ ),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "uni-load-more__img-icon",
+ style: vue.normalizeStyle({ borderTopColor: $props.color, borderTopWidth: $props.iconSize / 12 })
+ },
+ null,
+ 4
+ /* STYLE */
+ )
+ ],
+ 4
+ /* STYLE */
+ )) : !$data.webviewHide && $props.status === "loading" && $props.showIcon ? (vue.openBlock(), vue.createElementBlock(
+ "view",
+ {
+ key: 1,
+ style: vue.normalizeStyle({ width: $props.iconSize + "px", height: $props.iconSize + "px" }),
+ class: "uni-load-more__img uni-load-more__img--ios-H5"
+ },
+ [
+ vue.createElementVNode("image", {
+ src: $data.imgBase64,
+ mode: "widthFix"
+ }, null, 8, ["src"])
+ ],
+ 4
+ /* STYLE */
+ )) : vue.createCommentVNode("v-if", true),
+ $props.showText ? (vue.openBlock(), vue.createElementBlock(
+ "text",
+ {
+ key: 2,
+ class: "uni-load-more__text",
+ style: vue.normalizeStyle({ color: $props.color })
+ },
+ vue.toDisplayString($props.status === "more" ? $options.contentdownText : $props.status === "loading" ? $options.contentrefreshText : $options.contentnomoreText),
+ 5
+ /* TEXT, STYLE */
+ )) : vue.createCommentVNode("v-if", true)
+ ]);
+ }
+ const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$2], ["__scopeId", "data-v-9245e42c"], ["__file", "D:/projects/cxc-szcx-uniapp/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue"]]);
const dataPicker = {
props: {
localdata: {
@@ -17708,6 +19063,17 @@ ${i3}
},
setup(__props) {
const props = __props;
+ const imageValue = vue.ref([]);
+ const imageStyles = {
+ width: 64,
+ height: 64,
+ border: {
+ color: "#dce7e1",
+ width: 2,
+ style: "dashed",
+ radius: "2px"
+ }
+ };
const info = vue.ref({});
const qjQueryById = () => {
qjQueryByIdApi({
@@ -17715,6 +19081,16 @@ ${i3}
}).then((res) => {
if (res.success) {
info.value = res.result.records[0];
+ imageValue.value = info.value.path.split(",").map((path) => {
+ const name2 = path.split("/").pop();
+ const extname = name2.split(".").pop();
+ return {
+ name: name2,
+ extname,
+ url: imgUrl(path)
+ };
+ });
+ formatAppLog("log", "at bpm/leaveApplication/index.vue:154", "---", imageValue.value);
}
});
};
@@ -17743,6 +19119,7 @@ ${i3}
extActFlowData();
});
return (_ctx, _cache) => {
+ const _component_uni_file_picker = resolveEasycom(vue.resolveDynamicComponent("uni-file-picker"), __easycom_0$2);
return vue.openBlock(), vue.createElementBlock(
vue.Fragment,
null,
@@ -17815,7 +19192,7 @@ ${i3}
vue.createElementVNode(
"text",
null,
- vue.toDisplayString(info.value.qjdays),
+ vue.toDisplayString(info.value.days),
1
/* TEXT */
)
@@ -17849,6 +19226,14 @@ ${i3}
1
/* TEXT */
)
+ ]),
+ vue.createElementVNode("view", { class: "info f-row aic jcb" }, [
+ vue.createElementVNode("view", null, " 附件: "),
+ vue.createVNode(_component_uni_file_picker, {
+ modelValue: imageValue.value,
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => imageValue.value = $event),
+ "image-styles": imageStyles
+ }, null, 8, ["modelValue"])
])
])
]),
diff --git a/unpackage/dist/dev/app-plus/app.css b/unpackage/dist/dev/app-plus/app.css
index 92762f7..ffdb580 100644
--- a/unpackage/dist/dev/app-plus/app.css
+++ b/unpackage/dist/dev/app-plus/app.css
@@ -49,6 +49,282 @@
.aic {
align-items: center;
}
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.uni-file-picker__container[data-v-bdfc07e0] {
+ display: flex;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+ margin: -5px;
+}
+.file-picker__box[data-v-bdfc07e0] {
+ position: relative;
+ width: 33.3%;
+ height: 0;
+ padding-top: 33.33%;
+ box-sizing: border-box;
+}
+.file-picker__box-content[data-v-bdfc07e0] {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin: 5px;
+ border: 1px #eee solid;
+ border-radius: 5px;
+ overflow: hidden;
+}
+.file-picker__progress[data-v-bdfc07e0] {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ /* border: 1px red solid; */
+ z-index: 2;
+}
+.file-picker__progress-item[data-v-bdfc07e0] {
+ width: 100%;
+}
+.file-picker__mask[data-v-bdfc07e0] {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ font-size: 12px;
+ background-color: rgba(0, 0, 0, 0.4);
+}
+.file-image[data-v-bdfc07e0] {
+ width: 100%;
+ height: 100%;
+}
+.is-add[data-v-bdfc07e0] {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.icon-add[data-v-bdfc07e0] {
+ width: 50px;
+ height: 5px;
+ background-color: #f1f1f1;
+ border-radius: 2px;
+}
+.rotate[data-v-bdfc07e0] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+.icon-del-box[data-v-bdfc07e0] {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ height: 26px;
+ width: 26px;
+ border-radius: 50%;
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 2;
+ transform: rotate(-45deg);
+}
+.icon-del[data-v-bdfc07e0] {
+ width: 15px;
+ height: 2px;
+ background-color: #fff;
+ border-radius: 2px;
+}
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.uni-file-picker__files[data-v-a54939c6] {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+}
+.uni-file-picker__lists[data-v-a54939c6] {
+ position: relative;
+ margin-top: 5px;
+ overflow: hidden;
+}
+.file-picker__mask[data-v-a54939c6] {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ font-size: 14px;
+ background-color: rgba(0, 0, 0, 0.4);
+}
+.uni-file-picker__lists-box[data-v-a54939c6] {
+ position: relative;
+}
+.uni-file-picker__item[data-v-a54939c6] {
+ display: flex;
+ align-items: center;
+ padding: 8px 10px;
+ padding-right: 5px;
+ padding-left: 10px;
+}
+.files-border[data-v-a54939c6] {
+ border-top: 1px #eee solid;
+}
+.files__name[data-v-a54939c6] {
+ flex: 1;
+ font-size: 14px;
+ color: #666;
+ margin-right: 25px;
+ word-break: break-all;
+ word-wrap: break-word;
+}
+.icon-files[data-v-a54939c6] {
+ position: static;
+ background-color: initial;
+}
+.is-list-card[data-v-a54939c6] {
+ border: 1px #eee solid;
+ margin-bottom: 5px;
+ border-radius: 5px;
+ box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.1);
+ padding: 5px;
+}
+.files__image[data-v-a54939c6] {
+ width: 40px;
+ height: 40px;
+ margin-right: 10px;
+}
+.header-image[data-v-a54939c6] {
+ width: 100%;
+ height: 100%;
+}
+.is-text-box[data-v-a54939c6] {
+ border: 1px #eee solid;
+ border-radius: 5px;
+}
+.is-text-image[data-v-a54939c6] {
+ width: 25px;
+ height: 25px;
+ margin-left: 5px;
+}
+.rotate[data-v-a54939c6] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+.icon-del-box[data-v-a54939c6] {
+ display: flex;
+ margin: auto 0;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ top: 0px;
+ bottom: 0;
+ right: 5px;
+ height: 26px;
+ width: 26px;
+ z-index: 2;
+ transform: rotate(-45deg);
+}
+.icon-del[data-v-a54939c6] {
+ width: 15px;
+ height: 1px;
+ background-color: #333;
+}
+
+.uni-file-picker[data-v-6223573f] {
+
+ box-sizing: border-box;
+ overflow: hidden;
+ width: 100%;
+
+ flex: 1;
+}
+.uni-file-picker__header[data-v-6223573f] {
+ padding-top: 5px;
+ padding-bottom: 10px;
+
+ display: flex;
+
+ justify-content: space-between;
+}
+.file-title[data-v-6223573f] {
+ font-size: 14px;
+ color: #333;
+}
+.file-count[data-v-6223573f] {
+ font-size: 14px;
+ color: #999;
+}
+.is-add[data-v-6223573f] {
+
+ display: flex;
+
+ align-items: center;
+ justify-content: center;
+}
+.icon-add[data-v-6223573f] {
+ width: 50px;
+ height: 5px;
+ background-color: #f1f1f1;
+ border-radius: 2px;
+}
+.rotate[data-v-6223573f] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+
/**
* 这里是uni-app内置的常用样式变量
*
diff --git a/unpackage/dist/dev/app-plus/pages/leave/application.css b/unpackage/dist/dev/app-plus/pages/leave/application.css
index 928ce8c..acb1fba 100644
--- a/unpackage/dist/dev/app-plus/pages/leave/application.css
+++ b/unpackage/dist/dev/app-plus/pages/leave/application.css
@@ -530,6 +530,282 @@
text-decoration: none;
text-align: center;
}
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.uni-file-picker__container[data-v-bdfc07e0] {
+ display: flex;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+ margin: -5px;
+}
+.file-picker__box[data-v-bdfc07e0] {
+ position: relative;
+ width: 33.3%;
+ height: 0;
+ padding-top: 33.33%;
+ box-sizing: border-box;
+}
+.file-picker__box-content[data-v-bdfc07e0] {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ margin: 5px;
+ border: 1px #eee solid;
+ border-radius: 5px;
+ overflow: hidden;
+}
+.file-picker__progress[data-v-bdfc07e0] {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ /* border: 1px red solid; */
+ z-index: 2;
+}
+.file-picker__progress-item[data-v-bdfc07e0] {
+ width: 100%;
+}
+.file-picker__mask[data-v-bdfc07e0] {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ font-size: 12px;
+ background-color: rgba(0, 0, 0, 0.4);
+}
+.file-image[data-v-bdfc07e0] {
+ width: 100%;
+ height: 100%;
+}
+.is-add[data-v-bdfc07e0] {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.icon-add[data-v-bdfc07e0] {
+ width: 50px;
+ height: 5px;
+ background-color: #f1f1f1;
+ border-radius: 2px;
+}
+.rotate[data-v-bdfc07e0] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+.icon-del-box[data-v-bdfc07e0] {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ top: 3px;
+ right: 3px;
+ height: 26px;
+ width: 26px;
+ border-radius: 50%;
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 2;
+ transform: rotate(-45deg);
+}
+.icon-del[data-v-bdfc07e0] {
+ width: 15px;
+ height: 2px;
+ background-color: #fff;
+ border-radius: 2px;
+}
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.uni-file-picker__files[data-v-a54939c6] {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+}
+.uni-file-picker__lists[data-v-a54939c6] {
+ position: relative;
+ margin-top: 5px;
+ overflow: hidden;
+}
+.file-picker__mask[data-v-a54939c6] {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ font-size: 14px;
+ background-color: rgba(0, 0, 0, 0.4);
+}
+.uni-file-picker__lists-box[data-v-a54939c6] {
+ position: relative;
+}
+.uni-file-picker__item[data-v-a54939c6] {
+ display: flex;
+ align-items: center;
+ padding: 8px 10px;
+ padding-right: 5px;
+ padding-left: 10px;
+}
+.files-border[data-v-a54939c6] {
+ border-top: 1px #eee solid;
+}
+.files__name[data-v-a54939c6] {
+ flex: 1;
+ font-size: 14px;
+ color: #666;
+ margin-right: 25px;
+ word-break: break-all;
+ word-wrap: break-word;
+}
+.icon-files[data-v-a54939c6] {
+ position: static;
+ background-color: initial;
+}
+.is-list-card[data-v-a54939c6] {
+ border: 1px #eee solid;
+ margin-bottom: 5px;
+ border-radius: 5px;
+ box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.1);
+ padding: 5px;
+}
+.files__image[data-v-a54939c6] {
+ width: 40px;
+ height: 40px;
+ margin-right: 10px;
+}
+.header-image[data-v-a54939c6] {
+ width: 100%;
+ height: 100%;
+}
+.is-text-box[data-v-a54939c6] {
+ border: 1px #eee solid;
+ border-radius: 5px;
+}
+.is-text-image[data-v-a54939c6] {
+ width: 25px;
+ height: 25px;
+ margin-left: 5px;
+}
+.rotate[data-v-a54939c6] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+.icon-del-box[data-v-a54939c6] {
+ display: flex;
+ margin: auto 0;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ top: 0px;
+ bottom: 0;
+ right: 5px;
+ height: 26px;
+ width: 26px;
+ z-index: 2;
+ transform: rotate(-45deg);
+}
+.icon-del[data-v-a54939c6] {
+ width: 15px;
+ height: 1px;
+ background-color: #333;
+}
+
+.uni-file-picker[data-v-6223573f] {
+
+ box-sizing: border-box;
+ overflow: hidden;
+ width: 100%;
+
+ flex: 1;
+}
+.uni-file-picker__header[data-v-6223573f] {
+ padding-top: 5px;
+ padding-bottom: 10px;
+
+ display: flex;
+
+ justify-content: space-between;
+}
+.file-title[data-v-6223573f] {
+ font-size: 14px;
+ color: #333;
+}
+.file-count[data-v-6223573f] {
+ font-size: 14px;
+ color: #999;
+}
+.is-add[data-v-6223573f] {
+
+ display: flex;
+
+ align-items: center;
+ justify-content: center;
+}
+.icon-add[data-v-6223573f] {
+ width: 50px;
+ height: 5px;
+ background-color: #f1f1f1;
+ border-radius: 2px;
+}
+.rotate[data-v-6223573f] {
+ position: absolute;
+ transform: rotate(90deg);
+}
+
/**
* 这里是uni-app内置的常用样式变量
*
@@ -1044,22 +1320,4 @@ body {
.form .choosed[data-v-f12ae642] {
font-size: 0.875rem;
color: #333333;
-}
-.reason[data-v-f12ae642] {
- background-color: #fff;
- margin-top: 0.625rem;
- height: 9.0625rem;
- padding: 0.9375rem;
-}
-.reason .title[data-v-f12ae642] {
- font-size: 0.875rem;
- color: #333333;
-}
-.reason uni-textarea[data-v-f12ae642] {
- width: 100%;
- margin-top: 0.625rem;
-}
-.lines[data-v-f12ae642] {
- height: 0.625rem;
- background-color: #F8F8F8;
}
\ No newline at end of file