更改小程序 appId
This commit is contained in:
parent
bf9471cfa9
commit
47303b3a36
@ -1,28 +1,28 @@
|
||||
{
|
||||
"name": "ykt-team-wxapp",
|
||||
"appid": "__UNI__3EBDA15",
|
||||
"description": "",
|
||||
"versionName": "1.0.0",
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
"name" : "ykt-team-wxapp",
|
||||
"appid" : "__UNI__3EBDA15",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
"versionCode" : "100",
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus": {
|
||||
"usingComponents": true,
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
"app-plus" : {
|
||||
"usingComponents" : true,
|
||||
"nvueStyleCompiler" : "uni-app",
|
||||
"compilerVersion" : 3,
|
||||
"splashscreen" : {
|
||||
"alwaysShowBeforeRender" : true,
|
||||
"waiting" : true,
|
||||
"autoclose" : true,
|
||||
"delay" : 0
|
||||
},
|
||||
/* 模块配置 */
|
||||
"modules": {},
|
||||
"modules" : {},
|
||||
/* 应用发布信息 */
|
||||
"distribute": {
|
||||
"distribute" : {
|
||||
/* android打包配置 */
|
||||
"android": {
|
||||
"permissions": [
|
||||
"android" : {
|
||||
"permissions" : [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
@ -41,32 +41,32 @@
|
||||
]
|
||||
},
|
||||
/* ios打包配置 */
|
||||
"ios": {},
|
||||
"ios" : {},
|
||||
/* SDK配置 */
|
||||
"sdkConfigs": {}
|
||||
"sdkConfigs" : {}
|
||||
}
|
||||
},
|
||||
/* 快应用特有相关 */
|
||||
"quickapp": {},
|
||||
"quickapp" : {},
|
||||
/* 小程序特有相关 */
|
||||
"mp-weixin": {
|
||||
"appid": "wx93af55767423938e",
|
||||
"setting": {
|
||||
"urlCheck": false
|
||||
"mp-weixin" : {
|
||||
"appid" : "wx93af55767423938e",
|
||||
"setting" : {
|
||||
"urlCheck" : false
|
||||
},
|
||||
"usingComponents": true
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-alipay": {
|
||||
"usingComponents": true
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-baidu": {
|
||||
"usingComponents": true
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"mp-toutiao": {
|
||||
"usingComponents": true
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true
|
||||
},
|
||||
"uniStatistics": {
|
||||
"enable": false
|
||||
"uniStatistics" : {
|
||||
"enable" : false
|
||||
},
|
||||
"vueVersion": "3"
|
||||
"vueVersion" : "3"
|
||||
}
|
||||
@ -1,53 +1,89 @@
|
||||
<template>
|
||||
<view class="archive-container">
|
||||
<view class="mb-10 flex items-center justify-between">
|
||||
<view class="module-title flex-shrink-0 truncate">
|
||||
成员档案
|
||||
</view>
|
||||
<view class="flex items-center px-10 leading-normal rounded-sm" @click="toManagePage()">
|
||||
<image class="manage-icon mr-5" src="/static/home/archive-manage.png" mode="aspectFit"></image>
|
||||
<view style="font-size: 28rpx; color: #065BD6;">档案管理</view>
|
||||
<view class="module-title flex-shrink-0 truncate"> 成员档案 </view>
|
||||
<view
|
||||
class="flex items-center px-10 leading-normal rounded-sm"
|
||||
@click="toManagePage()"
|
||||
>
|
||||
<image
|
||||
class="manage-icon mr-5"
|
||||
src="/static/home/archive-manage.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<view style="font-size: 28rpx; color: #065bd6">档案管理</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="customers.length === 0" class="flex items-center justify-center h-80 border-dashed text-dark rounded">
|
||||
<view
|
||||
v-if="customers.length === 0"
|
||||
class="flex items-center justify-center h-80 border-dashed text-dark rounded"
|
||||
>
|
||||
<uni-icons type="plusempty" size="16" color="#999"></uni-icons>
|
||||
<view class="text-base text-dark">新建档案</view>
|
||||
</view>
|
||||
<scroll-view scroll-x="true">
|
||||
<view class="flex flex-nowrap pb-5 ">
|
||||
<view v-for="i in customers" :key="i._id" class="customer-card flex-shrink-0 mr-15 relative"
|
||||
:class="current && i._id === current._id ? 'current-customer' : ''" @click="toggle(i)">
|
||||
<view class="flex flex-nowrap pb-5">
|
||||
<view
|
||||
v-for="i in customers"
|
||||
:key="i._id"
|
||||
class="customer-card flex-shrink-0 mr-15 relative"
|
||||
:class="current && i._id === current._id ? 'current-customer' : ''"
|
||||
@click="toggle(i)"
|
||||
>
|
||||
<!-- 关系标签 -->
|
||||
<view v-if="i.relationship" class="relationship-tag"
|
||||
:class="i.relationship === '本人' ? 'tag-blue' : 'tag-green'">
|
||||
<view
|
||||
v-if="i.relationship"
|
||||
class="relationship-tag"
|
||||
:class="i.relationship === '本人' ? 'tag-blue' : 'tag-green'"
|
||||
>
|
||||
{{ i.relationship }}
|
||||
</view>
|
||||
<view class="flex flex-col items-center">
|
||||
<view class="customer-name text-lg leading-normal font-semibold whitespace-nowrap "
|
||||
:class="current && i._id === current._id ? 'text-primary' : 'text-dark'">
|
||||
<view
|
||||
class="customer-name text-lg leading-normal font-semibold whitespace-nowrap"
|
||||
:class="
|
||||
current && i._id === current._id ? 'text-primary' : 'text-dark'
|
||||
"
|
||||
>
|
||||
{{ i.name }}
|
||||
</view>
|
||||
<view class="flex items-center mb-5">
|
||||
<image v-if="i.sex" class="sex-icon mr-5"
|
||||
:src="i.sex === '男' ? '/static/home/male.svg' : '/static/home/female.svg'" />
|
||||
<image
|
||||
v-if="i.sex"
|
||||
class="sex-icon mr-5"
|
||||
:src="
|
||||
i.sex === '男'
|
||||
? '/static/home/male.svg'
|
||||
: '/static/home/female.svg'
|
||||
"
|
||||
/>
|
||||
<view class="customer-age text-base leading-normal text-gray">
|
||||
{{ i.age > 0 ? i.age + '岁' : '' }}
|
||||
{{ i.age > 0 ? i.age + "岁" : "" }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 选中状态底部条和三角 -->
|
||||
<view v-if="current && i._id === current._id" class="active-indicator">
|
||||
<view
|
||||
v-if="current && i._id === current._id"
|
||||
class="active-indicator"
|
||||
>
|
||||
<view class="active-bar"></view>
|
||||
<view class="active-triangle"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view v-if="canAuth" class="px-10 py-5 mt-5 flex items-center bg-danger rounded-sm">
|
||||
<view
|
||||
v-if="canAuth"
|
||||
class="px-10 py-5 mt-5 flex items-center bg-danger rounded-sm"
|
||||
>
|
||||
<view class="mr-5 w-0 flex-grow text-base text-white">
|
||||
点击右侧授权按钮, 我们将更精准的为您服务
|
||||
</view>
|
||||
<view class="px-12 py-5 text-base rounded-sm text-dark bg-white" @click="auth()">
|
||||
<view
|
||||
class="px-12 py-5 text-base rounded-sm text-dark bg-white"
|
||||
@click="auth()"
|
||||
>
|
||||
授权
|
||||
</view>
|
||||
</view>
|
||||
@ -57,18 +93,32 @@
|
||||
<view class="info-content">
|
||||
<view class="flex items-center justify-between mb-8">
|
||||
<view class="info-title">个人基本信息</view>
|
||||
<image class="arrow-icon-small" src="/static/home/arrow-right-blue.png" mode="aspectFit"></image>
|
||||
<image
|
||||
class="arrow-icon-small"
|
||||
src="/static/home/arrow-right-blue.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
<view v-if="baseInfoError" class="text-sm text-danger">请完善您的个人信息</view>
|
||||
<view v-if="baseInfoError" class="text-sm text-danger"
|
||||
>请完善您的个人信息</view
|
||||
>
|
||||
<view v-else class="info-subtitle">完善个人信息</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="hasHealthTemp" class="ml-10 info-card-new flex-grow" @click="toHealthList()">
|
||||
<view
|
||||
v-if="hasHealthTemp"
|
||||
class="ml-10 info-card-new flex-grow"
|
||||
@click="toHealthList()"
|
||||
>
|
||||
<view class="info-bg info-bg-health"></view>
|
||||
<view class="info-content">
|
||||
<view class="flex items-center justify-between mb-8">
|
||||
<view class="info-title">健康信息</view>
|
||||
<image class="arrow-icon-small" src="/static/home/arrow-right-blue.png" mode="aspectFit"></image>
|
||||
<image
|
||||
class="arrow-icon-small"
|
||||
src="/static/home/arrow-right-blue.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
<view class="info-subtitle">上传健康档案</view>
|
||||
</view>
|
||||
@ -77,28 +127,28 @@
|
||||
</view>
|
||||
</template>
|
||||
<script setup>
|
||||
import { computed, onMounted, ref, watch } from 'vue';
|
||||
import { storeToRefs } from 'pinia'
|
||||
import useAccount from '@/store/account';
|
||||
import api from '@/utils/api';
|
||||
import { toast, confirm } from '@/utils/widget';
|
||||
import { computed, onMounted, ref, watch } from "vue";
|
||||
import { storeToRefs } from "pinia";
|
||||
import useAccount from "@/store/account";
|
||||
import api from "@/utils/api";
|
||||
import { toast, confirm } from "@/utils/widget";
|
||||
|
||||
const props = defineProps({
|
||||
corpId: {
|
||||
type: String,
|
||||
default: ''
|
||||
default: "",
|
||||
},
|
||||
customers: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
default: () => [],
|
||||
},
|
||||
team: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
default: () => ({}),
|
||||
},
|
||||
});
|
||||
|
||||
const emit = defineEmits(['update:customers']);
|
||||
const emit = defineEmits(["update:customers"]);
|
||||
|
||||
const { account } = storeToRefs(useAccount());
|
||||
const current = ref(null);
|
||||
@ -106,41 +156,61 @@ const customers = ref([]);
|
||||
|
||||
const canAuth = computed(() => {
|
||||
if (current.value && props.team && props.team.teamId) {
|
||||
const teamIds = Array.isArray(current.value.teamId) ? current.value.teamId : [];
|
||||
const teamIds = Array.isArray(current.value.teamId)
|
||||
? current.value.teamId
|
||||
: [];
|
||||
return !teamIds.includes(props.team.teamId);
|
||||
}
|
||||
return false
|
||||
})
|
||||
return false;
|
||||
});
|
||||
const qrcode = computed(() => {
|
||||
const qrcodes = props.team && Array.isArray(props.team.qrcodes) ? props.team.qrcodes : [];
|
||||
return qrcodes[0] || ''
|
||||
})
|
||||
const qrcodes =
|
||||
props.team && Array.isArray(props.team.qrcodes) ? props.team.qrcodes : [];
|
||||
return qrcodes[0] || "";
|
||||
});
|
||||
|
||||
const hasHealthTemp = computed(() => qrcode.value && Array.isArray(qrcode.value.healthTempList) && qrcode.value.healthTempList.length > 0)
|
||||
const baseInfo = computed(() => qrcode.value && qrcode.value.teamFileds && Array.isArray(qrcode.value.teamFileds.baseInfo) ? qrcode.value.teamFileds.baseInfo : [])
|
||||
const hasHealthTemp = computed(
|
||||
() =>
|
||||
qrcode.value &&
|
||||
Array.isArray(qrcode.value.healthTempList) &&
|
||||
qrcode.value.healthTempList.length > 0
|
||||
);
|
||||
const baseInfo = computed(() =>
|
||||
qrcode.value &&
|
||||
qrcode.value.teamFileds &&
|
||||
Array.isArray(qrcode.value.teamFileds.baseInfo)
|
||||
? qrcode.value.teamFileds.baseInfo
|
||||
: []
|
||||
);
|
||||
const baseInfoError = computed(() => {
|
||||
const requiredTitles = baseInfo.value.filter(i => i.required).map(i => i.title);
|
||||
return current.value && requiredTitles.some(i => !current.value[i]);
|
||||
})
|
||||
const requiredTitles = baseInfo.value
|
||||
.filter((i) => i.required)
|
||||
.map((i) => i.title);
|
||||
return current.value && requiredTitles.some((i) => !current.value[i]);
|
||||
});
|
||||
|
||||
function fillBaseInfo() {
|
||||
if (canAuth.value) {
|
||||
toast('请先授权本服务团队')
|
||||
toast("请先授权本服务团队");
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: `/pages/archive/edit-archive?teamId=${props.team.teamId}&corpId=${props.corpId}&id=${current.value._id}`
|
||||
})
|
||||
url: `/pages/archive/edit-archive?teamId=${props.team.teamId}&corpId=${props.corpId}&id=${current.value._id}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function toHealthList() {
|
||||
if (canAuth.value) {
|
||||
toast('请先授权本服务团队')
|
||||
toast("请先授权本服务团队");
|
||||
} else {
|
||||
const name = `${current.value.name} ${current.value.relationship ? `(${current.value.relationship})` : ''}`
|
||||
const name = `${current.value.name} ${
|
||||
current.value.relationship ? `(${current.value.relationship})` : ""
|
||||
}`;
|
||||
uni.navigateTo({
|
||||
url: `/pages/health/list?teamId=${props.team.teamId}&corpId=${props.corpId}&id=${current.value._id}&name=${encodeURIComponent(name)}`
|
||||
})
|
||||
url: `/pages/health/list?teamId=${props.team.teamId}&corpId=${
|
||||
props.corpId
|
||||
}&id=${current.value._id}&name=${encodeURIComponent(name)}`,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,54 +219,67 @@ function toggle(i) {
|
||||
}
|
||||
|
||||
function toManagePage() {
|
||||
uni.navigateTo({ url: `/pages/archive/archive-manage?corpId=${props.corpId}&teamId=${props.team.teamId}` })
|
||||
uni.navigateTo({
|
||||
url: `/pages/archive/archive-manage?corpId=${props.corpId}&teamId=${props.team.teamId}`,
|
||||
});
|
||||
}
|
||||
|
||||
async function auth() {
|
||||
await confirm(`是否授权${props.team.name}提供服务`);
|
||||
const res = await api('authCustomerToTeam', { corpId: props.corpId, teamId: props.team.teamId, id: current.value._id });
|
||||
const res = await api("authCustomerToTeam", {
|
||||
corpId: props.corpId,
|
||||
teamId: props.team.teamId,
|
||||
id: current.value._id,
|
||||
});
|
||||
if (res && res.success) {
|
||||
await toast('授权成功');
|
||||
getCustomers()
|
||||
await toast("授权成功");
|
||||
getCustomers();
|
||||
} else {
|
||||
toast(res?.message || '授权失败');
|
||||
toast(res?.message || "授权失败");
|
||||
}
|
||||
}
|
||||
|
||||
async function getCustomers() {
|
||||
const res = await api('getMiniAppCustomers', { miniAppId: account.value.openid, corpId: props.corpId });
|
||||
const res = await api("getMiniAppCustomers", {
|
||||
miniAppId: account.value.openid,
|
||||
corpId: props.corpId,
|
||||
});
|
||||
if (res && res.success) {
|
||||
customers.value = res && Array.isArray(res.data) ? res.data : [];
|
||||
const customer = customers.value.find(i => current.value && i._id === current.value._id);
|
||||
const customer = customers.value.find(
|
||||
(i) => current.value && i._id === current.value._id
|
||||
);
|
||||
current.value = customer || customers.value[0] || null;
|
||||
// 向父组件传递 customers 数据
|
||||
emit('update:customers', customers.value);
|
||||
emit("update:customers", customers.value);
|
||||
} else {
|
||||
toast(res.message || '获取档案失败');
|
||||
toast(res.message || "获取档案失败");
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
uni.$on('reloadTeamCustomers', getCustomers)
|
||||
})
|
||||
|
||||
watch(() => props.corpId, n => {
|
||||
if (n) {
|
||||
getCustomers()
|
||||
} else {
|
||||
customers.value = [];
|
||||
}
|
||||
}, { immediate: true });
|
||||
uni.$on("reloadTeamCustomers", getCustomers);
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.corpId,
|
||||
(n) => {
|
||||
if (n) {
|
||||
getCustomers();
|
||||
} else {
|
||||
customers.value = [];
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
</script>
|
||||
<style scoped>
|
||||
.archive-container {
|
||||
padding: 24rpx 30rpx;
|
||||
margin: 0 30rpx;
|
||||
background: linear-gradient(181deg, #C2DCFF 1.01%, #FFFFFF 43.31%);
|
||||
background: linear-gradient(181deg, #c2dcff 1.01%, #ffffff 43.31%);
|
||||
border-radius: 16rpx;
|
||||
box-shadow:
|
||||
inset 0 2rpx 0 0 rgba(255, 255, 255, 0.82),
|
||||
box-shadow: inset 0 2rpx 0 0 rgba(255, 255, 255, 0.82),
|
||||
0 8rpx 10rpx 0 rgba(60, 169, 145, 0.06);
|
||||
}
|
||||
|
||||
@ -218,19 +301,18 @@ watch(() => props.corpId, n => {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(180deg, #FFFFFF 0%, #E6EFFB 100%);
|
||||
background: linear-gradient(180deg, #ffffff 0%, #e6effb 100%);
|
||||
border-radius: 12rpx;
|
||||
border: 2rpx solid #AECAF2;
|
||||
border: 2rpx solid #aecaf2;
|
||||
transition: all 0.2s;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.current-customer {
|
||||
background: #FFFFFF;
|
||||
border: 2rpx solid #065BD6;
|
||||
background: #ffffff;
|
||||
border: 2rpx solid #065bd6;
|
||||
}
|
||||
|
||||
|
||||
.relationship-tag {
|
||||
position: absolute;
|
||||
top: -2rpx;
|
||||
@ -245,7 +327,7 @@ watch(() => props.corpId, n => {
|
||||
}
|
||||
|
||||
.relationship-tag::after {
|
||||
content: '';
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: -8rpx;
|
||||
@ -255,19 +337,19 @@ watch(() => props.corpId, n => {
|
||||
}
|
||||
|
||||
.tag-blue {
|
||||
background: #065BD6;
|
||||
background: #065bd6;
|
||||
}
|
||||
|
||||
.tag-blue::after {
|
||||
border-top: 8rpx solid #003F96;
|
||||
border-top: 8rpx solid #003f96;
|
||||
}
|
||||
|
||||
.tag-green {
|
||||
background: #1DBF98;
|
||||
background: #1dbf98;
|
||||
}
|
||||
|
||||
.tag-green::after {
|
||||
border-top: 8rpx solid #0F8C6D;
|
||||
border-top: 8rpx solid #0f8c6d;
|
||||
}
|
||||
|
||||
.active-indicator {
|
||||
@ -295,7 +377,7 @@ watch(() => props.corpId, n => {
|
||||
transform: translateX(-50%) rotate(45deg);
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
background: #065BD6;
|
||||
background: #065bd6;
|
||||
margin-top: -8rpx;
|
||||
}
|
||||
|
||||
@ -315,12 +397,11 @@ watch(() => props.corpId, n => {
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
|
||||
.info-card-new {
|
||||
position: relative;
|
||||
padding: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
background: linear-gradient(115deg, #F4F9FF 14.74%, #DBEAFF 66.11%);
|
||||
background: linear-gradient(115deg, #f4f9ff 14.74%, #dbeaff 66.11%);
|
||||
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.06);
|
||||
overflow: hidden;
|
||||
width: 310rpx;
|
||||
@ -347,22 +428,21 @@ watch(() => props.corpId, n => {
|
||||
}
|
||||
|
||||
.info-bg-base {
|
||||
background-image: url('/static/home/basic-info-bg.svg');
|
||||
background-image: url("/static/home/basic-info-bg.svg");
|
||||
}
|
||||
|
||||
.info-bg-health {
|
||||
background-image: url('/static/home/health-info-bg.svg');
|
||||
background-image: url("/static/home/health-info-bg.svg");
|
||||
}
|
||||
|
||||
|
||||
.info-title {
|
||||
color: #213E80;
|
||||
color: #213e80;
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.info-subtitle {
|
||||
color: #78808F;
|
||||
color: #78808f;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user