作者 xiaoqiu

完成原型图上所以功能

正在显示 55 个修改的文件 包含 3891 行增加171 行删除

要显示太多修改。

为保证性能只显示 55 of 55+ 个文件。

不能预览此文件类型
@@ -9,6 +9,9 @@ export const userWxLogin = (data, config = {}) => http.post('/wechat/login', dat @@ -9,6 +9,9 @@ export const userWxLogin = (data, config = {}) => http.post('/wechat/login', dat
9 // 发起登记流程 9 // 发起登记流程
10 export const carInfoAdd = (data) => http.post('/registration/add', data, {custom: {auth: true}}) 10 export const carInfoAdd = (data) => http.post('/registration/add', data, {custom: {auth: true}})
11 11
  12 +// 修改登记信息
  13 +export const carInfoEdit = (data) => http.post('/registration/edit', data, {custom: {auth: true}})
  14 +
12 // 办理一个用户任务 15 // 办理一个用户任务
13 export const disposeUser = (taskId) => http.post(`​/registration/completeTask/${taskId}`, {}, {custom: {auth: true}}) 16 export const disposeUser = (taskId) => http.post(`​/registration/completeTask/${taskId}`, {}, {custom: {auth: true}})
14 17
@@ -27,6 +30,9 @@ export const getUserInfo = (data) => http.get('/system/user/profile', {custom: { @@ -27,6 +30,9 @@ export const getUserInfo = (data) => http.get('/system/user/profile', {custom: {
27 // 修改用户信息 30 // 修改用户信息
28 export const updateUserInfo = (data) => http.put('/system/user/profile', data, {custom: {auth: true}}) 31 export const updateUserInfo = (data) => http.put('/system/user/profile', data, {custom: {auth: true}})
29 32
  33 +// 用户注销
  34 +export const userCancel = () => http.get('/system/user/deRegistration', {custom: {auth: true}})
  35 +
30 // 获取验证码 36 // 获取验证码
31 export const getCodeImg = (data) => http.get('/captchaImage') 37 export const getCodeImg = (data) => http.get('/captchaImage')
32 38
@@ -3,9 +3,18 @@ import { http } from '@/uni_modules/uview-plus' @@ -3,9 +3,18 @@ import { http } from '@/uni_modules/uview-plus'
3 // 获取待办任务 3 // 获取待办任务
4 export const queryMyList = (data) => http.get(`/registration/mylist`, {params: data, custom: {auth: true}}) 4 export const queryMyList = (data) => http.get(`/registration/mylist`, {params: data, custom: {auth: true}})
5 5
  6 +// 查询待处理订单
  7 +export const queryPengdingList = (data) => http.get(`/registration/monitor/listPending`, {params: data, custom: {auth: true}})
  8 +
6 // 查询已处理订单 9 // 查询已处理订单
7 export const queryProcessedList = (data) => http.get(`/registration/monitor/listProcessed`, {params: data, custom: {auth: true}}) 10 export const queryProcessedList = (data) => http.get(`/registration/monitor/listProcessed`, {params: data, custom: {auth: true}})
8 11
  12 +// 查询进行中订单
  13 +export const queryOngoingList = (data) => http.get(`/registration/monitor/listOngoing`, {params: data, custom: {auth: true}})
  14 +
  15 +// 查询已作废订单
  16 +export const queryDeprecatedList = (data) => http.get(`/registration/monitor/listDeprecated`, {params: data, custom: {auth: true}})
  17 +
9 // 查询已承接保单 18 // 查询已承接保单
10 export const queryContinueList = (data) => http.get(`/registration/monitor/listReports`, {params: data, custom: {auth: true}}) 19 export const queryContinueList = (data) => http.get(`/registration/monitor/listReports`, {params: data, custom: {auth: true}})
11 20
@@ -19,4 +28,14 @@ export const disposeUser = (data, taskId) => http.post(`/registration/completeTa @@ -19,4 +28,14 @@ export const disposeUser = (data, taskId) => http.post(`/registration/completeTa
19 export const transfer = (data, taskId) => http.post(`/registratiom/transferTask/${taskId}`, data, {custom: {auth: true}}) 28 export const transfer = (data, taskId) => http.post(`/registratiom/transferTask/${taskId}`, data, {custom: {auth: true}})
20 29
21 // 获取人员列表 30 // 获取人员列表
22 -export const getUserList = (data) => http.post(`/system/user/otherEmployee`, data, {custom: {auth: true}})  
  31 +export const getUserList = (data) => http.get(`/system/user/otherEmployee`, {params: data,custom: {auth: true}})
  32 +
  33 +// 获取公司列表
  34 +export const listDept = (data) => http.get(`/system/dept/list`, {params: data, custom: {auth: true}})
  35 +
  36 +// 查询保单回馈
  37 +export const queryResult = (data) => http.get(`/registration/monitor/getResult`, {params: data, custom: {auth: true}})
  38 +
  39 +// 查询作废备注
  40 +export const queryDefeatContent = (data) => http.get(`/registration/monitor/getComment`, {params: data, custom: {auth: true}})
  41 +
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <slot name="center"></slot> 4 <slot name="center"></slot>
5 <view class="rowLine"></view> 5 <view class="rowLine"></view>
6 <slot name="footer"></slot> 6 <slot name="footer"></slot>
7 - <view class="tip" :style="{backgroundColor: bgColor, color: fontColor}">{{ carInfo?.status || tipContent }}</view> 7 + <view class="tip" :style="{backgroundColor: bgColor, color: fontColor}">{{ carInfo?.policyStatus ?? tipContent }}</view>
8 </view> 8 </view>
9 </template> 9 </template>
10 10
@@ -20,9 +20,8 @@ const props = defineProps({ @@ -20,9 +20,8 @@ const props = defineProps({
20 default: '' 20 default: ''
21 } 21 }
22 }) 22 })
23 -const emit = defineEmits(['onSkip'])  
24 const bgColor = computed(() => { 23 const bgColor = computed(() => {
25 - let index = props.carInfo.status 24 + let index = props.carInfo?.policyStatus || 0
26 let objColor = { 25 let objColor = {
27 '进行中': '#D5E5FF', 26 '进行中': '#D5E5FF',
28 '已完成': '#dbf1e1', 27 '已完成': '#dbf1e1',
@@ -31,7 +30,7 @@ const bgColor = computed(() => { @@ -31,7 +30,7 @@ const bgColor = computed(() => {
31 return objColor[index] || '#D5E5FF' 30 return objColor[index] || '#D5E5FF'
32 }) 31 })
33 const fontColor = computed(() => { 32 const fontColor = computed(() => {
34 - let index = props.carInfo.status 33 + let index = props.carInfo?.policyStatus || 0
35 let objColor = { 34 let objColor = {
36 '进行中': '#3680FE', 35 '进行中': '#3680FE',
37 '已完成': '#19be6b', 36 '已完成': '#19be6b',
@@ -39,10 +38,6 @@ const fontColor = computed(() => { @@ -39,10 +38,6 @@ const fontColor = computed(() => {
39 } 38 }
40 return objColor[index] || '#3680FE' 39 return objColor[index] || '#3680FE'
41 }) 40 })
42 -  
43 -const skip = () => {  
44 - emit('onSkip', props.carInfo.carId)  
45 -}  
46 </script> 41 </script>
47 42
48 <style lang="scss" scoped> 43 <style lang="scss" scoped>
@@ -62,8 +57,7 @@ const skip = () => { @@ -62,8 +57,7 @@ const skip = () => {
62 position: absolute; 57 position: absolute;
63 top: 0; 58 top: 0;
64 right: 0; 59 right: 0;
65 - width: 120rpx;  
66 - height: 40rpx; 60 + padding: 0 20rpx;
67 text-align: center; 61 text-align: center;
68 font-size: 20rpx; 62 font-size: 20rpx;
69 line-height: 40rpx; 63 line-height: 40rpx;
1 <template> 1 <template>
2 <view class="centerLine" :style="{color: fontColor}"> 2 <view class="centerLine" :style="{color: fontColor}">
3 - <text @click="leftComfirn">{{ leftContent }}</text> 3 + <text @click="leftComfirnButton">{{ leftContent }}</text>
4 <text class="line" :style="{backgroundColor: fontColor}"></text> 4 <text class="line" :style="{backgroundColor: fontColor}"></text>
5 - <text @click="rightComfirn">{{ rightContent }}</text> 5 + <text @click="rightComfirnButton">{{ rightContent }}</text>
6 </view> 6 </view>
7 </template> 7 </template>
8 8
@@ -2,35 +2,158 @@ @@ -2,35 +2,158 @@
2 <view class="operate"> 2 <view class="operate">
3 <view class="operate_list"> 3 <view class="operate_list">
4 <view class="operate_item"> 4 <view class="operate_item">
5 - <text class="operate_btn" :class="{active: current === 0 }" @click="handleReturn">退回</text> 5 + <text class="operate_btn" :class="{active: current === 0 }" @click="handleSuccess">通过</text>
6 </view> 6 </view>
7 <view class="operate_item"> 7 <view class="operate_item">
8 - <text class="operate_btn" :class="{active: current === 1 }" @click="handleInvalid">作废</text> 8 + <text class="operate_btn" :class="{active: current === 1 }" @click="handleReturn">退回</text>
9 </view> 9 </view>
10 <view class="operate_item"> 10 <view class="operate_item">
11 - <text class="operate_btn" :class="{active: current === 2 }" @click="handleUpdate">修改</text> 11 + <text class="operate_btn" :class="{active: current === 2 }" @click="handleInvalid">作废</text>
12 </view> 12 </view>
13 <view class="operate_item"> 13 <view class="operate_item">
14 - <text class="operate_btn" :class="{active: current === 3 }" @click="handleCirculation">流转</text> 14 + <text class="operate_btn" :class="{active: current === 3 }" @click="handleUpdate">修改</text>
15 </view> 15 </view>
  16 + <view class="operate_item">
  17 + <text class="operate_btn" :class="{active: current === 4 }" @click="handleCirculation">流转</text>
  18 + </view>
  19 + </view>
  20 + <!-- 作废回馈弹出框 -->
  21 + <up-modal :show="showDefeat" showCancelButton title="填写作废回馈" @confirm="sunmitDeprecated" @cancel="showDefeat = false">
  22 + <up-textarea v-model="DefeatContent" placeholder="请输入内容" ></up-textarea>
  23 + </up-modal>
  24 + <!-- 分配保险公司 -->
  25 + <up-modal :show="showCompany" showCancelButton closeOnClickOverlay title="选择分配项" @confirm="submitForm" @cancel="showCompany = false" @close="showCompany = false">
  26 + <view class="slot-content">
  27 + <view class="company_box">
  28 + <view class="header_top">
  29 + <up-input
  30 + placeholder="请输入承保公司名称"
  31 + prefixIcon="search"
  32 + v-model="companyQueryParams.deptName"
  33 + ></up-input>
  34 + <view class="btn" @click="getDeptList">查询</view>
  35 + </view>
  36 + <up-radio-group v-model="deptId" placement="column">
  37 + <up-radio
  38 + v-for="(item, index) in deptOptions"
  39 + :key="index"
  40 + :label="item.deptName"
  41 + :name="item.deptId"
  42 + />
  43 + </up-radio-group>
16 </view> 44 </view>
17 </view> 45 </view>
  46 + </up-modal>
  47 + </view>
18 </template> 48 </template>
19 49
20 <script setup> 50 <script setup>
21 -import { ref } from 'vue' 51 +import { ref, reactive} from 'vue'
  52 +import { disposeUser, listDept } from '@/api/work.js'
  53 +const props = defineProps({
  54 + carInfo: {
  55 + type: Object,
  56 + require: true
  57 + }
  58 +})
  59 +const emit = defineEmits(['refreshList'])
  60 +const deptOptions = ref([]);
  61 +const companyQueryParams = reactive({
  62 + deptName: undefined,
  63 + status: undefined,
  64 +});
  65 +const deptId = ref(0)
22 const current = ref(9) 66 const current = ref(9)
23 -const handleReturn = () => { 67 +const showDefeat = ref(false)
  68 +const DefeatContent = ref('')
  69 +const showCompany = ref(false)
  70 +// 通过
  71 +const handleSuccess = () => {
24 current.value = 0 72 current.value = 0
  73 + uni.showModal({
  74 + title: '提示',
  75 + content: '是否通过',
  76 + success: function (res) {
  77 + if (res.confirm) {
  78 + disposeUser({ associationapprove: '0' }, props.carInfo.taskId).then((res) => {
  79 + uni.$u.toast('保单已通过')
  80 + emit('refreshList')
  81 + });
  82 + } else if (res.cancel) {
  83 + console.log('用户点击取消');
25 } 84 }
26 - const handleInvalid = () => { 85 + }
  86 + });
  87 +}
  88 +// 退回
  89 +const handleReturn = () => {
27 current.value = 1 90 current.value = 1
  91 + uni.showModal({
  92 + title: '提示',
  93 + content: '是否退回',
  94 + success: function (res) {
  95 + if (res.confirm) {
  96 + disposeUser({ associationapprove: '1' }, props.carInfo.taskId).then((res) => {
  97 + uni.$u.toast('保单已退回')
  98 + emit('refreshList')
  99 + });
  100 + } else if (res.cancel) {
  101 + console.log('用户点击取消');
28 } 102 }
29 - const handleUpdate = () => { 103 + }
  104 + });
  105 + }
  106 + // 作废
  107 + const handleInvalid = () => {
30 current.value = 2 108 current.value = 2
  109 + showDefeat.value = true
31 } 110 }
32 - const handleCirculation = () => { 111 + // 修改
  112 + const handleUpdate = () => {
33 current.value = 3 113 current.value = 3
  114 + const id = props.carInfo.businessKey
  115 + uni.navigateTo({
  116 + url: `/pages/carDetail/carDetail?carInfoId=${id}&roleId=1`
  117 + })
  118 + }
  119 + // 分配
  120 + const handleCirculation = () => {
  121 + current.value = 4
  122 + getDeptList();
  123 + showCompany.value = true
  124 + }
  125 +
  126 + /** 查询公司列表 */
  127 + const getDeptList = () => {
  128 + listDept(companyQueryParams).then((response) => {
  129 + deptOptions.value = response.data.filter((item) => item.parentId === 100);
  130 + });
  131 + }
  132 + // 提交作废表单
  133 + const sunmitDeprecated = () => {
  134 + const data = {
  135 + associationapprove: '2',
  136 + comment: DefeatContent.value,
  137 + };
  138 + const taskId = props.carInfo.taskId
  139 + disposeUser(data, taskId).then((res) => {
  140 + emit('refreshList')
  141 + uni.$u.toast('保单已作废')
  142 + showDefeat.value = false
  143 + });
  144 + }
  145 + /** 提交通过分配承保公司 */
  146 + const submitForm = () => {
  147 + const data = {
  148 + associationapprove: '0',
  149 + deptid: deptId.value.toString(),
  150 + };
  151 + const taskId = props.carInfo.taskId
  152 + disposeUser(data, taskId).then((res) => {
  153 + showCompany.value = false;
  154 + emit('refreshList')
  155 + uni.$u.toast('保单已分配成功')
  156 + });
34 } 157 }
35 </script> 158 </script>
36 159
@@ -64,4 +187,17 @@ const handleReturn = () => { @@ -64,4 +187,17 @@ const handleReturn = () => {
64 } 187 }
65 } 188 }
66 } 189 }
  190 +.header_top {
  191 + display: flex;
  192 + align-items: center;
  193 + margin-bottom: 20rpx;
  194 + .btn{
  195 + height: 68rpx;
  196 + line-height: 68rpx;
  197 + padding: 0 28rpx;
  198 + font-size: 24rpx;
  199 + color: #fff;
  200 + background-color: #3c9cff;
  201 + }
  202 +}
67 </style> 203 </style>
1 <template> 1 <template>
2 <view class="wordInfo u-line-1"> 2 <view class="wordInfo u-line-1">
3 - <text style="min-width: 120rpx;">车主:{{ userName }}</text> 3 + <text style="min-width: 140rpx; margin-right: 20rpx;">车主:{{ userName }}</text>
4 <text style="min-width: 160rpx; margin-right: 20rpx;">联系电话:{{ phone }}</text> 4 <text style="min-width: 160rpx; margin-right: 20rpx;">联系电话:{{ phone }}</text>
5 <text>上年承保公司:{{ company }}</text> 5 <text>上年承保公司:{{ company }}</text>
6 </view> 6 </view>
@@ -52,8 +52,10 @@ @@ -52,8 +52,10 @@
52 "mp-weixin" : { 52 "mp-weixin" : {
53 "appid" : "wx2884bf0a53ee40b3", 53 "appid" : "wx2884bf0a53ee40b3",
54 "setting" : { 54 "setting" : {
55 - "urlCheck" : false,  
56 - "minified" : true 55 + "urlCheck" : true,
  56 + "minified" : true,
  57 + "es6" : true,
  58 + "postcss" : true
57 }, 59 },
58 "usingComponents" : true, 60 "usingComponents" : true,
59 "lazyCodeLoading" : "requiredComponents", 61 "lazyCodeLoading" : "requiredComponents",
@@ -20,7 +20,8 @@ @@ -20,7 +20,8 @@
20 "path": "pages/index/index", 20 "path": "pages/index/index",
21 "style": { 21 "style": {
22 "navigationBarTitleText": "客户首页", 22 "navigationBarTitleText": "客户首页",
23 - "navigationStyle": "custom" 23 + "navigationStyle": "custom",
  24 + "enablePullDownRefresh": true
24 } 25 }
25 }, 26 },
26 { 27 {
@@ -51,7 +52,8 @@ @@ -51,7 +52,8 @@
51 "style" : 52 "style" :
52 { 53 {
53 "navigationBarTitleText" : "公司员工首页", 54 "navigationBarTitleText" : "公司员工首页",
54 - "navigationStyle": "custom" 55 + "navigationStyle": "custom",
  56 + "enablePullDownRefresh": true
55 } 57 }
56 }, 58 },
57 { 59 {
@@ -75,7 +77,8 @@ @@ -75,7 +77,8 @@
75 "style" : 77 "style" :
76 { 78 {
77 "navigationBarTitleText" : "协会员工首页", 79 "navigationBarTitleText" : "协会员工首页",
78 - "navigationStyle": "custom" 80 + "navigationStyle": "custom",
  81 + "enablePullDownRefresh": true
79 } 82 }
80 }, 83 },
81 { 84 {
@@ -90,7 +93,17 @@ @@ -90,7 +93,17 @@
90 "path" : "pages/employeeRealName/employeeRealName", 93 "path" : "pages/employeeRealName/employeeRealName",
91 "style" : 94 "style" :
92 { 95 {
93 - "navigationBarTitleText" : "" 96 + "navigationBarTitleText" : "员工实名页面",
  97 + "navigationStyle": "custom"
  98 + }
  99 + },
  100 + {
  101 + "path" : "pages/societyOrder/societyOrder",
  102 + "style" :
  103 + {
  104 + "navigationBarTitleText" : "协会保单页",
  105 + "navigationStyle": "custom",
  106 + "enablePullDownRefresh": true
94 } 107 }
95 } 108 }
96 ], 109 ],
@@ -22,49 +22,49 @@ @@ -22,49 +22,49 @@
22 <view class="carInfo"> 22 <view class="carInfo">
23 <view class="card_title">车主信息</view> 23 <view class="card_title">车主信息</view>
24 <up-form-item label="车主姓名" prop="name"> 24 <up-form-item label="车主姓名" prop="name">
25 - <up-input v-model="form.name" fontSize="28rpx" color="#999" placeholder="请输入真实姓名" border="none" inputAlign="right" /> 25 + <up-input v-model="userInfo.nickName" disabled disabledColor="#fff" fontSize="28rpx" color="#999" placeholder="请输入真实姓名" border="none" inputAlign="right" />
26 </up-form-item> 26 </up-form-item>
27 <up-form-item label="身份证号" prop="identificationNumber"> 27 <up-form-item label="身份证号" prop="identificationNumber">
28 - <up-input v-model="form.identificationNumber" fontSize="28rpx" color="#999" placeholder="请输入身份证号" border="none" inputAlign="right" /> 28 + <up-input v-model="userInfo.identificationNumber" disabled disabledColor="#fff" fontSize="28rpx" color="#999" placeholder="请输入身份证号" border="none" inputAlign="right" />
29 </up-form-item> 29 </up-form-item>
30 </view> 30 </view>
31 <!-- 行驶信息 --> 31 <!-- 行驶信息 -->
32 <view class="carInfo"> 32 <view class="carInfo">
33 <view class="card_title">行驶证信息</view> 33 <view class="card_title">行驶证信息</view>
34 - <up-form-item label="车牌号码" prop="licensePlateNumber"> 34 + <up-form-item label="车牌号码" prop="licensePlateNumber" required>
35 <up-input v-model="form.licensePlateNumber" fontSize="28rpx" color="#999" placeholder="请输入车牌号码" border="none" inputAlign="right" /> 35 <up-input v-model="form.licensePlateNumber" fontSize="28rpx" color="#999" placeholder="请输入车牌号码" border="none" inputAlign="right" />
36 </up-form-item> 36 </up-form-item>
37 - <up-form-item label="号牌种类" prop="lincensePlateType"> 37 + <up-form-item label="号牌种类" prop="lincensePlateTypeId" required>
38 <uni-data-select 38 <uni-data-select
39 v-model="form.lincensePlateTypeId" 39 v-model="form.lincensePlateTypeId"
40 :localdata="carNumOption" 40 :localdata="carNumOption"
41 placeholder="请选择号牌种类" 41 placeholder="请选择号牌种类"
42 /> 42 />
43 </up-form-item> 43 </up-form-item>
44 - <up-form-item label="车架号" prop="frameNumber"> 44 + <up-form-item label="车架号" prop="frameNumber" required>
45 <up-input v-model="form.frameNumber" fontSize="28rpx" color="#999" placeholder="请输入车架号" border="none" inputAlign="right" /> 45 <up-input v-model="form.frameNumber" fontSize="28rpx" color="#999" placeholder="请输入车架号" border="none" inputAlign="right" />
46 </up-form-item> 46 </up-form-item>
47 - <up-form-item label="发动机号" prop="engineNumber"> 47 + <up-form-item label="发动机号" prop="engineNumber" required>
48 <up-input v-model="form.engineNumber" fontSize="28rpx" color="#999" placeholder="请输入发动机号" border="none" inputAlign="right" /> 48 <up-input v-model="form.engineNumber" fontSize="28rpx" color="#999" placeholder="请输入发动机号" border="none" inputAlign="right" />
49 </up-form-item> 49 </up-form-item>
50 - <up-form-item label="车辆类型" prop="vehicleType"> 50 + <up-form-item label="车辆类型" prop="vehicleTypeId" required>
51 <uni-data-select 51 <uni-data-select
52 v-model="form.vehicleTypeId" 52 v-model="form.vehicleTypeId"
53 :localdata="carTypeOption" 53 :localdata="carTypeOption"
54 placeholder="请选择车辆类型" 54 placeholder="请选择车辆类型"
55 /> 55 />
56 </up-form-item> 56 </up-form-item>
57 - <up-form-item label="车辆使用性质" prop="vehicleNature"> 57 + <up-form-item label="车辆使用性质" prop="vehicleNatureId" required>
58 <uni-data-select 58 <uni-data-select
59 v-model="form.vehicleNatureId" 59 v-model="form.vehicleNatureId"
60 :localdata="carNatureOption" 60 :localdata="carNatureOption"
61 placeholder="请选择车辆使用性质" 61 placeholder="请选择车辆使用性质"
62 /> 62 />
63 </up-form-item> 63 </up-form-item>
64 - <up-form-item label="核定客载数(人)" prop="passengersNumber"> 64 + <up-form-item label="核定客载数(人)" prop="passengersNumber" required>
65 <up-input v-model="form.passengersNumber" fontSize="28rpx" color="#999" placeholder="请输入核载人数" border="none" inputAlign="right" /> 65 <up-input v-model="form.passengersNumber" fontSize="28rpx" color="#999" placeholder="请输入核载人数" border="none" inputAlign="right" />
66 </up-form-item> 66 </up-form-item>
67 - <up-form-item label="核定载质量(千克)" prop="passengerCapacity"> 67 + <up-form-item label="核定载质量(千克)" prop="passengerCapacity" required>
68 <up-input v-model="form.passengerCapacity" fontSize="28rpx" color="#999" placeholder="请输入核载重量" border="none" inputAlign="right" /> 68 <up-input v-model="form.passengerCapacity" fontSize="28rpx" color="#999" placeholder="请输入核载重量" border="none" inputAlign="right" />
69 </up-form-item> 69 </up-form-item>
70 <up-form-item label="排量毫升" prop="emissions"> 70 <up-form-item label="排量毫升" prop="emissions">
@@ -92,7 +92,7 @@ @@ -92,7 +92,7 @@
92 <up-form-item v-else label="中文品牌" prop="vehicleBrand"> 92 <up-form-item v-else label="中文品牌" prop="vehicleBrand">
93 <up-input v-model="form.customizeVehicleBrand" fontSize="28rpx" color="#999" placeholder="请填写中文品牌" border="none" inputAlign="right" /> 93 <up-input v-model="form.customizeVehicleBrand" fontSize="28rpx" color="#999" placeholder="请填写中文品牌" border="none" inputAlign="right" />
94 </up-form-item> 94 </up-form-item>
95 - <up-form-item label="准牵引质量" prop="tractionMass"> 95 + <up-form-item label="准牵引质量" prop="tractionMass" required>
96 <up-input v-model="form.tractionMass" fontSize="28rpx" color="#999" placeholder="请填写准牵引准质量" border="none" inputAlign="right" /> 96 <up-input v-model="form.tractionMass" fontSize="28rpx" color="#999" placeholder="请填写准牵引准质量" border="none" inputAlign="right" />
97 </up-form-item> 97 </up-form-item>
98 <up-form-item label="保险需求" prop="requirements"> 98 <up-form-item label="保险需求" prop="requirements">
@@ -106,7 +106,8 @@ @@ -106,7 +106,8 @@
106 106
107 <view class="tip">请认真核实车辆信息,实际投保车辆信息以保险公司确认为准</view> 107 <view class="tip">请认真核实车辆信息,实际投保车辆信息以保险公司确认为准</view>
108 108
109 - <view class="btn confirmBtn" @click="submitInfo">确认</view> 109 + <view v-show="!isEdit" class="btn confirmBtn" @click="submitInfo">确认</view>
  110 + <view v-show="isRole" class="btn confirmBtn" @click="submitEdit">提交修改</view>
110 </up-form> 111 </up-form>
111 <up-popup :show="showTip" mode="center" :safeAreaInsetBottom="false" round="20" @close="showTip = false"> 112 <up-popup :show="showTip" mode="center" :safeAreaInsetBottom="false" round="20" @close="showTip = false">
112 <view class="notice"> 113 <view class="notice">
@@ -124,10 +125,13 @@ @@ -124,10 +125,13 @@
124 import { debounce } from '@/uni_modules/uview-plus'; 125 import { debounce } from '@/uni_modules/uview-plus';
125 import { computed, reactive, ref } from 'vue'; 126 import { computed, reactive, ref } from 'vue';
126 import navTop from '@/components/navTop.vue'; 127 import navTop from '@/components/navTop.vue';
127 -import { carInfoAdd } from '@/api/user.js'  
128 -import { onLoad } from '@dcloudio/uni-app' 128 +import { carInfoAdd, carInfoEdit } from '@/api/user.js'
  129 +import { onLoad, onReady } from '@dcloudio/uni-app'
  130 +import { disposeUser } from '@/api/work.js'
  131 +import useUserStore from '@/store/modules/user';
129 import { getCarNumApi, getCarTypeApi, getCarNatureApi, getCarBrandApi, getCarModelApi, getNeedApi, getListDeptApi, getCarDetail } from '@/api/car.js' 132 import { getCarNumApi, getCarTypeApi, getCarNatureApi, getCarBrandApi, getCarModelApi, getNeedApi, getListDeptApi, getCarDetail } from '@/api/car.js'
130 const showTip = ref(true) 133 const showTip = ref(true)
  134 +const { userInfo } = useUserStore()
131 const brandTitle = ref('请选择中文品牌') 135 const brandTitle = ref('请选择中文品牌')
132 const disable = ref(false) 136 const disable = ref(false)
133 const labelStyle = { 137 const labelStyle = {
@@ -135,8 +139,13 @@ const labelStyle = { @@ -135,8 +139,13 @@ const labelStyle = {
135 lineHeight: '38rpx', 139 lineHeight: '38rpx',
136 color: '#3D3D3D' 140 color: '#3D3D3D'
137 } 141 }
  142 +// 表单引用
  143 +const uFormRef = ref(null)
138 const isShowHeader = ref(false) 144 const isShowHeader = ref(false)
139 const isCustom = ref(false) 145 const isCustom = ref(false)
  146 +const taskId = ref('')
  147 +const isEdit = ref(false)
  148 +const isRole = ref(false)
140 const searchList = ref([]) 149 const searchList = ref([])
141 const showList = ref(false) 150 const showList = ref(false)
142 const form = ref({ 151 const form = ref({
@@ -171,11 +180,41 @@ const queryModelParams = reactive({ @@ -171,11 +180,41 @@ const queryModelParams = reactive({
171 pageNum: 1, 180 pageNum: 1,
172 modelName: undefined 181 modelName: undefined
173 }) 182 })
  183 +
  184 +const rules = {
  185 + licensePlateNumber: [{ required: true, message: '请输入车牌号', trigger: ['blur', 'change']}],
  186 + lincensePlateTypeId: [{ required: true, message: '请选择号牌种类', trigger: ['change']}],
  187 + frameNumber: [{ required: true, message: '请输入车架号', trigger: ['blur', 'change']}],
  188 + engineNumber: [{ required: true, message: '请输入发动机号', trigger: ['blur', 'change']}],
  189 + vehicleTypeId: [{ required: true, message: '请选择车辆类型', trigger: ['change']}],
  190 + vehicleNatureId: [{ required: true, message: '请选择车辆使用性质', trigger: ['blur', 'change']}],
  191 + passengersNumber: [
  192 + { required: true, message: '请输入载客人数', trigger: ['blur', 'change']},
  193 + { type: 'number', message: '请输入整数', trigger: ['blur', 'change']}
  194 + ],
  195 + passengerCapacity: [
  196 + { required: true, message: '请输入核定载质量', trigger: ['blur', 'change']},
  197 + { type: 'number', message: '请输入整数', trigger: ['blur', 'change']}
  198 + ],
  199 + tractionMass: [
  200 + { required: true, message: '请输入准牵引质量', trigger: ['blur', 'change']},
  201 + { type: 'number', message: '请输入整数', trigger: ['blur', 'change']}
  202 + ]
  203 +}
  204 +// 微信小程序需要在此注册校验规则
  205 +onReady(() => {
  206 + uFormRef.value.setRules(rules)
  207 +})
174 onLoad(async (options) => { 208 onLoad(async (options) => {
  209 + if(options.roleId !== undefined || options.taskId !== undefined){
  210 + isRole.value = true
  211 + taskId.value = options.taskId
  212 + }
175 if(options.carInfoId !== undefined) { 213 if(options.carInfoId !== undefined) {
176 const { data } = await getCarDetail(options.carInfoId) 214 const { data } = await getCarDetail(options.carInfoId)
177 form.value = data 215 form.value = data
178 isCustom.value = data.isCustomizeBrandAndModel == "0" 216 isCustom.value = data.isCustomizeBrandAndModel == "0"
  217 + isEdit.value = true
179 isShowHeader.value = true 218 isShowHeader.value = true
180 } 219 }
181 }) 220 })
@@ -187,7 +226,7 @@ const getCompanyOption = () => { @@ -187,7 +226,7 @@ const getCompanyOption = () => {
187 const newList = data.filter(item => item.parentId === 100) 226 const newList = data.filter(item => item.parentId === 100)
188 const arrList = newList.map(item => { 227 const arrList = newList.map(item => {
189 return { 228 return {
190 - value: item.deptId, 229 + value: item.deptId.toString(),
191 text: item.deptName 230 text: item.deptName
192 } 231 }
193 }) 232 })
@@ -299,10 +338,52 @@ const selectModel = (item) => { @@ -299,10 +338,52 @@ const selectModel = (item) => {
299 isCustom.value = true 338 isCustom.value = true
300 form.value.isCustomizeBrandAndModel = '0' 339 form.value.isCustomizeBrandAndModel = '0'
301 } 340 }
302 - 341 +// 添加车辆信息
303 const submitInfo = async () => { 342 const submitInfo = async () => {
  343 + if(form.value.isCustomizeBrandAndModel === '1') {
  344 + if(form.value.customizeVehicleBrand === '' || form.value.customizeVehicleModel === '') {
  345 + return uni.$u.toast('车辆型号和品牌必须填写')
  346 + }
  347 + }else {
  348 + if(form.value.vehicleBrandId === '' || form.value.vehicleModelId === '') {
  349 + return uni.$u.toast('车辆型号和品牌必须填写')
  350 + }
  351 + }
  352 + uFormRef.value.validate().then(async valid => {
  353 + if (valid) {
304 await carInfoAdd(form.value) 354 await carInfoAdd(form.value)
305 uni.$u.toast('添加成功') 355 uni.$u.toast('添加成功')
  356 + uni.navigateBack()
  357 + } else {
  358 + uni.$u.toast('校验失败')
  359 + }
  360 + }).catch((err) => {
  361 + // 处理验证错误
  362 + uni.$u.toast('校验失败')
  363 + });
  364 +}
  365 +// 提交修改
  366 +const submitEdit = async () => {
  367 + if(form.value.isCustomizeBrandAndModel === '1') {
  368 + if(form.value.customizeVehicleBrand === '' || form.value.customizeVehicleModel === '') {
  369 + return uni.$u.toast('车辆型号和品牌必须填写')
  370 + }
  371 + }else {
  372 + if(form.value.vehicleBrandId === '' || form.value.vehicleModelId === '') {
  373 + return uni.$u.toast('车辆型号和品牌必须填写')
  374 + }
  375 + }
  376 + if(!taskId.value === undefined) {
  377 + await carInfoEdit(form.value)
  378 + uni.$u.toast('修改成功')
  379 + uni.navigateBack()
  380 + }else {
  381 + await carInfoEdit(form.value)
  382 + disposeUser({reregistration:'true'}, taskId.value).then(res => {
  383 + uni.$u.toast('提交成功')
  384 + })
  385 + uni.navigateBack()
  386 + }
306 } 387 }
307 </script> 388 </script>
308 389
@@ -25,7 +25,8 @@ @@ -25,7 +25,8 @@
25 <wordInfo :phone="carItem.phone" :userName="carItem.name" :company="carItem.sysDeptName" /> 25 <wordInfo :phone="carItem.phone" :userName="carItem.name" :company="carItem.sysDeptName" />
26 </template> 26 </template>
27 <template #footer> 27 <template #footer>
28 - <centerLine leftContent="承接" rightContent="转办" @leftComfirn="handleContinue(carItem.taskId)" @rightComfirn="handleSharing(carItem.taskId)"></centerLine> 28 + <centerLine v-if="carItem.orderProgress === '已承接'" leftContent="承接回馈" rightContent="疑难件" @leftComfirn="handleFeedback(carItem.taskId)" @rightComfirn="handleTroubleshooting(carItem.taskId)"></centerLine>
  29 + <centerLine v-else leftContent="承接" rightContent="转办" @leftComfirn="handleContinue(carItem.taskId)" @rightComfirn="handleSharing(carItem.taskId)"></centerLine>
29 </template> 30 </template>
30 </carCard> 31 </carCard>
31 <up-empty 32 <up-empty
@@ -33,6 +34,10 @@ @@ -33,6 +34,10 @@
33 mode="list" 34 mode="list"
34 text="暂无待办事项" 35 text="暂无待办事项"
35 /> 36 />
  37 + <!-- 分页器 -->
  38 + <view v-show="List.length > 0">
  39 + <uni-pagination :total="allTotal" v-model="queryParams.pageNum" :pageSize="queryParams.pageSize" @change="getList" />
  40 + </view>
36 </view> 41 </view>
37 </scroll-view> 42 </scroll-view>
38 </view> 43 </view>
@@ -57,6 +62,10 @@ @@ -57,6 +62,10 @@
57 mode="list" 62 mode="list"
58 text="暂无数据" 63 text="暂无数据"
59 /> 64 />
  65 + <!-- 分页器 -->
  66 + <view v-show="ProcessedList.length > 0">
  67 + <uni-pagination :total="allTotal" v-model="continueQueryParams.pageNum" :pageSize="continueQueryParams.pageSize" @change="getProcessedList" />
  68 + </view>
60 </view> 69 </view>
61 </scroll-view> 70 </scroll-view>
62 </view> 71 </view>
@@ -70,11 +79,11 @@ @@ -70,11 +79,11 @@
70 <navTop :carNum="carItem.licensePlateNumber" /> 79 <navTop :carNum="carItem.licensePlateNumber" />
71 </template> 80 </template>
72 <template #center> 81 <template #center>
73 - <ownerInfo :carInfo="carItem" /> 82 + <wordInfo :phone="carItem.phone" :userName="carItem.name" :company="carItem.sysDeptName" />
74 </template> 83 </template>
75 <template #footer> 84 <template #footer>
76 <view class="delInfo"> 85 <view class="delInfo">
77 - <text @click="goCarDetail">查看详情</text> 86 + <text @click="lookRemark(carItem.processInstanceId)">查看回馈</text>
78 </view> 87 </view>
79 </template> 88 </template>
80 </carCard> 89 </carCard>
@@ -83,6 +92,10 @@ @@ -83,6 +92,10 @@
83 mode="list" 92 mode="list"
84 text="暂无数据" 93 text="暂无数据"
85 /> 94 />
  95 + <!-- 分页器 -->
  96 + <view v-show="EndedList.length > 0">
  97 + <uni-pagination :total="allTotal" v-model="queryParams.pageNum" :pageSize="queryParams.pageSize" @change="getEndedList" />
  98 + </view>
86 </view> 99 </view>
87 </scroll-view> 100 </scroll-view>
88 </view> 101 </view>
@@ -92,25 +105,30 @@ @@ -92,25 +105,30 @@
92 105
93 </view> 106 </view>
94 <!-- 填写承接回馈弹出框 --> 107 <!-- 填写承接回馈弹出框 -->
95 - <up-modal :show="showFeedback" title="填写回馈及单号" @confirm="submitFeedback" @cancel="showFeedback = false">  
96 - <view class="slot-content">  
97 - <up-form :model="FeedbackForm"> 108 + <up-modal :show="showFeedback" showCancelButton title="填写回馈及单号" @confirm="submitFeedback" @cancel="showFeedback = false">
  109 + <up-form :model="FeedbackForm" labelWidth="80">
98 <up-form-item label="承保单号" prop="name"> 110 <up-form-item label="承保单号" prop="name">
99 <up-input v-model="FeedbackForm.policynumber" /> 111 <up-input v-model="FeedbackForm.policynumber" />
100 </up-form-item> 112 </up-form-item>
101 <up-form-item label="回馈内容" prop="name"> 113 <up-form-item label="回馈内容" prop="name">
102 - <rich-text :nodes="FeedbackForm.message"></rich-text> 114 + <up-textarea v-model="FeedbackForm.message" placeholder="请输入内容" ></up-textarea>
  115 + </up-form-item>
  116 + </up-form>
  117 + </up-modal>
  118 + <!-- 查看回馈弹出框 -->
  119 + <up-modal :show="showRemark" title="回馈内容" @confirm="showRemark = false">
  120 + <up-form :model="remarkForm" labelWidth="80">
  121 + <up-form-item label="承保单号" prop="name">
  122 + <up-input v-model="remarkForm.policyNumber" />
  123 + </up-form-item>
  124 + <up-form-item label="回馈内容" prop="name">
  125 + <up-parse :content="remarkForm.message"></up-parse>
103 </up-form-item> 126 </up-form-item>
104 </up-form> 127 </up-form>
105 - </view>  
106 </up-modal> 128 </up-modal>
107 -  
108 <!-- 转办弹出框 --> 129 <!-- 转办弹出框 -->
109 - <up-modal :show="showSharing" title="选择转办人员" @confirm="submitSharing" @cancel="showSharing = false">  
110 - <view class="slot-content">  
111 - <up-radio-group  
112 - v-model="transferForm.username"  
113 - > 130 + <up-modal :show="showSharing" showCancelButton title="选择转办人员" @confirm="submitSharing" @cancel="showSharing = false">
  131 + <up-radio-group v-model="transferForm.username">
114 <up-radio 132 <up-radio
115 v-for="(item, index) in transferOptions" 133 v-for="(item, index) in transferOptions"
116 :key="index" 134 :key="index"
@@ -118,7 +136,6 @@ @@ -118,7 +136,6 @@
118 :name="item.userName" 136 :name="item.userName"
119 /> 137 />
120 </up-radio-group> 138 </up-radio-group>
121 - </view>  
122 </up-modal> 139 </up-modal>
123 <!-- 底部导航栏 --> 140 <!-- 底部导航栏 -->
124 <up-tabbar 141 <up-tabbar
@@ -145,7 +162,7 @@ @@ -145,7 +162,7 @@
145 import centerLine from '@/components/centerLine.vue'; 162 import centerLine from '@/components/centerLine.vue';
146 import wordInfo from '@/components/wordInfo.vue'; 163 import wordInfo from '@/components/wordInfo.vue';
147 import navTop from '@/components/navTop.vue'; 164 import navTop from '@/components/navTop.vue';
148 - import { queryMyList, queryContinueList, queryEndedList ,disposeUser, getUserList, transfer } from '@/api/work.js' 165 + import { queryMyList, queryContinueList, queryEndedList ,disposeUser, getUserList, transfer, queryResult } from '@/api/work.js'
149 import ownerInfo from '@/components/ownerInfo.vue'; 166 import ownerInfo from '@/components/ownerInfo.vue';
150 import useTabbarStore from '@/store/modules/tabbar.js' 167 import useTabbarStore from '@/store/modules/tabbar.js'
151 const useTabbar = useTabbarStore() 168 const useTabbar = useTabbarStore()
@@ -153,13 +170,19 @@ @@ -153,13 +170,19 @@
153 const ProcessedList = ref([]) // 已处理列表 170 const ProcessedList = ref([]) // 已处理列表
154 const EndedList = ref([]) // 已完结列表 171 const EndedList = ref([]) // 已完结列表
155 const expertActive = ref(0) 172 const expertActive = ref(0)
  173 + const allTotal = ref(0)
156 const transferForm = ref({ 174 const transferForm = ref({
157 username: '', 175 username: '',
158 taskId: '' 176 taskId: ''
159 }) 177 })
160 - const transferOptions = reactive([]); 178 + const transferOptions = ref([]);
161 const showFeedback = ref(false) 179 const showFeedback = ref(false)
162 const showSharing = ref(false) 180 const showSharing = ref(false)
  181 + const showRemark = ref(false)
  182 + const remarkForm = ref({
  183 + message: "",
  184 + policyNumber: ""
  185 + })
163 const FeedbackForm = ref({ 186 const FeedbackForm = ref({
164 policystatus: "2", 187 policystatus: "2",
165 message: "", 188 message: "",
@@ -167,11 +190,11 @@ @@ -167,11 +190,11 @@
167 }) 190 })
168 const queryParams = reactive({ 191 const queryParams = reactive({
169 pageNum: 1, 192 pageNum: 1,
170 - pageSize: 20 193 + pageSize: 10
171 }); 194 });
172 const continueQueryParams = reactive({ 195 const continueQueryParams = reactive({
173 pageNum: 1, 196 pageNum: 1,
174 - pageSize: 20, 197 + pageSize: 10,
175 orderprogress: 1, 198 orderprogress: 1,
176 policystatus: 0 199 policystatus: 0
177 }); 200 });
@@ -205,6 +228,7 @@ @@ -205,6 +228,7 @@
205 const getList = async () => { 228 const getList = async () => {
206 const { data } = await queryMyList(queryParams); 229 const { data } = await queryMyList(queryParams);
207 List.value = data.rows; 230 List.value = data.rows;
  231 + allTotal.value = data.total
208 useTabbar.companyTotal = data.total; 232 useTabbar.companyTotal = data.total;
209 }; 233 };
210 234
@@ -212,12 +236,14 @@ @@ -212,12 +236,14 @@
212 const getProcessedList = async () => { 236 const getProcessedList = async () => {
213 const { rows, total } = await queryContinueList(continueQueryParams); 237 const { rows, total } = await queryContinueList(continueQueryParams);
214 ProcessedList.value = rows; 238 ProcessedList.value = rows;
  239 + allTotal.value = total
215 useTabbar.companyTotal = total; 240 useTabbar.companyTotal = total;
216 }; 241 };
217 // 获取已完结保单 242 // 获取已完结保单
218 const getEndedList = async () => { 243 const getEndedList = async () => {
219 const { rows, total } = await queryEndedList(queryParams); 244 const { rows, total } = await queryEndedList(queryParams);
220 EndedList.value = rows; 245 EndedList.value = rows;
  246 + allTotal.value = total
221 useTabbar.companyTotal = total; 247 useTabbar.companyTotal = total;
222 }; 248 };
223 249
@@ -295,11 +321,13 @@ @@ -295,11 +321,13 @@
295 url: '/pages/companyMy/companyMy' 321 url: '/pages/companyMy/companyMy'
296 }) 322 })
297 } 323 }
298 - // 车主详情  
299 - const goCarDetail = () => {  
300 - uni.navigateTo({  
301 - url: '/pages/ownerDetail/ownerDetail'  
302 - }) 324 + /**查看保单回馈 */
  325 + const lookRemark = (processInstanceId) => {
  326 + queryResult({ processInstanceId }).then((res) => {
  327 + remarkForm.value.policyNumber = res?.data?.policyNumber;
  328 + remarkForm.value.message = res?.data?.message;
  329 + showRemark.value = true;
  330 + });
303 } 331 }
304 getList() 332 getList()
305 </script> 333 </script>
@@ -11,34 +11,34 @@ @@ -11,34 +11,34 @@
11 <up-form-item prop="nickName"> 11 <up-form-item prop="nickName">
12 <up-input v-model="userInfo.nickName" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名"> 12 <up-input v-model="userInfo.nickName" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名">
13 <template #prefix> 13 <template #prefix>
14 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image> 14 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image>
15 </template> 15 </template>
16 </up-input> 16 </up-input>
17 </up-form-item> 17 </up-form-item>
18 <up-form-item prop="identificationNumber"> 18 <up-form-item prop="identificationNumber">
19 <up-input v-model="userInfo.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号"> 19 <up-input v-model="userInfo.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号">
20 <template #prefix> 20 <template #prefix>
21 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image> 21 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image>
22 </template> 22 </template>
23 </up-input> 23 </up-input>
24 </up-form-item> 24 </up-form-item>
25 <up-form-item prop="phonenumber"> 25 <up-form-item prop="phonenumber">
26 <up-input v-model="userInfo.phonenumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入手机号码"> 26 <up-input v-model="userInfo.phonenumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入手机号码">
27 <template #prefix> 27 <template #prefix>
28 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/phone.png" mode="widthFix"></image> 28 + <image style="width: 32rpx;height: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/phone.png" mode="widthFix"></image>
29 </template> 29 </template>
30 </up-input> 30 </up-input>
31 </up-form-item> 31 </up-form-item>
32 </up-form> 32 </up-form>
33 </view> 33 </view>
34 - <!-- <view class="line_title"> 34 + <view class="line_title">
35 <text class="left_title">状态设置</text> 35 <text class="left_title">状态设置</text>
36 - </view> --> 36 + </view>
37 37
38 - <!-- <view class="status">  
39 - <view class="statusBtn" :class="{active: status === 0}" @click="status = 0">在岗</view>  
40 - <view class="statusBtn" :class="{active: status === 1}" @click="status = 1">离岗</view>  
41 - </view> --> 38 + <view class="status">
  39 + <view class="statusBtn" :class="{active: userInfo.jobStatus === '0'}" @click="changeStatus('0')">在岗</view>
  40 + <view class="statusBtn" :class="{active: userInfo.jobStatus === '1'}" @click="changeStatus('1')">离岗</view>
  41 + </view>
42 42
43 <view class="loginBtn" @click="loginOut">退出登录</view> 43 <view class="loginBtn" @click="loginOut">退出登录</view>
44 </view> 44 </view>
@@ -60,9 +60,8 @@ import { updateUserInfo } from '@/api/user.js' @@ -60,9 +60,8 @@ import { updateUserInfo } from '@/api/user.js'
60 import { onReady } from '@dcloudio/uni-app' 60 import { onReady } from '@dcloudio/uni-app'
61 import useTabbarStore from '@/store/modules/tabbar.js' 61 import useTabbarStore from '@/store/modules/tabbar.js'
62 import useUserStore from '@/store/modules/user.js'; 62 import useUserStore from '@/store/modules/user.js';
63 -const { userInfo, Logout } = useUserStore() 63 +const { userInfo, Logout, getUser } = useUserStore()
64 const useTabbar = useTabbarStore() 64 const useTabbar = useTabbarStore()
65 -const status = ref(0)  
66 const showNotice = ref(true) 65 const showNotice = ref(true)
67 const customStyle = { 66 const customStyle = {
68 height: '80rpx', 67 height: '80rpx',
@@ -138,11 +137,19 @@ const goRouter = (index) => { @@ -138,11 +137,19 @@ const goRouter = (index) => {
138 }) 137 })
139 } 138 }
140 139
  140 +// 设置在岗状态
  141 +const changeStatus = async (status) => {
  142 + userInfo.jobStatus = status
  143 + await updateUserInfo(userInfo)
  144 + await getUser()
  145 + uni.$u.toast('更新成功')
  146 +}
141 // 提交方法 147 // 提交方法
142 const submit = () => { 148 const submit = () => {
143 userFormRef.value.validate().then(async valid => { 149 userFormRef.value.validate().then(async valid => {
144 if (valid) { 150 if (valid) {
145 await updateUserInfo(userInfo) 151 await updateUserInfo(userInfo)
  152 + await getUser()
146 uni.$u.toast('更新成功') 153 uni.$u.toast('更新成功')
147 } else { 154 } else {
148 uni.$u.toast('校验失败') 155 uni.$u.toast('校验失败')
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <up-navbar placeholder :leftIconSize="0" bgColor="transparent" /> 3 <up-navbar placeholder :leftIconSize="0" bgColor="transparent" />
4 <view class="car_list"> 4 <view class="car_list">
5 <view class="title">车辆管理</view> 5 <view class="title">车辆管理</view>
6 - <carCard v-for="carItem in carList" :key="carItem.id" :carInfo="carItem"> 6 + <carCard v-for="carItem in carList" :key="carItem.id" tipContent="车辆信息" :carInfo="carItem">
7 <template #header> 7 <template #header>
8 <navTop :carNum="carItem.licensePlateNumber" /> 8 <navTop :carNum="carItem.licensePlateNumber" />
9 </template> 9 </template>
@@ -31,8 +31,9 @@ @@ -31,8 +31,9 @@
31 31
32 <script setup> 32 <script setup>
33 import { reactive, ref } from 'vue' 33 import { reactive, ref } from 'vue'
34 -import { onShow } from '@dcloudio/uni-app' 34 +import { onShow, onPullDownRefresh } from '@dcloudio/uni-app'
35 import { getUserCarInfo, getNotice } from '@/api/user.js' 35 import { getUserCarInfo, getNotice } from '@/api/user.js'
  36 +import { queryMyList } from '@/api/work.js'
36 import carCard from '@/components/carCard.vue'; 37 import carCard from '@/components/carCard.vue';
37 import centerLine from '@/components/centerLine.vue'; 38 import centerLine from '@/components/centerLine.vue';
38 import navTop from '@/components/navTop.vue'; 39 import navTop from '@/components/navTop.vue';
@@ -40,14 +41,17 @@ import useUserStore from '@/store/modules/user'; @@ -40,14 +41,17 @@ import useUserStore from '@/store/modules/user';
40 const carList = ref([]) 41 const carList = ref([])
41 const advertisingTitle = ref('') 42 const advertisingTitle = ref('')
42 const advertisingContent = ref('') 43 const advertisingContent = ref('')
  44 +const myTotal = ref('0')
43 const userStore = useUserStore() 45 const userStore = useUserStore()
44 const queryParams = reactive({ 46 const queryParams = reactive({
45 pageNum: 1, 47 pageNum: 1,
46 - pageSize: 10 48 + pageSize: 20
47 }) 49 })
48 const getMyList = async () => { 50 const getMyList = async () => {
49 const { data } = await getUserCarInfo(queryParams) 51 const { data } = await getUserCarInfo(queryParams)
50 carList.value = data.records 52 carList.value = data.records
  53 + const { data:myData } = await queryMyList(queryParams)
  54 + myTotal.value = myData.total.toString()
51 } 55 }
52 const addCarInfo = () => { 56 const addCarInfo = () => {
53 uni.navigateTo({ 57 uni.navigateTo({
@@ -67,18 +71,36 @@ const getNoticeDetail = async () => { @@ -67,18 +71,36 @@ const getNoticeDetail = async () => {
67 const { data } = await getNotice(10) 71 const { data } = await getNotice(10)
68 advertisingContent.value = data.noticeContent 72 advertisingContent.value = data.noticeContent
69 advertisingTitle.value = data.noticeTitle 73 advertisingTitle.value = data.noticeTitle
  74 + userStore.isShowAdver = true
70 } 75 }
71 getNoticeDetail() 76 getNoticeDetail()
72 -onShow(() => {  
73 - getMyList() 77 +// 用户下拉刷新
  78 +onPullDownRefresh(async () => {
  79 + carList.value = []
  80 + //调用获取数据方法
  81 + await getMyList()
  82 + uni.stopPullDownRefresh()
  83 +})
  84 +onShow(async () => {
  85 + await getMyList()
  86 + if(myTotal.value !== '0') {
  87 + uni.setTabBarBadge({
  88 + index: 1,
  89 + text: myTotal.value
  90 + })
  91 + }else {
  92 + uni.removeTabBarBadge({
  93 + index: 1
  94 + })
  95 + }
74 }) 96 })
75 </script> 97 </script>
76 98
77 <style lang="scss" scoped> 99 <style lang="scss" scoped>
78 .app-container{ 100 .app-container{
79 width: 100%; 101 width: 100%;
80 - height: 100vh;  
81 - padding: 0 30rpx; 102 + min-height: 100vh;
  103 + padding: 0 30rpx 30rpx;
82 background: url('http://bxhd.crgx.net/profile/avatar/2024/09/25/bg-index_20240925113012A004.png') no-repeat; 104 background: url('http://bxhd.crgx.net/profile/avatar/2024/09/25/bg-index_20240925113012A004.png') no-repeat;
83 background-size: 100% 100%; 105 background-size: 100% 100%;
84 overflow: hidden; 106 overflow: hidden;
@@ -123,7 +145,12 @@ onShow(() => { @@ -123,7 +145,12 @@ onShow(() => {
123 .notice_content{ 145 .notice_content{
124 font-size: 28rpx; 146 font-size: 28rpx;
125 line-height: 38rpx; 147 line-height: 38rpx;
  148 + height: 375rpx;
126 color: #999; 149 color: #999;
  150 + overflow-y: scroll;
  151 + image{
  152 + width: 100%;
  153 + }
127 } 154 }
128 .btn{ 155 .btn{
129 position: absolute; 156 position: absolute;
@@ -135,6 +162,7 @@ onShow(() => { @@ -135,6 +162,7 @@ onShow(() => {
135 height: 100rpx; 162 height: 100rpx;
136 color: #3680FE; 163 color: #3680FE;
137 font-size: 28rpx; 164 font-size: 28rpx;
  165 + background-color: #fff;
138 border-top: 2rpx solid #eee; 166 border-top: 2rpx solid #eee;
139 } 167 }
140 } 168 }
@@ -6,14 +6,14 @@ @@ -6,14 +6,14 @@
6 <up-form-item prop="username"> 6 <up-form-item prop="username">
7 <up-input v-model="loginForm.username" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入用户名"> 7 <up-input v-model="loginForm.username" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入用户名">
8 <template #prefix> 8 <template #prefix>
9 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image> 9 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image>
10 </template> 10 </template>
11 </up-input> 11 </up-input>
12 </up-form-item> 12 </up-form-item>
13 <up-form-item prop="password"> 13 <up-form-item prop="password">
14 <up-input v-model="loginForm.password" type="password" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入密码"> 14 <up-input v-model="loginForm.password" type="password" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入密码">
15 <template #prefix> 15 <template #prefix>
16 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image> 16 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image>
17 </template> 17 </template>
18 </up-input> 18 </up-input>
19 </up-form-item> 19 </up-form-item>
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 <view style="display: flex;"> 21 <view style="display: flex;">
22 <up-input v-model="loginForm.code" placeholder="验证码" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="codeCustomStyle"> 22 <up-input v-model="loginForm.code" placeholder="验证码" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="codeCustomStyle">
23 <template #prefix> 23 <template #prefix>
24 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/code.png" mode="widthFix"></image> 24 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/code.png" mode="widthFix"></image>
25 </template> 25 </template>
26 </up-input> 26 </up-input>
27 <view class="login-code"> 27 <view class="login-code">
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
33 </view> 33 </view>
34 34
35 <view class="tip"> 35 <view class="tip">
36 - 未注册或绑定该车型平台的身份证号,将帮你注册新账号,点击登录即代表你同意<text style="color: #3680FE;" @click="goPrivacy">《隐私政策》</text> 36 + 未注册或绑定该平台的身份证号,将帮你注册新账号,点击登录即代表你同意<text style="color: #3680FE;" @click="goPrivacy">《隐私政策》</text>
37 </view> 37 </view>
38 <view class="log-btn" @click="submit">登录</view> 38 <view class="log-btn" @click="submit">登录</view>
39 </view> 39 </view>
@@ -45,7 +45,7 @@ import { onReady } from '@dcloudio/uni-app' @@ -45,7 +45,7 @@ import { onReady } from '@dcloudio/uni-app'
45 import { getCodeImg } from '@/api/user.js' 45 import { getCodeImg } from '@/api/user.js'
46 import { encrypt } from "@/utils/jsencrypt"; 46 import { encrypt } from "@/utils/jsencrypt";
47 import useUserStore from '@/store/modules/user' 47 import useUserStore from '@/store/modules/user'
48 - 48 +import storage from '@/utils/storage.js'
49 const userStore = useUserStore() 49 const userStore = useUserStore()
50 // 登录参数 50 // 登录参数
51 const loginForm = ref({ 51 const loginForm = ref({
@@ -60,7 +60,7 @@ const logFormRef = ref(null) @@ -60,7 +60,7 @@ const logFormRef = ref(null)
60 // 校验规则 60 // 校验规则
61 const rules = { 61 const rules = {
62 username: [{ required: true, message: '请输入用户名', trigger: ['blur', 'change'] }], 62 username: [{ required: true, message: '请输入用户名', trigger: ['blur', 'change'] }],
63 - password: [{ required: true, message: '请输入身份证号', trigger: ['blur', 'change']}], 63 + password: [{ required: true, message: '请输入密码', trigger: ['blur', 'change']}],
64 code: [{ required: true, message: '请输入验证码', trigger: ['blur', 'change']}] 64 code: [{ required: true, message: '请输入验证码', trigger: ['blur', 'change']}]
65 } 65 }
66 const customStyle = { 66 const customStyle = {
@@ -104,6 +104,7 @@ const submit = () => { @@ -104,6 +104,7 @@ const submit = () => {
104 // 调用action的登录方法 104 // 调用action的登录方法
105 userStore.userlogin(loginForm.value).then(async () => { 105 userStore.userlogin(loginForm.value).then(async () => {
106 const { data, roleGroup } = await userStore.getUser() 106 const { data, roleGroup } = await userStore.getUser()
  107 + storage.set('crgx_roleGroup', roleGroup)
107 if(data.identificationNumber !== null) { 108 if(data.identificationNumber !== null) {
108 if(roleGroup === '公司员工'){ 109 if(roleGroup === '公司员工'){
109 uni.redirectTo({ 110 uni.redirectTo({
@@ -14,54 +14,70 @@ @@ -14,54 +14,70 @@
14 <up-form-item prop="nickName"> 14 <up-form-item prop="nickName">
15 <up-input v-model="userInfo.nickName" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名"> 15 <up-input v-model="userInfo.nickName" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名">
16 <template #prefix> 16 <template #prefix>
17 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image> 17 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image>
18 </template> 18 </template>
19 </up-input> 19 </up-input>
20 </up-form-item> 20 </up-form-item>
21 <up-form-item prop="identificationNumber"> 21 <up-form-item prop="identificationNumber">
22 <up-input v-model="userInfo.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号"> 22 <up-input v-model="userInfo.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号">
23 <template #prefix> 23 <template #prefix>
24 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image> 24 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image>
25 </template> 25 </template>
26 </up-input> 26 </up-input>
27 </up-form-item> 27 </up-form-item>
28 <up-form-item prop="phonenumber"> 28 <up-form-item prop="phonenumber">
29 <up-input v-model="userInfo.phonenumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号"> 29 <up-input v-model="userInfo.phonenumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号">
30 <template #prefix> 30 <template #prefix>
31 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image> 31 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image>
32 </template> 32 </template>
33 </up-input> 33 </up-input>
34 </up-form-item> 34 </up-form-item>
35 </up-form> 35 </up-form>
36 </view> 36 </view>
37 <view class="line_title"> 37 <view class="line_title">
38 - <text class="left_title">我的车辆</text> 38 + <text class="left_title">我的待办</text>
39 <text>去修改车辆信息</text> 39 <text>去修改车辆信息</text>
40 </view> 40 </view>
41 41
42 - <view class="car_data">  
43 - <view v-for="carItem in carList" :key="carItem.id" class="car_item"> 42 + <carCard v-for="carItem in carList" :key="carItem.taskId" tipContent="等待修改" :carInfo="carItem">
  43 + <template #header>
44 <navTop :carNum="carItem.licensePlateNumber" /> 44 <navTop :carNum="carItem.licensePlateNumber" />
  45 + </template>
  46 + <template #center>
45 <centerLine :leftContent="carItem.customizeVehicleBrand || carItem.vehicleBrand" fontColor="#999" :rightContent="carItem.customizeVehicleModel || carItem.vehicleModel"></centerLine> 47 <centerLine :leftContent="carItem.customizeVehicleBrand || carItem.vehicleBrand" fontColor="#999" :rightContent="carItem.customizeVehicleModel || carItem.vehicleModel"></centerLine>
  48 + </template>
  49 + <template #footer>
  50 + <view style="display: flex;gap: 30rpx;">
  51 + <view style="color: #3680FE;font-size: 24rpx;" @click="updateCarInfo(carItem.businessKey,carItem.taskId)">修改提交</view>
  52 + <view style="color: #3680FE;font-size: 24rpx;" @click="dropEdit(carItem.taskId)">放弃修改</view>
46 </view> 53 </view>
47 - </view>  
48 - <view class="loginBtn" @click="loginOut">退出登录</view> 54 + </template>
  55 + </carCard>
  56 + <up-empty
  57 + :show="carList.length == 0"
  58 + mode="list"
  59 + text="暂无待办事项"
  60 + />
  61 + <view class="loginBtn" @click="loginOut">注销信息</view>
49 </view> 62 </view>
50 </view> 63 </view>
51 </template> 64 </template>
52 65
53 <script setup> 66 <script setup>
54 import { ref, reactive } from 'vue' 67 import { ref, reactive } from 'vue'
55 -import { onReady } from '@dcloudio/uni-app' 68 +import { onReady, onShow } from '@dcloudio/uni-app'
  69 +import carCard from '@/components/carCard.vue';
56 import centerLine from '@/components/centerLine.vue'; 70 import centerLine from '@/components/centerLine.vue';
57 import navTop from '@/components/navTop.vue'; 71 import navTop from '@/components/navTop.vue';
58 -import { updateUserInfo, getUserCarInfo } from '@/api/user.js' 72 +import { updateUserInfo, userCancel } from '@/api/user.js'
  73 +import { queryMyList, disposeUser } from '@/api/work.js'
59 import useUserStore from '@/store/modules/user.js' 74 import useUserStore from '@/store/modules/user.js'
60 const { userInfo, Logout } = useUserStore() 75 const { userInfo, Logout } = useUserStore()
61 const carList = ref([]) 76 const carList = ref([])
  77 +const myTotal = ref('0')
62 const queryParams = reactive({ 78 const queryParams = reactive({
63 pageNum: 1, 79 pageNum: 1,
64 - pageSize: 10 80 + pageSize: 20
65 }) 81 })
66 const customStyle = { 82 const customStyle = {
67 height: '80rpx', 83 height: '80rpx',
@@ -108,6 +124,13 @@ const rules = { @@ -108,6 +124,13 @@ const rules = {
108 } 124 }
109 ] 125 ]
110 } 126 }
  127 +// 修改车辆信息
  128 +const updateCarInfo = (id, taskId) => {
  129 + uni.navigateTo({
  130 + url: `/pages/carDetail/carDetail?carInfoId=${id}&taskId=${taskId}`
  131 + })
  132 +}
  133 +
111 // 微信小程序需要在此注册校验规则 134 // 微信小程序需要在此注册校验规则
112 onReady(() => { 135 onReady(() => {
113 userFormRef.value.setRules(rules) 136 userFormRef.value.setRules(rules)
@@ -115,12 +138,13 @@ onReady(() => { @@ -115,12 +138,13 @@ onReady(() => {
115 const loginOut = () => { 138 const loginOut = () => {
116 uni.showModal({ 139 uni.showModal({
117 title: '提示', 140 title: '提示',
118 - content: '是否退出登录', 141 + content: '是否要注销信息 \n1、点击注销后工作人员在七个工作日内像你发送短信确认\n 2、注销后将删除你在该平台的所有信息',
119 success: async (res) => { 142 success: async (res) => {
120 if (res.confirm) { 143 if (res.confirm) {
  144 + await userCancel()
121 await Logout() 145 await Logout()
122 - uni.$u.toast('退出成功')  
123 - uni.navigateTo({ 146 + uni.$u.toast('注销成功')
  147 + uni.redirectTo({
124 url: '/pages/realName/realName' 148 url: '/pages/realName/realName'
125 }) 149 })
126 } else if (res.cancel) { 150 } else if (res.cancel) {
@@ -130,8 +154,25 @@ const loginOut = () => { @@ -130,8 +154,25 @@ const loginOut = () => {
130 }); 154 });
131 } 155 }
132 const getMyList = async () => { 156 const getMyList = async () => {
133 - const { data } = await getUserCarInfo(queryParams)  
134 - carList.value = data.records 157 + const { data } = await queryMyList(queryParams)
  158 + carList.value = data.rows
  159 + myTotal.value = data.total.toString()
  160 + if(myTotal.value !== '0') {
  161 + uni.setTabBarBadge({
  162 + index: 1,
  163 + text: myTotal.value
  164 + })
  165 + }else {
  166 + uni.removeTabBarBadge({
  167 + index: 1
  168 + })
  169 + }
  170 +}
  171 +// 放弃修改
  172 +const dropEdit = async (taskId) => {
  173 + await disposeUser({reregistration:'false'}, taskId)
  174 + uni.$u.toast('已放弃修改')
  175 + getMyList()
135 } 176 }
136 177
137 // 提交方法 178 // 提交方法
@@ -148,7 +189,9 @@ const submit = () => { @@ -148,7 +189,9 @@ const submit = () => {
148 uni.$u.toast('校验失败') 189 uni.$u.toast('校验失败')
149 }); 190 });
150 } 191 }
151 -getMyList() 192 +onShow(() => {
  193 + getMyList()
  194 +})
152 </script> 195 </script>
153 196
154 <style lang="scss" scoped> 197 <style lang="scss" scoped>
1 <template> 1 <template>
2 - <view class="privacy">  
3 - 隐私政策 2 + <view class="myOne">
  3 + <view class="my-div">
  4 + <text class="yhxy">隐私政策</text>
  5 + <view>
  6 + 本应用非常重视用户隐私政策并严格遵守相关的法律规定。请您仔细阅读《隐私政策》后再继续使用。
  7 + 如果您继续使用我们的服务,表示您已经充分阅读和理解我们协议的全部内容。
  8 + </view>
  9 + <view>
  10 + 本小程序尊重并保护所有使用服务用户的个人隐私权。
  11 + 为了给您提供更准确、更优质的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。
  12 + 除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信息对外披露或向第三方提供。
  13 + 本应用会不时更新本隐私权政策。您在同意本应用服务使用协议之时,即视为您已经同意本隐私权政策全部内容。
  14 + </view>
  15 + <view>
  16 + 1. 适用范围
  17 + <view>
  18 + (a) 在您注册本应用小程序帐号时,您根据小程序要求提供的个人注册信息。
  19 + (b) 在您使用本应用网络服务,或访问本应用平台网页时,本应用自动接收并记录的您的浏览器和计算机上的信息,
  20 + 包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据。
  21 + (c) 本应用通过合法途径从商业伙伴处取得的用户个人数据。
  22 + (d) 本应用严禁用户发布不良信息,如裸露、色情和亵渎内容,发布的内容我们会进行审核,一经发现不良信息,会禁用该用户的所有权限,予以封号处理。
  23 + </view>
  24 + </view>
  25 + <view>
  26 + 2. 信息使用
  27 + <view>
  28 + (a) 本应用不会向任何无关第三方提供、出售、出租、分享或交易您的个人登录信息。如果我们存储发生维修或升级,我们会事先发出推送消息来通知您,请您提前允许本应用消息通知。
  29 + (b) 本应用亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何本应用平台用户如从事上述活动,一经发现,本应用有权立即终止与该用户的服务协议。包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据。
  30 + (c) 为服务用户的目的,本应用可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,
  31 + 或者与本应用合作伙伴共享信息以便他们向您发送有关其产品和服务的信息。(后者需要您的事先同意)
  32 +
  33 + </view>
  34 + <view>
  35 + 3. 信息披露
  36 + <view>
  37 + 在如下情况下,本应用将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息:
  38 + (a) 未经您事先同意,我们不会向第三方披露。
  39 + (b) 为提供您所要求的产品和服务,而必须和第三方分享您的个人信息。
  40 + (c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露。
  41 + (d) 如您出现违反中国有关法律、法规或者本应用服务协议或相关规则的情况,需要向第三方披露。
  42 + (e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷
  43 + </view>
  44 + </view>
  45 +
  46 +
  47 + <view>
  48 + 4. 信息存储和交换
  49 + <view>
  50 + 本应用收集的有关您的信息和资料将保存在本应用及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或本应用收集信息和资料所在地的境外并在境外被访问、存储和展示。
  51 + </view>
  52 + </view>
  53 +
  54 +
  55 + <view>
  56 + 5. Cookie的使用
  57 + <view>
  58 + (a) 在您未拒绝接受cookies的情况下,本应用会在您的计算机上设定或取用cookies,以便您能登录或使用依赖于cookies的本应用平台服务或功能。本应用使用cookies可为您提供更加周到的个性化服务,包括推广服务。
  59 + (b) 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。
  60 + 但如果您选择拒绝接受cookies,则您可能无法登录或使用依赖于cookies的本应用网络服务或功能
  61 + (c) 通过本应用所设cookies所取得的有关信息,将适用本政策。
  62 + </view>
  63 + </view>
  64 +
  65 + <view>
  66 + 6.本隐私政策的更改
  67 + <view>
  68 + (a) 如果决定更改隐私政策,我们会在本政策中、本公司网站中以及我们认为适当的位置发布这些更改,以便您了解我们如何收集、使用您的个人信息,哪些人可以访问这些信息,以及在什么情况下我们会透露这些信息。
  69 + (b) 本公司保留随时修改本政策的权利,因此请经常查看。如对本政策作出重大更改,本公司会通过网站通知的形式告知。
  70 + </view>
  71 + </view>
  72 +
  73 + <view>
  74 + 请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是本应用用户名及密码发生泄露,请您立即联络本应用客服,以便本应用采取相应措施。
  75 + </view>
  76 + <view>
  77 + 感谢您花时间了解我们的隐私政策!我们将尽全力保护您的个人信息和合法权益,再次感谢您的信任!
  78 + </view>
  79 +
  80 +
  81 + </view>
  82 + </view>
4 </view> 83 </view>
5 </template> 84 </template>
6 85
7 -<script setup>  
8 -</script> 86 +<script>
  87 + export default {
  88 + data() {
  89 + return {
  90 +
  91 + }
  92 + },
  93 + methods: {
9 94
10 -<style lang="scss" scoped> 95 + }
  96 + }
  97 +</script>
11 98
  99 +<style>
  100 +.myOne{
  101 + width: 100%;
  102 + display: flex;
  103 + justify-content: center;
  104 +}
  105 +.my-div{
  106 + width: 80%;
  107 + margin: auto;
  108 +}
  109 +.yhxy{
  110 + justify-content: center;
  111 + color: black;
  112 + font-size: 40rpx;
  113 + font-weight: 600;
  114 +}
12 </style> 115 </style>
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 </view> 29 </view>
30 30
31 <view class="tip"> 31 <view class="tip">
32 - 未注册或绑定该车型平台的身份证号,将帮你注册新账号,点击提交即代表你同意<text style="color: #3680FE;" @click="goPrivacy">《隐私政策》</text> 32 + 未注册或绑定该平台的身份证号,将帮你注册新账号,点击提交即代表你同意<text style="color: #3680FE;" @click="goPrivacy">《隐私政策》</text>
33 </view> 33 </view>
34 <view class="log-btn" @click="submit">提交</view> 34 <view class="log-btn" @click="submit">提交</view>
35 </view> 35 </view>
@@ -40,40 +40,42 @@ import { reactive, ref } from 'vue'; @@ -40,40 +40,42 @@ import { reactive, ref } from 'vue';
40 import { userWxLogin, updateUserInfo } from '@/api/user.js' 40 import { userWxLogin, updateUserInfo } from '@/api/user.js'
41 import { onReady, onLoad } from '@dcloudio/uni-app' 41 import { onReady, onLoad } from '@dcloudio/uni-app'
42 import useUserStore from '@/store/modules/user.js' 42 import useUserStore from '@/store/modules/user.js'
  43 +import storage from '@/utils/storage.js'
  44 +import { test } from '@/uni_modules/uview-plus';
43 const { userInfo, login, getUser } = useUserStore() 45 const { userInfo, login, getUser } = useUserStore()
44 // 表单引用 46 // 表单引用
45 const logFormRef = ref(null) 47 const logFormRef = ref(null)
46 // 校验规则 48 // 校验规则
47 const rules = { 49 const rules = {
48 nickName: [ 50 nickName: [
49 - { required: true, message: '请输入姓名', trigger: ['blur', 'change'] },  
50 - { min: 2, max: 6, message: '名字应在2到6个字', trigger: ['blur', 'change'] }, 51 + { required: true, message: '请输入姓名', trigger: ['blur'] },
  52 + { min: 2, max: 6, message: '名字应在2到6个字', trigger: ['blur'] },
51 { validator: (rule, value, callback) => { 53 { validator: (rule, value, callback) => {
52 - return uni.$u.test.chinese(value) 54 + return test.chinese(value)
53 }, 55 },
54 message: '请输入中文', 56 message: '请输入中文',
55 // 触发器可以同时用blur和change 57 // 触发器可以同时用blur和change
56 - trigger: ['change','blur'], 58 + trigger: ['blur'],
57 } 59 }
58 ], 60 ],
59 identificationNumber: [ 61 identificationNumber: [
60 - { required: true, message: '请输入身份证号', trigger: ['blur', 'change'] }, 62 + { required: true, message: '请输入身份证号', trigger: ['blur'] },
61 { validator: (rule, value, callback) => { 63 { validator: (rule, value, callback) => {
62 - return uni.$u.test.idCard(value) 64 + return test.idCard(value)
63 }, 65 },
64 message: '身份证号码不正确', 66 message: '身份证号码不正确',
65 // 触发器可以同时用blur和change 67 // 触发器可以同时用blur和change
66 - trigger: ['change','blur'], 68 + trigger: ['blur'],
67 } 69 }
68 ], 70 ],
69 phonenumber: [ 71 phonenumber: [
70 - { required: true, message: '请输入手机号', trigger: ['blur', 'change'] }, 72 + { required: true, message: '请输入手机号', trigger: ['blur'] },
71 { validator: (rule, value, callback) => { 73 { validator: (rule, value, callback) => {
72 - return uni.$u.test.mobile(value) 74 + return test.mobile(value)
73 }, 75 },
74 message: '手机号码不正确', 76 message: '手机号码不正确',
75 // 触发器可以同时用blur和change 77 // 触发器可以同时用blur和change
76 - trigger: ['change','blur'], 78 + trigger: ['blur'],
77 } 79 }
78 ] 80 ]
79 } 81 }
@@ -94,7 +96,8 @@ onLoad((options) => { @@ -94,7 +96,8 @@ onLoad((options) => {
94 uni.login({ 96 uni.login({
95 success: async (loginRes) => { 97 success: async (loginRes) => {
96 await login({code: loginRes.code, type: 0}) 98 await login({code: loginRes.code, type: 0})
97 - const { data } = await getUser() 99 + const { data, roleGroup } = await getUser()
  100 + storage.set('crgx_roleGroup', roleGroup)
98 if(data.identificationNumber !== null) { 101 if(data.identificationNumber !== null) {
99 uni.switchTab({ 102 uni.switchTab({
100 url: '/pages/index/index' 103 url: '/pages/index/index'
@@ -113,6 +116,7 @@ const submit = () => { @@ -113,6 +116,7 @@ const submit = () => {
113 logFormRef.value.validate().then(async valid => { 116 logFormRef.value.validate().then(async valid => {
114 if (valid) { 117 if (valid) {
115 await updateUserInfo(userInfo) 118 await updateUserInfo(userInfo)
  119 + await getUser()
116 uni.$u.toast('登录成功') 120 uni.$u.toast('登录成功')
117 uni.switchTab({ 121 uni.switchTab({
118 url: '/pages/index/index' 122 url: '/pages/index/index'
@@ -3,17 +3,26 @@ @@ -3,17 +3,26 @@
3 <up-navbar placeholder :leftIconSize="0" bgColor="transparent" /> 3 <up-navbar placeholder :leftIconSize="0" bgColor="transparent" />
4 <view class="work_box"> 4 <view class="work_box">
5 <view class="work_list"> 5 <view class="work_list">
6 - <carCard v-for="carItem in carList" :key="carItem.carId" tipContent="待办" :carInfo="carItem"> 6 + <carCard v-for="carItem in List" :key="carItem.taskId" tipContent="待办" :carInfo="carItem">
7 <template #header> 7 <template #header>
8 - <navTop :carNum="carItem.carNum" /> 8 + <navTop :carNum="carItem.licensePlateNumber" />
9 </template> 9 </template>
10 <template #center> 10 <template #center>
11 - <wordInfo :carType="carItem.carType" :userName="carItem.name" :applyTime="carItem.createTime" /> 11 + <wordInfo :phone="carItem.phone" :userName="carItem.name" :company="carItem.sysDeptName" />
12 </template> 12 </template>
13 <template #footer> 13 <template #footer>
14 - <operateList /> 14 + <operateList :carInfo="carItem" @refreshList="getList" />
15 </template> 15 </template>
16 </carCard> 16 </carCard>
  17 + <up-empty
  18 + :show="List.length == 0"
  19 + mode="list"
  20 + text="暂无待办事项"
  21 + />
  22 + </view>
  23 + <!-- 分页器 -->
  24 + <view v-show="List.length > 0">
  25 + <uni-pagination :total="allTotal" v-model="queryParams.pageNum" :pageSize="queryParams.pageSize" @change="getList" />
17 </view> 26 </view>
18 </view> 27 </view>
19 28
@@ -23,7 +32,7 @@ @@ -23,7 +32,7 @@
23 activeColor="#3680FE" 32 activeColor="#3680FE"
24 inactiveColor="#707070" 33 inactiveColor="#707070"
25 > 34 >
26 - <up-tabbar-item text="主页" icon="home" badge="11"></up-tabbar-item> 35 + <up-tabbar-item text="主页" icon="home" :badge="useTabbar.societyTotal"></up-tabbar-item>
27 <up-tabbar-item text="我的" icon="account" @click="goRouter"> 36 <up-tabbar-item text="我的" icon="account" @click="goRouter">
28 <template #active-icon> 37 <template #active-icon>
29 <image style="width: 48rpx;" class="u-page__item__slot-icon" src="@/static/tabbarIcon/my-active.png" mode="widthFix"></image> 38 <image style="width: 48rpx;" class="u-page__item__slot-icon" src="@/static/tabbarIcon/my-active.png" mode="widthFix"></image>
@@ -38,37 +47,47 @@ @@ -38,37 +47,47 @@
38 </template> 47 </template>
39 48
40 <script setup> 49 <script setup>
41 - import { ref } from 'vue'; 50 + import { ref, reactive } from 'vue';
  51 + import { onPullDownRefresh } from '@dcloudio/uni-app'
  52 + import { queryMyList } from '@/api/work.js'
42 import carCard from '@/components/carCard.vue'; 53 import carCard from '@/components/carCard.vue';
43 import navTop from '@/components/navTop.vue'; 54 import navTop from '@/components/navTop.vue';
44 import wordInfo from '@/components/wordInfo.vue'; 55 import wordInfo from '@/components/wordInfo.vue';
45 import operateList from '@/components/operateList.vue'; 56 import operateList from '@/components/operateList.vue';
46 import useTabbarStore from '@/store/modules/tabbar.js' 57 import useTabbarStore from '@/store/modules/tabbar.js'
47 const useTabbar = useTabbarStore() 58 const useTabbar = useTabbarStore()
48 - const carList = ref([  
49 - { carId: 1, carNum: '桂A·66666', carType: '奔驰C级', name: '张三', createTime: '2024-09-08 10:12' },  
50 - { carId: 2, carNum: '桂A·77777', carType: '奔驰C级', name: '李四', createTime: '2024-09-08 10:12' },  
51 - { carId: 3, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
52 - { carId: 4, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
53 - { carId: 5, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
54 - { carId: 6, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
55 - { carId: 7, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
56 - { carId: 8, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
57 - { carId: 9, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
58 - { carId: 10, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
59 - { carId: 11, carNum: '桂A·77777', carType: '梅赛德斯奔驰', name: '王五', createTime: '2024-09-08 10:12' },  
60 - ]) 59 + const List = ref([])
  60 + const allTotal = ref(0)
61 const titleStyle = { 61 const titleStyle = {
62 fontSize: '36rpx', 62 fontSize: '36rpx',
63 color: '#fff', 63 color: '#fff',
64 fontWeight: 500 64 fontWeight: 500
65 } 65 }
  66 + const queryParams = reactive({
  67 + pageNum: 1,
  68 + pageSize: 10
  69 + });
  70 + // 获取待办任务
  71 + const getList = async () => {
  72 + const { data } = await queryMyList(queryParams);
  73 + List.value = data.rows;
  74 + allTotal.value = data.total;
  75 + useTabbar.societyTotal = data.total;
  76 + }
  77 + // 用户下拉刷新
  78 + onPullDownRefresh(async () => {
  79 + queryParams.pageNum = 1
  80 + List.value = []
  81 + await getList()
  82 + uni.stopPullDownRefresh()
  83 + })
66 const goRouter = (index) => { 84 const goRouter = (index) => {
67 useTabbar.societyCurrent = index 85 useTabbar.societyCurrent = index
68 uni.redirectTo({ 86 uni.redirectTo({
69 url: '/pages/societyMy/societyMy' 87 url: '/pages/societyMy/societyMy'
70 }) 88 })
71 } 89 }
  90 + getList()
72 </script> 91 </script>
73 92
74 <style lang="scss" scoped> 93 <style lang="scss" scoped>
@@ -87,6 +106,7 @@ @@ -87,6 +106,7 @@
87 display: flex; 106 display: flex;
88 flex-direction: column; 107 flex-direction: column;
89 gap: 20rpx; 108 gap: 20rpx;
  109 + margin-bottom: 30rpx;
90 } 110 }
91 } 111 }
92 } 112 }
@@ -7,40 +7,75 @@ @@ -7,40 +7,75 @@
7 <text style="color: #fff;">更新实名信息</text> 7 <text style="color: #fff;">更新实名信息</text>
8 </view> 8 </view>
9 <view class="user-box"> 9 <view class="user-box">
10 - <up-form :model="userForm" ref="userFormRef"> 10 + <up-form :model="userInfo" ref="userFormRef">
11 <up-form-item prop="name"> 11 <up-form-item prop="name">
12 - <up-input v-model="userForm.name" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名"> 12 + <up-input v-model="userInfo.nickName" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入真实姓名">
13 <template #prefix> 13 <template #prefix>
14 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image> 14 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/user.png" mode="widthFix"></image>
15 </template> 15 </template>
16 </up-input> 16 </up-input>
17 </up-form-item> 17 </up-form-item>
18 <up-form-item prop="identificationNumber"> 18 <up-form-item prop="identificationNumber">
19 - <up-input v-model="userForm.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号"> 19 + <up-input v-model="userInfo.identificationNumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入身份证号">
20 <template #prefix> 20 <template #prefix>
21 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image> 21 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/IdCard.png" mode="widthFix"></image>
22 </template> 22 </template>
23 </up-input> 23 </up-input>
24 </up-form-item> 24 </up-form-item>
25 <up-form-item prop="phone"> 25 <up-form-item prop="phone">
26 - <up-input v-model="userForm.phone" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入手机号码"> 26 + <up-input v-model="userInfo.phonenumber" shape="circle" border="none" fontSize="28rpx" color="#bbb" :placeholderStyle="placeholderStyle" :customStyle="customStyle" placeholder="请输入手机号码">
27 <template #prefix> 27 <template #prefix>
28 - <image style="width: 32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/phone.png" mode="widthFix"></image> 28 + <image style="width: 32rpx;height:32rpx;margin-right: 18rpx;margin-top: 10rpx;" src="@/static/commonImage/phone.png" mode="widthFix"></image>
29 </template> 29 </template>
30 </up-input> 30 </up-input>
31 </up-form-item> 31 </up-form-item>
32 </up-form> 32 </up-form>
33 </view> 33 </view>
34 34
  35 + <!-- 操作行 -->
  36 + <view class="navList">
  37 + <view class="navItem">
  38 + <image style="width: 48rpx;height: 48rpx;" src="http://bxhd.crgx.net/profile/avatar/2024/10/12/pending_20241012174056A003.png" mode="widthFix" @click="goOrder(0)"></image>
  39 + <text>待处理</text>
  40 + </view>
  41 + <view class="navItem">
  42 + <image style="width: 48rpx;height: 48rpx;" src="http://bxhd.crgx.net/profile/avatar/2024/10/12/processed_20241012173936A002.png" mode="widthFix" @click="goOrder(1)"></image>
  43 + <text>已处理</text>
  44 + </view>
  45 + <view class="navItem">
  46 + <image style="width: 48rpx;height: 48rpx;" src="http://bxhd.crgx.net/profile/avatar/2024/10/12/ongoing_20241012174132A004.png" mode="widthFix" @click="goOrder(2)"></image>
  47 + <text>进行中</text>
  48 + </view>
  49 + <view class="navItem">
  50 + <image style="width: 48rpx;height: 48rpx;" src="http://bxhd.crgx.net/profile/avatar/2024/10/12/deprecated_20241012174204A005.png" mode="widthFix" @click="goOrder(4)"></image>
  51 + <text>已作废</text>
  52 + </view>
  53 + <view class="navItem">
  54 + <image style="width: 48rpx;height: 48rpx;" src="http://bxhd.crgx.net/profile/avatar/2024/10/12/ended_20241012174234A006.png" mode="widthFix" @click="goOrder(3)"></image>
  55 + <text>已完结</text>
  56 + </view>
  57 + </view>
  58 +
  59 +
  60 + <view class="line_title">
  61 + <text class="left_title">状态设置</text>
  62 + </view>
  63 +
  64 + <view class="status">
  65 + <view class="statusBtn" :class="{active: userInfo.jobStatus === '0'}" @click="changeStatus('0')">在岗</view>
  66 + <view class="statusBtn" :class="{active: userInfo.jobStatus === '1'}" @click="changeStatus('1')">离岗</view>
  67 + </view>
  68 +
35 <view class="loginBtn" @click="loginOut">退出登录</view> 69 <view class="loginBtn" @click="loginOut">退出登录</view>
36 </view> 70 </view>
  71 +
37 <!-- 底部导航栏 --> 72 <!-- 底部导航栏 -->
38 <up-tabbar 73 <up-tabbar
39 :value="useTabbar.societyCurrent" 74 :value="useTabbar.societyCurrent"
40 activeColor="#3680FE" 75 activeColor="#3680FE"
41 inactiveColor="#707070" 76 inactiveColor="#707070"
42 > 77 >
43 - <up-tabbar-item text="主页" icon="home" @click="goRouter"></up-tabbar-item> 78 + <up-tabbar-item text="主页" icon="home" :badge="useTabbar.societyTotal" @click="goRouter"></up-tabbar-item>
44 <up-tabbar-item text="我的" icon="account"></up-tabbar-item> 79 <up-tabbar-item text="我的" icon="account"></up-tabbar-item>
45 </up-tabbar> 80 </up-tabbar>
46 </view> 81 </view>
@@ -48,16 +83,13 @@ @@ -48,16 +83,13 @@
48 83
49 <script setup> 84 <script setup>
50 import { ref } from 'vue' 85 import { ref } from 'vue'
  86 +import { updateUserInfo } from '@/api/user.js'
51 import { onReady } from '@dcloudio/uni-app' 87 import { onReady } from '@dcloudio/uni-app'
52 import useTabbarStore from '@/store/modules/tabbar.js' 88 import useTabbarStore from '@/store/modules/tabbar.js'
  89 +import useUserStore from '@/store/modules/user.js'
  90 +const { userInfo, Logout, getUser } = useUserStore()
53 const useTabbar = useTabbarStore() 91 const useTabbar = useTabbarStore()
54 const showNotice = ref(true) 92 const showNotice = ref(true)
55 -// 用户参数  
56 -const userForm = ref({  
57 - name: '',  
58 - identificationNumber: '',  
59 - phone: ''  
60 -})  
61 const customStyle = { 93 const customStyle = {
62 height: '80rpx', 94 height: '80rpx',
63 backgroundColor: '#F9F9F9', 95 backgroundColor: '#F9F9F9',
@@ -108,7 +140,27 @@ onReady(() => { @@ -108,7 +140,27 @@ onReady(() => {
108 userFormRef.value.setRules(rules) 140 userFormRef.value.setRules(rules)
109 }) 141 })
110 const loginOut = () => { 142 const loginOut = () => {
  143 + uni.showModal({
  144 + title: '提示',
  145 + content: '是否退出登录',
  146 + success: async (res) => {
  147 + if (res.confirm) {
  148 + await Logout()
  149 + uni.$u.toast('退出成功')
  150 + uni.redirectTo({
  151 + url: '/pages/login/login'
  152 + })
  153 + } else if (res.cancel) {
  154 + console.log('用户点击取消');
  155 + }
  156 + }
  157 + });
  158 +}
111 159
  160 +const goOrder = (index) => {
  161 + uni.navigateTo({
  162 + url: '/pages/societyOrder/societyOrder?type=' + index
  163 + })
112 } 164 }
113 165
114 const goRouter = (index) => { 166 const goRouter = (index) => {
@@ -117,11 +169,22 @@ const goRouter = (index) => { @@ -117,11 +169,22 @@ const goRouter = (index) => {
117 url: '/pages/societyHome/societyHome' 169 url: '/pages/societyHome/societyHome'
118 }) 170 })
119 } 171 }
  172 +
  173 +// 设置在岗状态
  174 +const changeStatus = async (status) => {
  175 + userInfo.jobStatus = status
  176 + await updateUserInfo(userInfo)
  177 + await getUser()
  178 + uni.$u.toast('更新成功')
  179 +}
  180 +
120 // 提交方法 181 // 提交方法
121 const submit = () => { 182 const submit = () => {
122 userFormRef.value.validate().then(async valid => { 183 userFormRef.value.validate().then(async valid => {
123 if (valid) { 184 if (valid) {
124 - uni.$u.toast('登录成功') 185 + await updateUserInfo(userInfo)
  186 + await getUser()
  187 + uni.$u.toast('更新成功')
125 } else { 188 } else {
126 uni.$u.toast('校验失败') 189 uni.$u.toast('校验失败')
127 } 190 }
@@ -182,6 +245,51 @@ const submit = () => { @@ -182,6 +245,51 @@ const submit = () => {
182 } 245 }
183 } 246 }
184 } 247 }
  248 +
  249 + .navList{
  250 + display: flex;
  251 + align-items: center;
  252 + justify-content: space-between;
  253 + padding: 25rpx 33rpx;
  254 + background: #FFFFFF;
  255 + box-shadow: 0rpx 8rpx 40rpx 0rpx rgba(0,0,0,0.06);
  256 + border-radius: 40rpx;
  257 + margin-bottom: 40rpx;
  258 + .navItem{
  259 + display: flex;
  260 + flex-direction: column;
  261 + align-items: center;
  262 + gap: 10rpx;
  263 + font-size: 24rpx;
  264 + line-height: 32rpx;
  265 + color: #333;
  266 + }
  267 + }
  268 +
  269 + .status{
  270 + display: flex;
  271 + align-items: center;
  272 + justify-content: space-between;
  273 + padding: 40rpx 46rpx;
  274 + background: #FFFFFF;
  275 + box-shadow: 0rpx 8rpx 40rpx 0rpx rgba(10,22,44,0.06);
  276 + border-radius: 40rpx;
  277 + .statusBtn{
  278 + width: 280rpx;
  279 + height: 80rpx;
  280 + text-align: center;
  281 + line-height: 80rpx;
  282 + color: #999;
  283 + background: #FFFFFF;
  284 + border-radius: 200rpx;
  285 + border: 2rpx solid #BBBBBB;
  286 + &.active{
  287 + color: #fff;
  288 + background: #75A8FF;
  289 + }
  290 + }
  291 + }
  292 +
185 .loginBtn{ 293 .loginBtn{
186 width: 100%; 294 width: 100%;
187 height: 80rpx; 295 height: 80rpx;
  1 +<template>
  2 + <view class="company_container">
  3 + <up-navbar placeholder leftIconColor="#fff" autoBack bgColor="transparent" />
  4 + <view class="work_box">
  5 + <view class="work_list">
  6 + <carCard v-for="carItem in List" :key="carItem.taskId" :tipContent="tipContent" :carInfo="carItem">
  7 + <template #header>
  8 + <navTop :carNum="carItem.licensePlateNumber" />
  9 + </template>
  10 + <template #center>
  11 + <wordInfo :phone="carItem.phone" :userName="carItem.name" :company="carItem.sysDeptName" />
  12 + </template>
  13 + <template #footer>
  14 + <operateList v-if="typeId === 0" :carInfo="carItem" @refreshList="getList"/>
  15 + <view style="display: flex;align-items: center;gap: 30rpx;">
  16 + <view class="btn" @click="lookDetail(carItem.businessKey)">查看详情</view>
  17 + <view v-if="typeId === 3" class="btn" @click="lookFeedback(carItem.processInstanceId)">查看回馈</view>
  18 + <view v-if="typeId === 4" class="btn" @click="lookRemark(carItem.processInstanceId)">查看备注</view>
  19 + </view>
  20 + </template>
  21 + </carCard>
  22 + <up-empty
  23 + :show="List.length == 0"
  24 + mode="list"
  25 + text="暂无待办事项"
  26 + />
  27 + </view>
  28 + <!-- 分页器 -->
  29 + <view v-show="List.length > 0">
  30 + <uni-pagination :total="allTotal" v-model="queryParams.pageNum" :pageSize="queryParams.pageSize" @change="getList(typeId)"/>
  31 + </view>
  32 + </view>
  33 + <!-- 保单回馈 -->
  34 + <up-modal :show="showFeedback" title="保单回馈" @confirm="showFeedback = false" >
  35 + <up-parse :content="feedbakcForm.message"></up-parse>
  36 + </up-modal>
  37 + <!-- 作废备注 -->
  38 + <up-modal :show="showDefeat" title="作废备注" @confirm="showDefeat = false" >
  39 + <up-parse :content="defeatForm.message"></up-parse>
  40 + </up-modal>
  41 + </view>
  42 +</template>
  43 +
  44 +<script setup>
  45 + import { ref, reactive } from 'vue';
  46 + import { onLoad, onPullDownRefresh } from '@dcloudio/uni-app'
  47 + import { queryMyList, queryProcessedList, queryOngoingList, queryEndedList, queryDeprecatedList, queryDefeatContent, queryResult } from '@/api/work.js'
  48 + import carCard from '@/components/carCard.vue';
  49 + import navTop from '@/components/navTop.vue';
  50 + import wordInfo from '@/components/wordInfo.vue';
  51 + import operateList from '@/components/operateList.vue';
  52 + const List = ref([])
  53 + const allTotal = ref(0)
  54 + const typeId = ref(0)
  55 + const showFeedback = ref(false)
  56 + const showDefeat = ref(false)
  57 + const feedbakcForm = ref({
  58 + policyNumber: '',
  59 + message: ''
  60 + })
  61 + const defeatForm = ref({
  62 + message: ''
  63 + })
  64 + const titleStyle = {
  65 + fontSize: '36rpx',
  66 + color: '#fff',
  67 + fontWeight: 500
  68 + }
  69 + const queryParams = reactive({
  70 + pageNum: 1,
  71 + pageSize: 10
  72 + });
  73 + const tipContent = ref('')
  74 + // 初始加载数据
  75 + onLoad((options) => {
  76 + typeId.value = Number(options.type)
  77 + getList(typeId.value)
  78 + })
  79 +
  80 + // 用户下拉刷新
  81 + onPullDownRefresh(async () => {
  82 + queryParams.pageNum = 1
  83 + List.value = []
  84 + getList(typeId.value)
  85 + })
  86 +
  87 + const getList = (id) => {
  88 + //调用获取数据方法
  89 + switch (id) {
  90 + case 0:
  91 + tipContent.value = '待处理'
  92 + queryMyList(queryParams).then(res => {
  93 + List.value = res.data.rows
  94 + allTotal.value = res.data.total
  95 + uni.stopPullDownRefresh()
  96 + })
  97 + break;
  98 + case 1:
  99 + tipContent.value = '已处理'
  100 + queryProcessedList(queryParams).then(res => {
  101 + List.value = res.rows
  102 + allTotal.value = res.total
  103 + uni.stopPullDownRefresh()
  104 + })
  105 + break;
  106 + case 2:
  107 + tipContent.value = '进行中'
  108 + queryOngoingList(queryParams).then(res => {
  109 + List.value = res.rows
  110 + allTotal.value = res.total
  111 + uni.stopPullDownRefresh()
  112 + })
  113 + break;
  114 + case 3:
  115 + tipContent.value = '已完结'
  116 + queryEndedList(queryParams).then(res => {
  117 + List.value = res.rows
  118 + allTotal.value = res.total
  119 + uni.stopPullDownRefresh()
  120 + })
  121 + break;
  122 + case 4:
  123 + tipContent.value = '已作废'
  124 + queryDeprecatedList(queryParams).then(res => {
  125 + List.value = res.rows
  126 + allTotal.value = res.total
  127 + uni.stopPullDownRefresh()
  128 + })
  129 + break;
  130 + }
  131 + }
  132 +
  133 + // 查看详情
  134 + const lookDetail = (id) => {
  135 + uni.navigateTo({
  136 + url: `/pages/carDetail/carDetail?carInfoId=${id}`
  137 + })
  138 + }
  139 + // 查看回馈
  140 + const lookFeedback = (processInstanceId) => {
  141 + queryResult({ processInstanceId}).then((res) => {
  142 + feedbakcForm.value.policyNumber = res?.data?.policyNumber;
  143 + feedbakcForm.value.message = res?.data?.message;
  144 + showFeedback.value = true;
  145 + });
  146 + }
  147 + // 查看备注
  148 + const lookRemark = (processInstanceId) => {
  149 + queryDefeatContent({ processInstanceId}).then((res) => {
  150 + defeatForm.value.message = res?.data?.message;
  151 + showDefeat.value = true;
  152 + });
  153 + }
  154 +</script>
  155 +
  156 +<style lang="scss" scoped>
  157 +.company_container{
  158 + width: 100%;
  159 + height: 100vh;
  160 + background: url('http://bxhd.crgx.net/profile/avatar/2024/09/25/bg-index_20240925113012A004.png') no-repeat;
  161 + background-size: 100% 100%;
  162 + overflow: hidden;
  163 + .work_box{
  164 + padding: 20rpx 30rpx;
  165 + height: calc(100vh - 288rpx);
  166 + background-color: #F8F9FF;
  167 + overflow-y: scroll;
  168 + .work_list{
  169 + display: flex;
  170 + flex-direction: column;
  171 + gap: 20rpx;
  172 + margin-bottom: 30rpx;
  173 + }
  174 + }
  175 +}
  176 +.btn {
  177 + width: 100rpx;
  178 + height: 40rpx;
  179 + line-height: 40rpx;
  180 + font-size: 24rpx;
  181 + text-align: center;
  182 + color: #3c9cff;
  183 +}
  184 +</style>
不能预览此文件类型
@@ -6,7 +6,8 @@ const useTabbarStore = defineStore('tabbar', { @@ -6,7 +6,8 @@ const useTabbarStore = defineStore('tabbar', {
6 return { 6 return {
7 employeeCurrent: 0, 7 employeeCurrent: 0,
8 societyCurrent: 0, 8 societyCurrent: 0,
9 - companyTotal: 0 9 + companyTotal: 0,
  10 + societyTotal: 0
10 } 11 }
11 } 12 }
12 }) 13 })
@@ -2,14 +2,14 @@ import { defineStore } from 'pinia' @@ -2,14 +2,14 @@ import { defineStore } from 'pinia'
2 import storage from '@/utils/storage.js' 2 import storage from '@/utils/storage.js'
3 import { userWxLogin, getUserInfo, userLogin } from '@/api/user.js' 3 import { userWxLogin, getUserInfo, userLogin } from '@/api/user.js'
4 4
5 -  
6 const useUserStore = defineStore('user', { 5 const useUserStore = defineStore('user', {
7 unistorage: true, // 是否持久化到内存 6 unistorage: true, // 是否持久化到内存
8 state: () => { 7 state: () => {
9 return { 8 return {
10 token: storage.get('crgx_token', ''), 9 token: storage.get('crgx_token', ''),
11 userInfo: storage.get('crgx_userInfo', null), 10 userInfo: storage.get('crgx_userInfo', null),
12 - isShowAdver: true 11 + roleGroup: storage.get('crgx_roleGroup', null),
  12 + isShowAdver: false
13 } 13 }
14 }, 14 },
15 actions: { 15 actions: {
@@ -54,9 +54,10 @@ const useUserStore = defineStore('user', { @@ -54,9 +54,10 @@ const useUserStore = defineStore('user', {
54 const userInfo = response.data 54 const userInfo = response.data
55 // 过期时间30天 55 // 过期时间30天
56 const expiryTime = 30 * 86400 56 const expiryTime = 30 * 86400
57 - storage.set('crgx_userInfo', userInfo, expiryTime)  
58 // 记录到store全局变量 57 // 记录到store全局变量
59 this.userInfo = userInfo 58 this.userInfo = userInfo
  59 + this.userInfo.nickName = uni.$u.trim(userInfo.nickName, 'all')
  60 + storage.set('crgx_userInfo', this.userInfo, expiryTime)
60 resolve(response) 61 resolve(response)
61 }) 62 })
62 .catch(reject) 63 .catch(reject)
  1 +## 2.0.10(2024-06-07)
  2 +- 优化 uni-app x 中,size 属性的类型
  3 +## 2.0.9(2024-01-12)
  4 +fix: 修复图标大小默认值错误的问题
  5 +## 2.0.8(2023-12-14)
  6 +- 修复 项目未使用 ts 情况下,打包报错的bug
  7 +## 2.0.7(2023-12-14)
  8 +- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug
  9 +## 2.0.6(2023-12-11)
  10 +- 优化 兼容老版本icon类型,如 top ,bottom 等
  11 +## 2.0.5(2023-12-11)
  12 +- 优化 兼容老版本icon类型,如 top ,bottom 等
  13 +## 2.0.4(2023-12-06)
  14 +- 优化 uni-app x 下示例项目图标排序
  15 +## 2.0.3(2023-12-06)
  16 +- 修复 nvue下引入组件报错的bug
  17 +## 2.0.2(2023-12-05)
  18 +-优化 size 属性支持单位
  19 +## 2.0.1(2023-12-05)
  20 +- 新增 uni-app x 支持定义图标
  21 +## 1.3.5(2022-01-24)
  22 +- 优化 size 属性可以传入不带单位的字符串数值
  23 +## 1.3.4(2022-01-24)
  24 +- 优化 size 支持其他单位
  25 +## 1.3.3(2022-01-17)
  26 +- 修复 nvue 有些图标不显示的bug,兼容老版本图标
  27 +## 1.3.2(2021-12-01)
  28 +- 优化 示例可复制图标名称
  29 +## 1.3.1(2021-11-23)
  30 +- 优化 兼容旧组件 type 值
  31 +## 1.3.0(2021-11-19)
  32 +- 新增 更多图标
  33 +- 优化 自定义图标使用方式
  34 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
  35 +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons)
  36 +## 1.1.7(2021-11-08)
  37 +## 1.2.0(2021-07-30)
  38 +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
  39 +## 1.1.5(2021-05-12)
  40 +- 新增 组件示例地址
  41 +## 1.1.4(2021-02-05)
  42 +- 调整为uni_modules目录规范
  1 +<template>
  2 + <text class="uni-icons" :style="styleObj">
  3 + <slot>{{unicode}}</slot>
  4 + </text>
  5 +</template>
  6 +
  7 +<script>
  8 + import { fontData, IconsDataItem } from './uniicons_file'
  9 +
  10 + /**
  11 + * Icons 图标
  12 + * @description 用于展示 icon 图标
  13 + * @tutorial https://ext.dcloud.net.cn/plugin?id=28
  14 + * @property {Number,String} size 图标大小
  15 + * @property {String} type 图标图案,参考示例
  16 + * @property {String} color 图标颜色
  17 + * @property {String} customPrefix 自定义图标
  18 + * @event {Function} click 点击 Icon 触发事件
  19 + */
  20 + export default {
  21 + name: "uni-icons",
  22 + props: {
  23 + type: {
  24 + type: String,
  25 + default: ''
  26 + },
  27 + color: {
  28 + type: String,
  29 + default: '#333333'
  30 + },
  31 + size: {
  32 + type: [Number, String],
  33 + default: 16
  34 + },
  35 + fontFamily: {
  36 + type: String,
  37 + default: ''
  38 + }
  39 + },
  40 + data() {
  41 + return {};
  42 + },
  43 + computed: {
  44 + unicode() : string {
  45 + let codes = fontData.find((item : IconsDataItem) : boolean => { return item.font_class == this.type })
  46 + if (codes !== null) {
  47 + return codes.unicode
  48 + }
  49 + return ''
  50 + },
  51 + iconSize() : string {
  52 + const size = this.size
  53 + if (typeof size == 'string') {
  54 + const reg = /^[0-9]*$/g
  55 + return reg.test(size as string) ? '' + size + 'px' : '' + size;
  56 + // return '' + this.size
  57 + }
  58 + return this.getFontSize(size as number)
  59 + },
  60 + styleObj() : UTSJSONObject {
  61 + if (this.fontFamily !== '') {
  62 + return { color: this.color, fontSize: this.iconSize, fontFamily: this.fontFamily }
  63 + }
  64 + return { color: this.color, fontSize: this.iconSize }
  65 + }
  66 + },
  67 + created() { },
  68 + methods: {
  69 + /**
  70 + * 字体大小
  71 + */
  72 + getFontSize(size : number) : string {
  73 + return size + 'px';
  74 + },
  75 + },
  76 + }
  77 +</script>
  78 +
  79 +<style scoped>
  80 + @font-face {
  81 + font-family: UniIconsFontFamily;
  82 + src: url('./uniicons.ttf');
  83 + }
  84 +
  85 + .uni-icons {
  86 + font-family: UniIconsFontFamily;
  87 + font-size: 18px;
  88 + font-style: normal;
  89 + color: #333;
  90 + }
  91 +</style>
  1 +<template>
  2 + <!-- #ifdef APP-NVUE -->
  3 + <text :style="styleObj" class="uni-icons" @click="_onClick">{{unicode}}</text>
  4 + <!-- #endif -->
  5 + <!-- #ifndef APP-NVUE -->
  6 + <text :style="styleObj" class="uni-icons" :class="['uniui-'+type,customPrefix,customPrefix?type:'']" @click="_onClick">
  7 + <slot></slot>
  8 + </text>
  9 + <!-- #endif -->
  10 +</template>
  11 +
  12 +<script>
  13 + import { fontData } from './uniicons_file_vue.js';
  14 +
  15 + const getVal = (val) => {
  16 + const reg = /^[0-9]*$/g
  17 + return (typeof val === 'number' || reg.test(val)) ? val + 'px' : val;
  18 + }
  19 +
  20 + // #ifdef APP-NVUE
  21 + var domModule = weex.requireModule('dom');
  22 + import iconUrl from './uniicons.ttf'
  23 + domModule.addRule('fontFace', {
  24 + 'fontFamily': "uniicons",
  25 + 'src': "url('" + iconUrl + "')"
  26 + });
  27 + // #endif
  28 +
  29 + /**
  30 + * Icons 图标
  31 + * @description 用于展示 icons 图标
  32 + * @tutorial https://ext.dcloud.net.cn/plugin?id=28
  33 + * @property {Number} size 图标大小
  34 + * @property {String} type 图标图案,参考示例
  35 + * @property {String} color 图标颜色
  36 + * @property {String} customPrefix 自定义图标
  37 + * @event {Function} click 点击 Icon 触发事件
  38 + */
  39 + export default {
  40 + name: 'UniIcons',
  41 + emits: ['click'],
  42 + props: {
  43 + type: {
  44 + type: String,
  45 + default: ''
  46 + },
  47 + color: {
  48 + type: String,
  49 + default: '#333333'
  50 + },
  51 + size: {
  52 + type: [Number, String],
  53 + default: 16
  54 + },
  55 + customPrefix: {
  56 + type: String,
  57 + default: ''
  58 + },
  59 + fontFamily: {
  60 + type: String,
  61 + default: ''
  62 + }
  63 + },
  64 + data() {
  65 + return {
  66 + icons: fontData
  67 + }
  68 + },
  69 + computed: {
  70 + unicode() {
  71 + let code = this.icons.find(v => v.font_class === this.type)
  72 + if (code) {
  73 + return code.unicode
  74 + }
  75 + return ''
  76 + },
  77 + iconSize() {
  78 + return getVal(this.size)
  79 + },
  80 + styleObj() {
  81 + if (this.fontFamily !== '') {
  82 + return `color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`
  83 + }
  84 + return `color: ${this.color}; font-size: ${this.iconSize};`
  85 + }
  86 + },
  87 + methods: {
  88 + _onClick() {
  89 + this.$emit('click')
  90 + }
  91 + }
  92 + }
  93 +</script>
  94 +
  95 +<style lang="scss">
  96 + /* #ifndef APP-NVUE */
  97 + @import './uniicons.css';
  98 +
  99 + @font-face {
  100 + font-family: uniicons;
  101 + src: url('./uniicons.ttf');
  102 + }
  103 +
  104 + /* #endif */
  105 + .uni-icons {
  106 + font-family: uniicons;
  107 + text-decoration: none;
  108 + text-align: center;
  109 + }
  110 +</style>
  1 +
  2 +.uniui-cart-filled:before {
  3 + content: "\e6d0";
  4 +}
  5 +
  6 +.uniui-gift-filled:before {
  7 + content: "\e6c4";
  8 +}
  9 +
  10 +.uniui-color:before {
  11 + content: "\e6cf";
  12 +}
  13 +
  14 +.uniui-wallet:before {
  15 + content: "\e6b1";
  16 +}
  17 +
  18 +.uniui-settings-filled:before {
  19 + content: "\e6ce";
  20 +}
  21 +
  22 +.uniui-auth-filled:before {
  23 + content: "\e6cc";
  24 +}
  25 +
  26 +.uniui-shop-filled:before {
  27 + content: "\e6cd";
  28 +}
  29 +
  30 +.uniui-staff-filled:before {
  31 + content: "\e6cb";
  32 +}
  33 +
  34 +.uniui-vip-filled:before {
  35 + content: "\e6c6";
  36 +}
  37 +
  38 +.uniui-plus-filled:before {
  39 + content: "\e6c7";
  40 +}
  41 +
  42 +.uniui-folder-add-filled:before {
  43 + content: "\e6c8";
  44 +}
  45 +
  46 +.uniui-color-filled:before {
  47 + content: "\e6c9";
  48 +}
  49 +
  50 +.uniui-tune-filled:before {
  51 + content: "\e6ca";
  52 +}
  53 +
  54 +.uniui-calendar-filled:before {
  55 + content: "\e6c0";
  56 +}
  57 +
  58 +.uniui-notification-filled:before {
  59 + content: "\e6c1";
  60 +}
  61 +
  62 +.uniui-wallet-filled:before {
  63 + content: "\e6c2";
  64 +}
  65 +
  66 +.uniui-medal-filled:before {
  67 + content: "\e6c3";
  68 +}
  69 +
  70 +.uniui-fire-filled:before {
  71 + content: "\e6c5";
  72 +}
  73 +
  74 +.uniui-refreshempty:before {
  75 + content: "\e6bf";
  76 +}
  77 +
  78 +.uniui-location-filled:before {
  79 + content: "\e6af";
  80 +}
  81 +
  82 +.uniui-person-filled:before {
  83 + content: "\e69d";
  84 +}
  85 +
  86 +.uniui-personadd-filled:before {
  87 + content: "\e698";
  88 +}
  89 +
  90 +.uniui-arrowthinleft:before {
  91 + content: "\e6d2";
  92 +}
  93 +
  94 +.uniui-arrowthinup:before {
  95 + content: "\e6d3";
  96 +}
  97 +
  98 +.uniui-arrowthindown:before {
  99 + content: "\e6d4";
  100 +}
  101 +
  102 +.uniui-back:before {
  103 + content: "\e6b9";
  104 +}
  105 +
  106 +.uniui-forward:before {
  107 + content: "\e6ba";
  108 +}
  109 +
  110 +.uniui-arrow-right:before {
  111 + content: "\e6bb";
  112 +}
  113 +
  114 +.uniui-arrow-left:before {
  115 + content: "\e6bc";
  116 +}
  117 +
  118 +.uniui-arrow-up:before {
  119 + content: "\e6bd";
  120 +}
  121 +
  122 +.uniui-arrow-down:before {
  123 + content: "\e6be";
  124 +}
  125 +
  126 +.uniui-arrowthinright:before {
  127 + content: "\e6d1";
  128 +}
  129 +
  130 +.uniui-down:before {
  131 + content: "\e6b8";
  132 +}
  133 +
  134 +.uniui-bottom:before {
  135 + content: "\e6b8";
  136 +}
  137 +
  138 +.uniui-arrowright:before {
  139 + content: "\e6d5";
  140 +}
  141 +
  142 +.uniui-right:before {
  143 + content: "\e6b5";
  144 +}
  145 +
  146 +.uniui-up:before {
  147 + content: "\e6b6";
  148 +}
  149 +
  150 +.uniui-top:before {
  151 + content: "\e6b6";
  152 +}
  153 +
  154 +.uniui-left:before {
  155 + content: "\e6b7";
  156 +}
  157 +
  158 +.uniui-arrowup:before {
  159 + content: "\e6d6";
  160 +}
  161 +
  162 +.uniui-eye:before {
  163 + content: "\e651";
  164 +}
  165 +
  166 +.uniui-eye-filled:before {
  167 + content: "\e66a";
  168 +}
  169 +
  170 +.uniui-eye-slash:before {
  171 + content: "\e6b3";
  172 +}
  173 +
  174 +.uniui-eye-slash-filled:before {
  175 + content: "\e6b4";
  176 +}
  177 +
  178 +.uniui-info-filled:before {
  179 + content: "\e649";
  180 +}
  181 +
  182 +.uniui-reload:before {
  183 + content: "\e6b2";
  184 +}
  185 +
  186 +.uniui-micoff-filled:before {
  187 + content: "\e6b0";
  188 +}
  189 +
  190 +.uniui-map-pin-ellipse:before {
  191 + content: "\e6ac";
  192 +}
  193 +
  194 +.uniui-map-pin:before {
  195 + content: "\e6ad";
  196 +}
  197 +
  198 +.uniui-location:before {
  199 + content: "\e6ae";
  200 +}
  201 +
  202 +.uniui-starhalf:before {
  203 + content: "\e683";
  204 +}
  205 +
  206 +.uniui-star:before {
  207 + content: "\e688";
  208 +}
  209 +
  210 +.uniui-star-filled:before {
  211 + content: "\e68f";
  212 +}
  213 +
  214 +.uniui-calendar:before {
  215 + content: "\e6a0";
  216 +}
  217 +
  218 +.uniui-fire:before {
  219 + content: "\e6a1";
  220 +}
  221 +
  222 +.uniui-medal:before {
  223 + content: "\e6a2";
  224 +}
  225 +
  226 +.uniui-font:before {
  227 + content: "\e6a3";
  228 +}
  229 +
  230 +.uniui-gift:before {
  231 + content: "\e6a4";
  232 +}
  233 +
  234 +.uniui-link:before {
  235 + content: "\e6a5";
  236 +}
  237 +
  238 +.uniui-notification:before {
  239 + content: "\e6a6";
  240 +}
  241 +
  242 +.uniui-staff:before {
  243 + content: "\e6a7";
  244 +}
  245 +
  246 +.uniui-vip:before {
  247 + content: "\e6a8";
  248 +}
  249 +
  250 +.uniui-folder-add:before {
  251 + content: "\e6a9";
  252 +}
  253 +
  254 +.uniui-tune:before {
  255 + content: "\e6aa";
  256 +}
  257 +
  258 +.uniui-auth:before {
  259 + content: "\e6ab";
  260 +}
  261 +
  262 +.uniui-person:before {
  263 + content: "\e699";
  264 +}
  265 +
  266 +.uniui-email-filled:before {
  267 + content: "\e69a";
  268 +}
  269 +
  270 +.uniui-phone-filled:before {
  271 + content: "\e69b";
  272 +}
  273 +
  274 +.uniui-phone:before {
  275 + content: "\e69c";
  276 +}
  277 +
  278 +.uniui-email:before {
  279 + content: "\e69e";
  280 +}
  281 +
  282 +.uniui-personadd:before {
  283 + content: "\e69f";
  284 +}
  285 +
  286 +.uniui-chatboxes-filled:before {
  287 + content: "\e692";
  288 +}
  289 +
  290 +.uniui-contact:before {
  291 + content: "\e693";
  292 +}
  293 +
  294 +.uniui-chatbubble-filled:before {
  295 + content: "\e694";
  296 +}
  297 +
  298 +.uniui-contact-filled:before {
  299 + content: "\e695";
  300 +}
  301 +
  302 +.uniui-chatboxes:before {
  303 + content: "\e696";
  304 +}
  305 +
  306 +.uniui-chatbubble:before {
  307 + content: "\e697";
  308 +}
  309 +
  310 +.uniui-upload-filled:before {
  311 + content: "\e68e";
  312 +}
  313 +
  314 +.uniui-upload:before {
  315 + content: "\e690";
  316 +}
  317 +
  318 +.uniui-weixin:before {
  319 + content: "\e691";
  320 +}
  321 +
  322 +.uniui-compose:before {
  323 + content: "\e67f";
  324 +}
  325 +
  326 +.uniui-qq:before {
  327 + content: "\e680";
  328 +}
  329 +
  330 +.uniui-download-filled:before {
  331 + content: "\e681";
  332 +}
  333 +
  334 +.uniui-pyq:before {
  335 + content: "\e682";
  336 +}
  337 +
  338 +.uniui-sound:before {
  339 + content: "\e684";
  340 +}
  341 +
  342 +.uniui-trash-filled:before {
  343 + content: "\e685";
  344 +}
  345 +
  346 +.uniui-sound-filled:before {
  347 + content: "\e686";
  348 +}
  349 +
  350 +.uniui-trash:before {
  351 + content: "\e687";
  352 +}
  353 +
  354 +.uniui-videocam-filled:before {
  355 + content: "\e689";
  356 +}
  357 +
  358 +.uniui-spinner-cycle:before {
  359 + content: "\e68a";
  360 +}
  361 +
  362 +.uniui-weibo:before {
  363 + content: "\e68b";
  364 +}
  365 +
  366 +.uniui-videocam:before {
  367 + content: "\e68c";
  368 +}
  369 +
  370 +.uniui-download:before {
  371 + content: "\e68d";
  372 +}
  373 +
  374 +.uniui-help:before {
  375 + content: "\e679";
  376 +}
  377 +
  378 +.uniui-navigate-filled:before {
  379 + content: "\e67a";
  380 +}
  381 +
  382 +.uniui-plusempty:before {
  383 + content: "\e67b";
  384 +}
  385 +
  386 +.uniui-smallcircle:before {
  387 + content: "\e67c";
  388 +}
  389 +
  390 +.uniui-minus-filled:before {
  391 + content: "\e67d";
  392 +}
  393 +
  394 +.uniui-micoff:before {
  395 + content: "\e67e";
  396 +}
  397 +
  398 +.uniui-closeempty:before {
  399 + content: "\e66c";
  400 +}
  401 +
  402 +.uniui-clear:before {
  403 + content: "\e66d";
  404 +}
  405 +
  406 +.uniui-navigate:before {
  407 + content: "\e66e";
  408 +}
  409 +
  410 +.uniui-minus:before {
  411 + content: "\e66f";
  412 +}
  413 +
  414 +.uniui-image:before {
  415 + content: "\e670";
  416 +}
  417 +
  418 +.uniui-mic:before {
  419 + content: "\e671";
  420 +}
  421 +
  422 +.uniui-paperplane:before {
  423 + content: "\e672";
  424 +}
  425 +
  426 +.uniui-close:before {
  427 + content: "\e673";
  428 +}
  429 +
  430 +.uniui-help-filled:before {
  431 + content: "\e674";
  432 +}
  433 +
  434 +.uniui-paperplane-filled:before {
  435 + content: "\e675";
  436 +}
  437 +
  438 +.uniui-plus:before {
  439 + content: "\e676";
  440 +}
  441 +
  442 +.uniui-mic-filled:before {
  443 + content: "\e677";
  444 +}
  445 +
  446 +.uniui-image-filled:before {
  447 + content: "\e678";
  448 +}
  449 +
  450 +.uniui-locked-filled:before {
  451 + content: "\e668";
  452 +}
  453 +
  454 +.uniui-info:before {
  455 + content: "\e669";
  456 +}
  457 +
  458 +.uniui-locked:before {
  459 + content: "\e66b";
  460 +}
  461 +
  462 +.uniui-camera-filled:before {
  463 + content: "\e658";
  464 +}
  465 +
  466 +.uniui-chat-filled:before {
  467 + content: "\e659";
  468 +}
  469 +
  470 +.uniui-camera:before {
  471 + content: "\e65a";
  472 +}
  473 +
  474 +.uniui-circle:before {
  475 + content: "\e65b";
  476 +}
  477 +
  478 +.uniui-checkmarkempty:before {
  479 + content: "\e65c";
  480 +}
  481 +
  482 +.uniui-chat:before {
  483 + content: "\e65d";
  484 +}
  485 +
  486 +.uniui-circle-filled:before {
  487 + content: "\e65e";
  488 +}
  489 +
  490 +.uniui-flag:before {
  491 + content: "\e65f";
  492 +}
  493 +
  494 +.uniui-flag-filled:before {
  495 + content: "\e660";
  496 +}
  497 +
  498 +.uniui-gear-filled:before {
  499 + content: "\e661";
  500 +}
  501 +
  502 +.uniui-home:before {
  503 + content: "\e662";
  504 +}
  505 +
  506 +.uniui-home-filled:before {
  507 + content: "\e663";
  508 +}
  509 +
  510 +.uniui-gear:before {
  511 + content: "\e664";
  512 +}
  513 +
  514 +.uniui-smallcircle-filled:before {
  515 + content: "\e665";
  516 +}
  517 +
  518 +.uniui-map-filled:before {
  519 + content: "\e666";
  520 +}
  521 +
  522 +.uniui-map:before {
  523 + content: "\e667";
  524 +}
  525 +
  526 +.uniui-refresh-filled:before {
  527 + content: "\e656";
  528 +}
  529 +
  530 +.uniui-refresh:before {
  531 + content: "\e657";
  532 +}
  533 +
  534 +.uniui-cloud-upload:before {
  535 + content: "\e645";
  536 +}
  537 +
  538 +.uniui-cloud-download-filled:before {
  539 + content: "\e646";
  540 +}
  541 +
  542 +.uniui-cloud-download:before {
  543 + content: "\e647";
  544 +}
  545 +
  546 +.uniui-cloud-upload-filled:before {
  547 + content: "\e648";
  548 +}
  549 +
  550 +.uniui-redo:before {
  551 + content: "\e64a";
  552 +}
  553 +
  554 +.uniui-images-filled:before {
  555 + content: "\e64b";
  556 +}
  557 +
  558 +.uniui-undo-filled:before {
  559 + content: "\e64c";
  560 +}
  561 +
  562 +.uniui-more:before {
  563 + content: "\e64d";
  564 +}
  565 +
  566 +.uniui-more-filled:before {
  567 + content: "\e64e";
  568 +}
  569 +
  570 +.uniui-undo:before {
  571 + content: "\e64f";
  572 +}
  573 +
  574 +.uniui-images:before {
  575 + content: "\e650";
  576 +}
  577 +
  578 +.uniui-paperclip:before {
  579 + content: "\e652";
  580 +}
  581 +
  582 +.uniui-settings:before {
  583 + content: "\e653";
  584 +}
  585 +
  586 +.uniui-search:before {
  587 + content: "\e654";
  588 +}
  589 +
  590 +.uniui-redo-filled:before {
  591 + content: "\e655";
  592 +}
  593 +
  594 +.uniui-list:before {
  595 + content: "\e644";
  596 +}
  597 +
  598 +.uniui-mail-open-filled:before {
  599 + content: "\e63a";
  600 +}
  601 +
  602 +.uniui-hand-down-filled:before {
  603 + content: "\e63c";
  604 +}
  605 +
  606 +.uniui-hand-down:before {
  607 + content: "\e63d";
  608 +}
  609 +
  610 +.uniui-hand-up-filled:before {
  611 + content: "\e63e";
  612 +}
  613 +
  614 +.uniui-hand-up:before {
  615 + content: "\e63f";
  616 +}
  617 +
  618 +.uniui-heart-filled:before {
  619 + content: "\e641";
  620 +}
  621 +
  622 +.uniui-mail-open:before {
  623 + content: "\e643";
  624 +}
  625 +
  626 +.uniui-heart:before {
  627 + content: "\e639";
  628 +}
  629 +
  630 +.uniui-loop:before {
  631 + content: "\e633";
  632 +}
  633 +
  634 +.uniui-pulldown:before {
  635 + content: "\e632";
  636 +}
  637 +
  638 +.uniui-scan:before {
  639 + content: "\e62a";
  640 +}
  641 +
  642 +.uniui-bars:before {
  643 + content: "\e627";
  644 +}
  645 +
  646 +.uniui-checkbox:before {
  647 + content: "\e62b";
  648 +}
  649 +
  650 +.uniui-checkbox-filled:before {
  651 + content: "\e62c";
  652 +}
  653 +
  654 +.uniui-shop:before {
  655 + content: "\e62f";
  656 +}
  657 +
  658 +.uniui-headphones:before {
  659 + content: "\e630";
  660 +}
  661 +
  662 +.uniui-cart:before {
  663 + content: "\e631";
  664 +}
  1 +
  2 +export type IconsData = {
  3 + id : string
  4 + name : string
  5 + font_family : string
  6 + css_prefix_text : string
  7 + description : string
  8 + glyphs : Array<IconsDataItem>
  9 +}
  10 +
  11 +export type IconsDataItem = {
  12 + font_class : string
  13 + unicode : string
  14 +}
  15 +
  16 +
  17 +export const fontData = [
  18 + {
  19 + "font_class": "arrow-down",
  20 + "unicode": "\ue6be"
  21 + },
  22 + {
  23 + "font_class": "arrow-left",
  24 + "unicode": "\ue6bc"
  25 + },
  26 + {
  27 + "font_class": "arrow-right",
  28 + "unicode": "\ue6bb"
  29 + },
  30 + {
  31 + "font_class": "arrow-up",
  32 + "unicode": "\ue6bd"
  33 + },
  34 + {
  35 + "font_class": "auth",
  36 + "unicode": "\ue6ab"
  37 + },
  38 + {
  39 + "font_class": "auth-filled",
  40 + "unicode": "\ue6cc"
  41 + },
  42 + {
  43 + "font_class": "back",
  44 + "unicode": "\ue6b9"
  45 + },
  46 + {
  47 + "font_class": "bars",
  48 + "unicode": "\ue627"
  49 + },
  50 + {
  51 + "font_class": "calendar",
  52 + "unicode": "\ue6a0"
  53 + },
  54 + {
  55 + "font_class": "calendar-filled",
  56 + "unicode": "\ue6c0"
  57 + },
  58 + {
  59 + "font_class": "camera",
  60 + "unicode": "\ue65a"
  61 + },
  62 + {
  63 + "font_class": "camera-filled",
  64 + "unicode": "\ue658"
  65 + },
  66 + {
  67 + "font_class": "cart",
  68 + "unicode": "\ue631"
  69 + },
  70 + {
  71 + "font_class": "cart-filled",
  72 + "unicode": "\ue6d0"
  73 + },
  74 + {
  75 + "font_class": "chat",
  76 + "unicode": "\ue65d"
  77 + },
  78 + {
  79 + "font_class": "chat-filled",
  80 + "unicode": "\ue659"
  81 + },
  82 + {
  83 + "font_class": "chatboxes",
  84 + "unicode": "\ue696"
  85 + },
  86 + {
  87 + "font_class": "chatboxes-filled",
  88 + "unicode": "\ue692"
  89 + },
  90 + {
  91 + "font_class": "chatbubble",
  92 + "unicode": "\ue697"
  93 + },
  94 + {
  95 + "font_class": "chatbubble-filled",
  96 + "unicode": "\ue694"
  97 + },
  98 + {
  99 + "font_class": "checkbox",
  100 + "unicode": "\ue62b"
  101 + },
  102 + {
  103 + "font_class": "checkbox-filled",
  104 + "unicode": "\ue62c"
  105 + },
  106 + {
  107 + "font_class": "checkmarkempty",
  108 + "unicode": "\ue65c"
  109 + },
  110 + {
  111 + "font_class": "circle",
  112 + "unicode": "\ue65b"
  113 + },
  114 + {
  115 + "font_class": "circle-filled",
  116 + "unicode": "\ue65e"
  117 + },
  118 + {
  119 + "font_class": "clear",
  120 + "unicode": "\ue66d"
  121 + },
  122 + {
  123 + "font_class": "close",
  124 + "unicode": "\ue673"
  125 + },
  126 + {
  127 + "font_class": "closeempty",
  128 + "unicode": "\ue66c"
  129 + },
  130 + {
  131 + "font_class": "cloud-download",
  132 + "unicode": "\ue647"
  133 + },
  134 + {
  135 + "font_class": "cloud-download-filled",
  136 + "unicode": "\ue646"
  137 + },
  138 + {
  139 + "font_class": "cloud-upload",
  140 + "unicode": "\ue645"
  141 + },
  142 + {
  143 + "font_class": "cloud-upload-filled",
  144 + "unicode": "\ue648"
  145 + },
  146 + {
  147 + "font_class": "color",
  148 + "unicode": "\ue6cf"
  149 + },
  150 + {
  151 + "font_class": "color-filled",
  152 + "unicode": "\ue6c9"
  153 + },
  154 + {
  155 + "font_class": "compose",
  156 + "unicode": "\ue67f"
  157 + },
  158 + {
  159 + "font_class": "contact",
  160 + "unicode": "\ue693"
  161 + },
  162 + {
  163 + "font_class": "contact-filled",
  164 + "unicode": "\ue695"
  165 + },
  166 + {
  167 + "font_class": "down",
  168 + "unicode": "\ue6b8"
  169 + },
  170 + {
  171 + "font_class": "bottom",
  172 + "unicode": "\ue6b8"
  173 + },
  174 + {
  175 + "font_class": "download",
  176 + "unicode": "\ue68d"
  177 + },
  178 + {
  179 + "font_class": "download-filled",
  180 + "unicode": "\ue681"
  181 + },
  182 + {
  183 + "font_class": "email",
  184 + "unicode": "\ue69e"
  185 + },
  186 + {
  187 + "font_class": "email-filled",
  188 + "unicode": "\ue69a"
  189 + },
  190 + {
  191 + "font_class": "eye",
  192 + "unicode": "\ue651"
  193 + },
  194 + {
  195 + "font_class": "eye-filled",
  196 + "unicode": "\ue66a"
  197 + },
  198 + {
  199 + "font_class": "eye-slash",
  200 + "unicode": "\ue6b3"
  201 + },
  202 + {
  203 + "font_class": "eye-slash-filled",
  204 + "unicode": "\ue6b4"
  205 + },
  206 + {
  207 + "font_class": "fire",
  208 + "unicode": "\ue6a1"
  209 + },
  210 + {
  211 + "font_class": "fire-filled",
  212 + "unicode": "\ue6c5"
  213 + },
  214 + {
  215 + "font_class": "flag",
  216 + "unicode": "\ue65f"
  217 + },
  218 + {
  219 + "font_class": "flag-filled",
  220 + "unicode": "\ue660"
  221 + },
  222 + {
  223 + "font_class": "folder-add",
  224 + "unicode": "\ue6a9"
  225 + },
  226 + {
  227 + "font_class": "folder-add-filled",
  228 + "unicode": "\ue6c8"
  229 + },
  230 + {
  231 + "font_class": "font",
  232 + "unicode": "\ue6a3"
  233 + },
  234 + {
  235 + "font_class": "forward",
  236 + "unicode": "\ue6ba"
  237 + },
  238 + {
  239 + "font_class": "gear",
  240 + "unicode": "\ue664"
  241 + },
  242 + {
  243 + "font_class": "gear-filled",
  244 + "unicode": "\ue661"
  245 + },
  246 + {
  247 + "font_class": "gift",
  248 + "unicode": "\ue6a4"
  249 + },
  250 + {
  251 + "font_class": "gift-filled",
  252 + "unicode": "\ue6c4"
  253 + },
  254 + {
  255 + "font_class": "hand-down",
  256 + "unicode": "\ue63d"
  257 + },
  258 + {
  259 + "font_class": "hand-down-filled",
  260 + "unicode": "\ue63c"
  261 + },
  262 + {
  263 + "font_class": "hand-up",
  264 + "unicode": "\ue63f"
  265 + },
  266 + {
  267 + "font_class": "hand-up-filled",
  268 + "unicode": "\ue63e"
  269 + },
  270 + {
  271 + "font_class": "headphones",
  272 + "unicode": "\ue630"
  273 + },
  274 + {
  275 + "font_class": "heart",
  276 + "unicode": "\ue639"
  277 + },
  278 + {
  279 + "font_class": "heart-filled",
  280 + "unicode": "\ue641"
  281 + },
  282 + {
  283 + "font_class": "help",
  284 + "unicode": "\ue679"
  285 + },
  286 + {
  287 + "font_class": "help-filled",
  288 + "unicode": "\ue674"
  289 + },
  290 + {
  291 + "font_class": "home",
  292 + "unicode": "\ue662"
  293 + },
  294 + {
  295 + "font_class": "home-filled",
  296 + "unicode": "\ue663"
  297 + },
  298 + {
  299 + "font_class": "image",
  300 + "unicode": "\ue670"
  301 + },
  302 + {
  303 + "font_class": "image-filled",
  304 + "unicode": "\ue678"
  305 + },
  306 + {
  307 + "font_class": "images",
  308 + "unicode": "\ue650"
  309 + },
  310 + {
  311 + "font_class": "images-filled",
  312 + "unicode": "\ue64b"
  313 + },
  314 + {
  315 + "font_class": "info",
  316 + "unicode": "\ue669"
  317 + },
  318 + {
  319 + "font_class": "info-filled",
  320 + "unicode": "\ue649"
  321 + },
  322 + {
  323 + "font_class": "left",
  324 + "unicode": "\ue6b7"
  325 + },
  326 + {
  327 + "font_class": "link",
  328 + "unicode": "\ue6a5"
  329 + },
  330 + {
  331 + "font_class": "list",
  332 + "unicode": "\ue644"
  333 + },
  334 + {
  335 + "font_class": "location",
  336 + "unicode": "\ue6ae"
  337 + },
  338 + {
  339 + "font_class": "location-filled",
  340 + "unicode": "\ue6af"
  341 + },
  342 + {
  343 + "font_class": "locked",
  344 + "unicode": "\ue66b"
  345 + },
  346 + {
  347 + "font_class": "locked-filled",
  348 + "unicode": "\ue668"
  349 + },
  350 + {
  351 + "font_class": "loop",
  352 + "unicode": "\ue633"
  353 + },
  354 + {
  355 + "font_class": "mail-open",
  356 + "unicode": "\ue643"
  357 + },
  358 + {
  359 + "font_class": "mail-open-filled",
  360 + "unicode": "\ue63a"
  361 + },
  362 + {
  363 + "font_class": "map",
  364 + "unicode": "\ue667"
  365 + },
  366 + {
  367 + "font_class": "map-filled",
  368 + "unicode": "\ue666"
  369 + },
  370 + {
  371 + "font_class": "map-pin",
  372 + "unicode": "\ue6ad"
  373 + },
  374 + {
  375 + "font_class": "map-pin-ellipse",
  376 + "unicode": "\ue6ac"
  377 + },
  378 + {
  379 + "font_class": "medal",
  380 + "unicode": "\ue6a2"
  381 + },
  382 + {
  383 + "font_class": "medal-filled",
  384 + "unicode": "\ue6c3"
  385 + },
  386 + {
  387 + "font_class": "mic",
  388 + "unicode": "\ue671"
  389 + },
  390 + {
  391 + "font_class": "mic-filled",
  392 + "unicode": "\ue677"
  393 + },
  394 + {
  395 + "font_class": "micoff",
  396 + "unicode": "\ue67e"
  397 + },
  398 + {
  399 + "font_class": "micoff-filled",
  400 + "unicode": "\ue6b0"
  401 + },
  402 + {
  403 + "font_class": "minus",
  404 + "unicode": "\ue66f"
  405 + },
  406 + {
  407 + "font_class": "minus-filled",
  408 + "unicode": "\ue67d"
  409 + },
  410 + {
  411 + "font_class": "more",
  412 + "unicode": "\ue64d"
  413 + },
  414 + {
  415 + "font_class": "more-filled",
  416 + "unicode": "\ue64e"
  417 + },
  418 + {
  419 + "font_class": "navigate",
  420 + "unicode": "\ue66e"
  421 + },
  422 + {
  423 + "font_class": "navigate-filled",
  424 + "unicode": "\ue67a"
  425 + },
  426 + {
  427 + "font_class": "notification",
  428 + "unicode": "\ue6a6"
  429 + },
  430 + {
  431 + "font_class": "notification-filled",
  432 + "unicode": "\ue6c1"
  433 + },
  434 + {
  435 + "font_class": "paperclip",
  436 + "unicode": "\ue652"
  437 + },
  438 + {
  439 + "font_class": "paperplane",
  440 + "unicode": "\ue672"
  441 + },
  442 + {
  443 + "font_class": "paperplane-filled",
  444 + "unicode": "\ue675"
  445 + },
  446 + {
  447 + "font_class": "person",
  448 + "unicode": "\ue699"
  449 + },
  450 + {
  451 + "font_class": "person-filled",
  452 + "unicode": "\ue69d"
  453 + },
  454 + {
  455 + "font_class": "personadd",
  456 + "unicode": "\ue69f"
  457 + },
  458 + {
  459 + "font_class": "personadd-filled",
  460 + "unicode": "\ue698"
  461 + },
  462 + {
  463 + "font_class": "personadd-filled-copy",
  464 + "unicode": "\ue6d1"
  465 + },
  466 + {
  467 + "font_class": "phone",
  468 + "unicode": "\ue69c"
  469 + },
  470 + {
  471 + "font_class": "phone-filled",
  472 + "unicode": "\ue69b"
  473 + },
  474 + {
  475 + "font_class": "plus",
  476 + "unicode": "\ue676"
  477 + },
  478 + {
  479 + "font_class": "plus-filled",
  480 + "unicode": "\ue6c7"
  481 + },
  482 + {
  483 + "font_class": "plusempty",
  484 + "unicode": "\ue67b"
  485 + },
  486 + {
  487 + "font_class": "pulldown",
  488 + "unicode": "\ue632"
  489 + },
  490 + {
  491 + "font_class": "pyq",
  492 + "unicode": "\ue682"
  493 + },
  494 + {
  495 + "font_class": "qq",
  496 + "unicode": "\ue680"
  497 + },
  498 + {
  499 + "font_class": "redo",
  500 + "unicode": "\ue64a"
  501 + },
  502 + {
  503 + "font_class": "redo-filled",
  504 + "unicode": "\ue655"
  505 + },
  506 + {
  507 + "font_class": "refresh",
  508 + "unicode": "\ue657"
  509 + },
  510 + {
  511 + "font_class": "refresh-filled",
  512 + "unicode": "\ue656"
  513 + },
  514 + {
  515 + "font_class": "refreshempty",
  516 + "unicode": "\ue6bf"
  517 + },
  518 + {
  519 + "font_class": "reload",
  520 + "unicode": "\ue6b2"
  521 + },
  522 + {
  523 + "font_class": "right",
  524 + "unicode": "\ue6b5"
  525 + },
  526 + {
  527 + "font_class": "scan",
  528 + "unicode": "\ue62a"
  529 + },
  530 + {
  531 + "font_class": "search",
  532 + "unicode": "\ue654"
  533 + },
  534 + {
  535 + "font_class": "settings",
  536 + "unicode": "\ue653"
  537 + },
  538 + {
  539 + "font_class": "settings-filled",
  540 + "unicode": "\ue6ce"
  541 + },
  542 + {
  543 + "font_class": "shop",
  544 + "unicode": "\ue62f"
  545 + },
  546 + {
  547 + "font_class": "shop-filled",
  548 + "unicode": "\ue6cd"
  549 + },
  550 + {
  551 + "font_class": "smallcircle",
  552 + "unicode": "\ue67c"
  553 + },
  554 + {
  555 + "font_class": "smallcircle-filled",
  556 + "unicode": "\ue665"
  557 + },
  558 + {
  559 + "font_class": "sound",
  560 + "unicode": "\ue684"
  561 + },
  562 + {
  563 + "font_class": "sound-filled",
  564 + "unicode": "\ue686"
  565 + },
  566 + {
  567 + "font_class": "spinner-cycle",
  568 + "unicode": "\ue68a"
  569 + },
  570 + {
  571 + "font_class": "staff",
  572 + "unicode": "\ue6a7"
  573 + },
  574 + {
  575 + "font_class": "staff-filled",
  576 + "unicode": "\ue6cb"
  577 + },
  578 + {
  579 + "font_class": "star",
  580 + "unicode": "\ue688"
  581 + },
  582 + {
  583 + "font_class": "star-filled",
  584 + "unicode": "\ue68f"
  585 + },
  586 + {
  587 + "font_class": "starhalf",
  588 + "unicode": "\ue683"
  589 + },
  590 + {
  591 + "font_class": "trash",
  592 + "unicode": "\ue687"
  593 + },
  594 + {
  595 + "font_class": "trash-filled",
  596 + "unicode": "\ue685"
  597 + },
  598 + {
  599 + "font_class": "tune",
  600 + "unicode": "\ue6aa"
  601 + },
  602 + {
  603 + "font_class": "tune-filled",
  604 + "unicode": "\ue6ca"
  605 + },
  606 + {
  607 + "font_class": "undo",
  608 + "unicode": "\ue64f"
  609 + },
  610 + {
  611 + "font_class": "undo-filled",
  612 + "unicode": "\ue64c"
  613 + },
  614 + {
  615 + "font_class": "up",
  616 + "unicode": "\ue6b6"
  617 + },
  618 + {
  619 + "font_class": "top",
  620 + "unicode": "\ue6b6"
  621 + },
  622 + {
  623 + "font_class": "upload",
  624 + "unicode": "\ue690"
  625 + },
  626 + {
  627 + "font_class": "upload-filled",
  628 + "unicode": "\ue68e"
  629 + },
  630 + {
  631 + "font_class": "videocam",
  632 + "unicode": "\ue68c"
  633 + },
  634 + {
  635 + "font_class": "videocam-filled",
  636 + "unicode": "\ue689"
  637 + },
  638 + {
  639 + "font_class": "vip",
  640 + "unicode": "\ue6a8"
  641 + },
  642 + {
  643 + "font_class": "vip-filled",
  644 + "unicode": "\ue6c6"
  645 + },
  646 + {
  647 + "font_class": "wallet",
  648 + "unicode": "\ue6b1"
  649 + },
  650 + {
  651 + "font_class": "wallet-filled",
  652 + "unicode": "\ue6c2"
  653 + },
  654 + {
  655 + "font_class": "weibo",
  656 + "unicode": "\ue68b"
  657 + },
  658 + {
  659 + "font_class": "weixin",
  660 + "unicode": "\ue691"
  661 + }
  662 +] as IconsDataItem[]
  663 +
  664 +// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
  1 +
  2 +export const fontData = [
  3 + {
  4 + "font_class": "arrow-down",
  5 + "unicode": "\ue6be"
  6 + },
  7 + {
  8 + "font_class": "arrow-left",
  9 + "unicode": "\ue6bc"
  10 + },
  11 + {
  12 + "font_class": "arrow-right",
  13 + "unicode": "\ue6bb"
  14 + },
  15 + {
  16 + "font_class": "arrow-up",
  17 + "unicode": "\ue6bd"
  18 + },
  19 + {
  20 + "font_class": "auth",
  21 + "unicode": "\ue6ab"
  22 + },
  23 + {
  24 + "font_class": "auth-filled",
  25 + "unicode": "\ue6cc"
  26 + },
  27 + {
  28 + "font_class": "back",
  29 + "unicode": "\ue6b9"
  30 + },
  31 + {
  32 + "font_class": "bars",
  33 + "unicode": "\ue627"
  34 + },
  35 + {
  36 + "font_class": "calendar",
  37 + "unicode": "\ue6a0"
  38 + },
  39 + {
  40 + "font_class": "calendar-filled",
  41 + "unicode": "\ue6c0"
  42 + },
  43 + {
  44 + "font_class": "camera",
  45 + "unicode": "\ue65a"
  46 + },
  47 + {
  48 + "font_class": "camera-filled",
  49 + "unicode": "\ue658"
  50 + },
  51 + {
  52 + "font_class": "cart",
  53 + "unicode": "\ue631"
  54 + },
  55 + {
  56 + "font_class": "cart-filled",
  57 + "unicode": "\ue6d0"
  58 + },
  59 + {
  60 + "font_class": "chat",
  61 + "unicode": "\ue65d"
  62 + },
  63 + {
  64 + "font_class": "chat-filled",
  65 + "unicode": "\ue659"
  66 + },
  67 + {
  68 + "font_class": "chatboxes",
  69 + "unicode": "\ue696"
  70 + },
  71 + {
  72 + "font_class": "chatboxes-filled",
  73 + "unicode": "\ue692"
  74 + },
  75 + {
  76 + "font_class": "chatbubble",
  77 + "unicode": "\ue697"
  78 + },
  79 + {
  80 + "font_class": "chatbubble-filled",
  81 + "unicode": "\ue694"
  82 + },
  83 + {
  84 + "font_class": "checkbox",
  85 + "unicode": "\ue62b"
  86 + },
  87 + {
  88 + "font_class": "checkbox-filled",
  89 + "unicode": "\ue62c"
  90 + },
  91 + {
  92 + "font_class": "checkmarkempty",
  93 + "unicode": "\ue65c"
  94 + },
  95 + {
  96 + "font_class": "circle",
  97 + "unicode": "\ue65b"
  98 + },
  99 + {
  100 + "font_class": "circle-filled",
  101 + "unicode": "\ue65e"
  102 + },
  103 + {
  104 + "font_class": "clear",
  105 + "unicode": "\ue66d"
  106 + },
  107 + {
  108 + "font_class": "close",
  109 + "unicode": "\ue673"
  110 + },
  111 + {
  112 + "font_class": "closeempty",
  113 + "unicode": "\ue66c"
  114 + },
  115 + {
  116 + "font_class": "cloud-download",
  117 + "unicode": "\ue647"
  118 + },
  119 + {
  120 + "font_class": "cloud-download-filled",
  121 + "unicode": "\ue646"
  122 + },
  123 + {
  124 + "font_class": "cloud-upload",
  125 + "unicode": "\ue645"
  126 + },
  127 + {
  128 + "font_class": "cloud-upload-filled",
  129 + "unicode": "\ue648"
  130 + },
  131 + {
  132 + "font_class": "color",
  133 + "unicode": "\ue6cf"
  134 + },
  135 + {
  136 + "font_class": "color-filled",
  137 + "unicode": "\ue6c9"
  138 + },
  139 + {
  140 + "font_class": "compose",
  141 + "unicode": "\ue67f"
  142 + },
  143 + {
  144 + "font_class": "contact",
  145 + "unicode": "\ue693"
  146 + },
  147 + {
  148 + "font_class": "contact-filled",
  149 + "unicode": "\ue695"
  150 + },
  151 + {
  152 + "font_class": "down",
  153 + "unicode": "\ue6b8"
  154 + },
  155 + {
  156 + "font_class": "bottom",
  157 + "unicode": "\ue6b8"
  158 + },
  159 + {
  160 + "font_class": "download",
  161 + "unicode": "\ue68d"
  162 + },
  163 + {
  164 + "font_class": "download-filled",
  165 + "unicode": "\ue681"
  166 + },
  167 + {
  168 + "font_class": "email",
  169 + "unicode": "\ue69e"
  170 + },
  171 + {
  172 + "font_class": "email-filled",
  173 + "unicode": "\ue69a"
  174 + },
  175 + {
  176 + "font_class": "eye",
  177 + "unicode": "\ue651"
  178 + },
  179 + {
  180 + "font_class": "eye-filled",
  181 + "unicode": "\ue66a"
  182 + },
  183 + {
  184 + "font_class": "eye-slash",
  185 + "unicode": "\ue6b3"
  186 + },
  187 + {
  188 + "font_class": "eye-slash-filled",
  189 + "unicode": "\ue6b4"
  190 + },
  191 + {
  192 + "font_class": "fire",
  193 + "unicode": "\ue6a1"
  194 + },
  195 + {
  196 + "font_class": "fire-filled",
  197 + "unicode": "\ue6c5"
  198 + },
  199 + {
  200 + "font_class": "flag",
  201 + "unicode": "\ue65f"
  202 + },
  203 + {
  204 + "font_class": "flag-filled",
  205 + "unicode": "\ue660"
  206 + },
  207 + {
  208 + "font_class": "folder-add",
  209 + "unicode": "\ue6a9"
  210 + },
  211 + {
  212 + "font_class": "folder-add-filled",
  213 + "unicode": "\ue6c8"
  214 + },
  215 + {
  216 + "font_class": "font",
  217 + "unicode": "\ue6a3"
  218 + },
  219 + {
  220 + "font_class": "forward",
  221 + "unicode": "\ue6ba"
  222 + },
  223 + {
  224 + "font_class": "gear",
  225 + "unicode": "\ue664"
  226 + },
  227 + {
  228 + "font_class": "gear-filled",
  229 + "unicode": "\ue661"
  230 + },
  231 + {
  232 + "font_class": "gift",
  233 + "unicode": "\ue6a4"
  234 + },
  235 + {
  236 + "font_class": "gift-filled",
  237 + "unicode": "\ue6c4"
  238 + },
  239 + {
  240 + "font_class": "hand-down",
  241 + "unicode": "\ue63d"
  242 + },
  243 + {
  244 + "font_class": "hand-down-filled",
  245 + "unicode": "\ue63c"
  246 + },
  247 + {
  248 + "font_class": "hand-up",
  249 + "unicode": "\ue63f"
  250 + },
  251 + {
  252 + "font_class": "hand-up-filled",
  253 + "unicode": "\ue63e"
  254 + },
  255 + {
  256 + "font_class": "headphones",
  257 + "unicode": "\ue630"
  258 + },
  259 + {
  260 + "font_class": "heart",
  261 + "unicode": "\ue639"
  262 + },
  263 + {
  264 + "font_class": "heart-filled",
  265 + "unicode": "\ue641"
  266 + },
  267 + {
  268 + "font_class": "help",
  269 + "unicode": "\ue679"
  270 + },
  271 + {
  272 + "font_class": "help-filled",
  273 + "unicode": "\ue674"
  274 + },
  275 + {
  276 + "font_class": "home",
  277 + "unicode": "\ue662"
  278 + },
  279 + {
  280 + "font_class": "home-filled",
  281 + "unicode": "\ue663"
  282 + },
  283 + {
  284 + "font_class": "image",
  285 + "unicode": "\ue670"
  286 + },
  287 + {
  288 + "font_class": "image-filled",
  289 + "unicode": "\ue678"
  290 + },
  291 + {
  292 + "font_class": "images",
  293 + "unicode": "\ue650"
  294 + },
  295 + {
  296 + "font_class": "images-filled",
  297 + "unicode": "\ue64b"
  298 + },
  299 + {
  300 + "font_class": "info",
  301 + "unicode": "\ue669"
  302 + },
  303 + {
  304 + "font_class": "info-filled",
  305 + "unicode": "\ue649"
  306 + },
  307 + {
  308 + "font_class": "left",
  309 + "unicode": "\ue6b7"
  310 + },
  311 + {
  312 + "font_class": "link",
  313 + "unicode": "\ue6a5"
  314 + },
  315 + {
  316 + "font_class": "list",
  317 + "unicode": "\ue644"
  318 + },
  319 + {
  320 + "font_class": "location",
  321 + "unicode": "\ue6ae"
  322 + },
  323 + {
  324 + "font_class": "location-filled",
  325 + "unicode": "\ue6af"
  326 + },
  327 + {
  328 + "font_class": "locked",
  329 + "unicode": "\ue66b"
  330 + },
  331 + {
  332 + "font_class": "locked-filled",
  333 + "unicode": "\ue668"
  334 + },
  335 + {
  336 + "font_class": "loop",
  337 + "unicode": "\ue633"
  338 + },
  339 + {
  340 + "font_class": "mail-open",
  341 + "unicode": "\ue643"
  342 + },
  343 + {
  344 + "font_class": "mail-open-filled",
  345 + "unicode": "\ue63a"
  346 + },
  347 + {
  348 + "font_class": "map",
  349 + "unicode": "\ue667"
  350 + },
  351 + {
  352 + "font_class": "map-filled",
  353 + "unicode": "\ue666"
  354 + },
  355 + {
  356 + "font_class": "map-pin",
  357 + "unicode": "\ue6ad"
  358 + },
  359 + {
  360 + "font_class": "map-pin-ellipse",
  361 + "unicode": "\ue6ac"
  362 + },
  363 + {
  364 + "font_class": "medal",
  365 + "unicode": "\ue6a2"
  366 + },
  367 + {
  368 + "font_class": "medal-filled",
  369 + "unicode": "\ue6c3"
  370 + },
  371 + {
  372 + "font_class": "mic",
  373 + "unicode": "\ue671"
  374 + },
  375 + {
  376 + "font_class": "mic-filled",
  377 + "unicode": "\ue677"
  378 + },
  379 + {
  380 + "font_class": "micoff",
  381 + "unicode": "\ue67e"
  382 + },
  383 + {
  384 + "font_class": "micoff-filled",
  385 + "unicode": "\ue6b0"
  386 + },
  387 + {
  388 + "font_class": "minus",
  389 + "unicode": "\ue66f"
  390 + },
  391 + {
  392 + "font_class": "minus-filled",
  393 + "unicode": "\ue67d"
  394 + },
  395 + {
  396 + "font_class": "more",
  397 + "unicode": "\ue64d"
  398 + },
  399 + {
  400 + "font_class": "more-filled",
  401 + "unicode": "\ue64e"
  402 + },
  403 + {
  404 + "font_class": "navigate",
  405 + "unicode": "\ue66e"
  406 + },
  407 + {
  408 + "font_class": "navigate-filled",
  409 + "unicode": "\ue67a"
  410 + },
  411 + {
  412 + "font_class": "notification",
  413 + "unicode": "\ue6a6"
  414 + },
  415 + {
  416 + "font_class": "notification-filled",
  417 + "unicode": "\ue6c1"
  418 + },
  419 + {
  420 + "font_class": "paperclip",
  421 + "unicode": "\ue652"
  422 + },
  423 + {
  424 + "font_class": "paperplane",
  425 + "unicode": "\ue672"
  426 + },
  427 + {
  428 + "font_class": "paperplane-filled",
  429 + "unicode": "\ue675"
  430 + },
  431 + {
  432 + "font_class": "person",
  433 + "unicode": "\ue699"
  434 + },
  435 + {
  436 + "font_class": "person-filled",
  437 + "unicode": "\ue69d"
  438 + },
  439 + {
  440 + "font_class": "personadd",
  441 + "unicode": "\ue69f"
  442 + },
  443 + {
  444 + "font_class": "personadd-filled",
  445 + "unicode": "\ue698"
  446 + },
  447 + {
  448 + "font_class": "personadd-filled-copy",
  449 + "unicode": "\ue6d1"
  450 + },
  451 + {
  452 + "font_class": "phone",
  453 + "unicode": "\ue69c"
  454 + },
  455 + {
  456 + "font_class": "phone-filled",
  457 + "unicode": "\ue69b"
  458 + },
  459 + {
  460 + "font_class": "plus",
  461 + "unicode": "\ue676"
  462 + },
  463 + {
  464 + "font_class": "plus-filled",
  465 + "unicode": "\ue6c7"
  466 + },
  467 + {
  468 + "font_class": "plusempty",
  469 + "unicode": "\ue67b"
  470 + },
  471 + {
  472 + "font_class": "pulldown",
  473 + "unicode": "\ue632"
  474 + },
  475 + {
  476 + "font_class": "pyq",
  477 + "unicode": "\ue682"
  478 + },
  479 + {
  480 + "font_class": "qq",
  481 + "unicode": "\ue680"
  482 + },
  483 + {
  484 + "font_class": "redo",
  485 + "unicode": "\ue64a"
  486 + },
  487 + {
  488 + "font_class": "redo-filled",
  489 + "unicode": "\ue655"
  490 + },
  491 + {
  492 + "font_class": "refresh",
  493 + "unicode": "\ue657"
  494 + },
  495 + {
  496 + "font_class": "refresh-filled",
  497 + "unicode": "\ue656"
  498 + },
  499 + {
  500 + "font_class": "refreshempty",
  501 + "unicode": "\ue6bf"
  502 + },
  503 + {
  504 + "font_class": "reload",
  505 + "unicode": "\ue6b2"
  506 + },
  507 + {
  508 + "font_class": "right",
  509 + "unicode": "\ue6b5"
  510 + },
  511 + {
  512 + "font_class": "scan",
  513 + "unicode": "\ue62a"
  514 + },
  515 + {
  516 + "font_class": "search",
  517 + "unicode": "\ue654"
  518 + },
  519 + {
  520 + "font_class": "settings",
  521 + "unicode": "\ue653"
  522 + },
  523 + {
  524 + "font_class": "settings-filled",
  525 + "unicode": "\ue6ce"
  526 + },
  527 + {
  528 + "font_class": "shop",
  529 + "unicode": "\ue62f"
  530 + },
  531 + {
  532 + "font_class": "shop-filled",
  533 + "unicode": "\ue6cd"
  534 + },
  535 + {
  536 + "font_class": "smallcircle",
  537 + "unicode": "\ue67c"
  538 + },
  539 + {
  540 + "font_class": "smallcircle-filled",
  541 + "unicode": "\ue665"
  542 + },
  543 + {
  544 + "font_class": "sound",
  545 + "unicode": "\ue684"
  546 + },
  547 + {
  548 + "font_class": "sound-filled",
  549 + "unicode": "\ue686"
  550 + },
  551 + {
  552 + "font_class": "spinner-cycle",
  553 + "unicode": "\ue68a"
  554 + },
  555 + {
  556 + "font_class": "staff",
  557 + "unicode": "\ue6a7"
  558 + },
  559 + {
  560 + "font_class": "staff-filled",
  561 + "unicode": "\ue6cb"
  562 + },
  563 + {
  564 + "font_class": "star",
  565 + "unicode": "\ue688"
  566 + },
  567 + {
  568 + "font_class": "star-filled",
  569 + "unicode": "\ue68f"
  570 + },
  571 + {
  572 + "font_class": "starhalf",
  573 + "unicode": "\ue683"
  574 + },
  575 + {
  576 + "font_class": "trash",
  577 + "unicode": "\ue687"
  578 + },
  579 + {
  580 + "font_class": "trash-filled",
  581 + "unicode": "\ue685"
  582 + },
  583 + {
  584 + "font_class": "tune",
  585 + "unicode": "\ue6aa"
  586 + },
  587 + {
  588 + "font_class": "tune-filled",
  589 + "unicode": "\ue6ca"
  590 + },
  591 + {
  592 + "font_class": "undo",
  593 + "unicode": "\ue64f"
  594 + },
  595 + {
  596 + "font_class": "undo-filled",
  597 + "unicode": "\ue64c"
  598 + },
  599 + {
  600 + "font_class": "up",
  601 + "unicode": "\ue6b6"
  602 + },
  603 + {
  604 + "font_class": "top",
  605 + "unicode": "\ue6b6"
  606 + },
  607 + {
  608 + "font_class": "upload",
  609 + "unicode": "\ue690"
  610 + },
  611 + {
  612 + "font_class": "upload-filled",
  613 + "unicode": "\ue68e"
  614 + },
  615 + {
  616 + "font_class": "videocam",
  617 + "unicode": "\ue68c"
  618 + },
  619 + {
  620 + "font_class": "videocam-filled",
  621 + "unicode": "\ue689"
  622 + },
  623 + {
  624 + "font_class": "vip",
  625 + "unicode": "\ue6a8"
  626 + },
  627 + {
  628 + "font_class": "vip-filled",
  629 + "unicode": "\ue6c6"
  630 + },
  631 + {
  632 + "font_class": "wallet",
  633 + "unicode": "\ue6b1"
  634 + },
  635 + {
  636 + "font_class": "wallet-filled",
  637 + "unicode": "\ue6c2"
  638 + },
  639 + {
  640 + "font_class": "weibo",
  641 + "unicode": "\ue68b"
  642 + },
  643 + {
  644 + "font_class": "weixin",
  645 + "unicode": "\ue691"
  646 + }
  647 +]
  648 +
  649 +// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
  1 +{
  2 + "id": "uni-icons",
  3 + "displayName": "uni-icons 图标",
  4 + "version": "2.0.10",
  5 + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
  6 + "keywords": [
  7 + "uni-ui",
  8 + "uniui",
  9 + "icon",
  10 + "图标"
  11 +],
  12 + "repository": "https://github.com/dcloudio/uni-ui",
  13 + "engines": {
  14 + "HBuilderX": "^3.2.14"
  15 + },
  16 + "directories": {
  17 + "example": "../../temps/example_temps"
  18 + },
  19 +"dcloudext": {
  20 + "sale": {
  21 + "regular": {
  22 + "price": "0.00"
  23 + },
  24 + "sourcecode": {
  25 + "price": "0.00"
  26 + }
  27 + },
  28 + "contact": {
  29 + "qq": ""
  30 + },
  31 + "declaration": {
  32 + "ads": "无",
  33 + "data": "无",
  34 + "permissions": "无"
  35 + },
  36 + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
  37 + "type": "component-vue"
  38 + },
  39 + "uni_modules": {
  40 + "dependencies": ["uni-scss"],
  41 + "encrypt": [],
  42 + "platforms": {
  43 + "cloud": {
  44 + "tcb": "y",
  45 + "aliyun": "y",
  46 + "alipay": "n"
  47 + },
  48 + "client": {
  49 + "App": {
  50 + "app-vue": "y",
  51 + "app-nvue": "y",
  52 + "app-uvue": "y"
  53 + },
  54 + "H5-mobile": {
  55 + "Safari": "y",
  56 + "Android Browser": "y",
  57 + "微信浏览器(Android)": "y",
  58 + "QQ浏览器(Android)": "y"
  59 + },
  60 + "H5-pc": {
  61 + "Chrome": "y",
  62 + "IE": "y",
  63 + "Edge": "y",
  64 + "Firefox": "y",
  65 + "Safari": "y"
  66 + },
  67 + "小程序": {
  68 + "微信": "y",
  69 + "阿里": "y",
  70 + "百度": "y",
  71 + "字节跳动": "y",
  72 + "QQ": "y",
  73 + "钉钉": "y",
  74 + "快手": "y",
  75 + "飞书": "y",
  76 + "京东": "y"
  77 + },
  78 + "快应用": {
  79 + "华为": "y",
  80 + "联盟": "y"
  81 + },
  82 + "Vue": {
  83 + "vue2": "y",
  84 + "vue3": "y"
  85 + }
  86 + }
  87 + }
  88 + }
  89 +}
  1 +## Icons 图标
  2 +> **组件名:uni-icons**
  3 +> 代码块: `uIcons`
  4 +
  5 +用于展示 icons 图标 。
  6 +
  7 +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons)
  8 +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
  1 +## 1.2.4(2022-09-19)
  2 +- 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。
  3 +- 修复,未对移动端当前页文字做主题色适配。
  4 +## 1.2.3(2022-09-15)
  5 +- 修复未使用 uni-scss 主题色的 bug。
  6 +## 1.2.2(2022-07-06)
  7 +- 修复 es 语言 i18n 错误
  8 +## 1.2.1(2021-11-22)
  9 +- 修复 vue3中某些scss变量无法找到的问题
  10 +## 1.2.0(2021-11-19)
  11 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
  12 +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination)
  13 +## 1.1.2(2021-10-08)
  14 +- 修复 current 、value 属性未监听,导致高亮样式失效的 bug
  15 +## 1.1.1(2021-08-20)
  16 +- 新增 支持国际化
  17 +## 1.1.0(2021-07-30)
  18 +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
  19 +## 1.0.7(2021-05-12)
  20 +- 新增 组件示例地址
  21 +## 1.0.6(2021-04-12)
  22 +- 新增 PC 和 移动端适配不同的 ui
  23 +## 1.0.5(2021-02-05)
  24 +- 优化 组件引用关系,通过uni_modules引用组件
  25 +
  26 +## 1.0.4(2021-02-05)
  27 +- 调整为uni_modules目录规范
  1 +{
  2 + "uni-pagination.prevText": "prev",
  3 + "uni-pagination.nextText": "next",
  4 + "uni-pagination.piecePerPage": "piece/page"
  5 +}
  1 +{
  2 + "uni-pagination.prevText": "anterior",
  3 + "uni-pagination.nextText": "prxima",
  4 + "uni-pagination.piecePerPage": "Art¨ªculo/P¨¢gina"
  5 +}
  1 +{
  2 + "uni-pagination.prevText": "précédente",
  3 + "uni-pagination.nextText": "suivante",
  4 + "uni-pagination.piecePerPage": "Articles/Pages"
  5 +}
  1 +import en from './en.json'
  2 +import es from './es.json'
  3 +import fr from './fr.json'
  4 +import zhHans from './zh-Hans.json'
  5 +import zhHant from './zh-Hant.json'
  6 +export default {
  7 + en,
  8 + es,
  9 + fr,
  10 + 'zh-Hans': zhHans,
  11 + 'zh-Hant': zhHant
  12 +}
  1 +{
  2 + "uni-pagination.prevText": "上一页",
  3 + "uni-pagination.nextText": "下一页",
  4 + "uni-pagination.piecePerPage": "条/页"
  5 +}
  1 +{
  2 + "uni-pagination.prevText": "上一頁",
  3 + "uni-pagination.nextText": "下一頁",
  4 + "uni-pagination.piecePerPage": "條/頁"
  5 +}
  1 +<template>
  2 + <view class="uni-pagination">
  3 + <!-- #ifndef MP -->
  4 + <picker v-if="showPageSize === true || showPageSize === 'true'" class="select-picker" mode="selector"
  5 + :value="pageSizeIndex" :range="pageSizeRange" @change="pickerChange" @cancel="pickerClick"
  6 + @click.native="pickerClick">
  7 + <button type="default" size="mini" :plain="true">
  8 + <text>{{pageSizeRange[pageSizeIndex]}} {{piecePerPage}}</text>
  9 + <uni-icons class="select-picker-icon" type="arrowdown" size="12" color="#999"></uni-icons>
  10 + </button>
  11 + </picker>
  12 + <!-- #endif -->
  13 + <!-- #ifndef APP-NVUE -->
  14 + <view class="uni-pagination__total is-phone-hide"> {{ total }} </view>
  15 + <!-- #endif -->
  16 + <view class="uni-pagination__btn"
  17 + :class="currentIndex === 1 ? 'uni-pagination--disabled' : 'uni-pagination--enabled'"
  18 + :hover-class="currentIndex === 1 ? '' : 'uni-pagination--hover'" :hover-start-time="20"
  19 + :hover-stay-time="70" @click="clickLeft">
  20 + <template v-if="showIcon === true || showIcon === 'true'">
  21 + <uni-icons color="#666" size="16" type="left" />
  22 + </template>
  23 + <template v-else>
  24 + <text class="uni-pagination__child-btn">{{ prevPageText }}</text>
  25 + </template>
  26 + </view>
  27 + <view class="uni-pagination__num uni-pagination__num-flex-none">
  28 + <view class="uni-pagination__num-current">
  29 + <text class="uni-pagination__num-current-text is-pc-hide current-index-text">{{ currentIndex }}</text>
  30 + <text class="uni-pagination__num-current-text is-pc-hide">/{{ maxPage || 0 }}</text>
  31 + <!-- #ifndef APP-NVUE -->
  32 + <view v-for="(item, index) in paper" :key="index" :class="{ 'page--active': item === currentIndex }"
  33 + class="uni-pagination__num-tag tag--active is-phone-hide" @click.top="selectPage(item, index)">
  34 + <text>{{ item }}</text>
  35 + </view>
  36 + <!-- #endif -->
  37 +
  38 + </view>
  39 + </view>
  40 + <view class="uni-pagination__btn"
  41 + :class="currentIndex >= maxPage ? 'uni-pagination--disabled' : 'uni-pagination--enabled'"
  42 + :hover-class="currentIndex === maxPage ? '' : 'uni-pagination--hover'" :hover-start-time="20"
  43 + :hover-stay-time="70" @click="clickRight">
  44 + <template v-if="showIcon === true || showIcon === 'true'">
  45 + <uni-icons color="#666" size="16" type="right" />
  46 + </template>
  47 + <template v-else>
  48 + <text class="uni-pagination__child-btn">{{ nextPageText }}</text>
  49 + </template>
  50 + </view>
  51 + </view>
  52 +</template>
  53 +
  54 +<script>
  55 + /**
  56 + * Pagination 分页器
  57 + * @description 分页器组件,用于展示页码、请求数据等
  58 + * @tutorial https://ext.dcloud.net.cn/plugin?id=32
  59 + * @property {String} prevText 左侧按钮文字
  60 + * @property {String} nextText 右侧按钮文字
  61 + * @property {String} piecePerPageText 条/页文字
  62 + * @property {Number} current 当前页
  63 + * @property {Number} total 数据总量
  64 + * @property {Number} pageSize 每页数据量
  65 + * @property {Boolean} showIcon = [true|false] 是否以 icon 形式展示按钮
  66 + * @property {Boolean} showPageSize = [true|false] 是否展示每页条数
  67 + * @property {Array} pageSizeRange = [20, 50, 100, 500] 每页条数选框
  68 + * @event {Function} change 点击页码按钮时触发 ,e={type,current} current为当前页,type值为:next/prev,表示点击的是上一页还是下一个
  69 + * * @event {Function} pageSizeChange 当前每页条数改变时触发 ,e={pageSize} pageSize 为当前所选的每页条数
  70 + */
  71 +
  72 + import {
  73 + initVueI18n
  74 + } from '@dcloudio/uni-i18n'
  75 + import messages from './i18n/index.js'
  76 + const {
  77 + t
  78 + } = initVueI18n(messages)
  79 + export default {
  80 + name: 'UniPagination',
  81 + emits: ['update:modelValue', 'input', 'change', 'pageSizeChange'],
  82 + props: {
  83 + value: {
  84 + type: [Number, String],
  85 + default: 1
  86 + },
  87 + modelValue: {
  88 + type: [Number, String],
  89 + default: 1
  90 + },
  91 + prevText: {
  92 + type: String,
  93 + },
  94 + nextText: {
  95 + type: String,
  96 + },
  97 + piecePerPageText: {
  98 + type: String
  99 + },
  100 + current: {
  101 + type: [Number, String],
  102 + default: 1
  103 + },
  104 + total: {
  105 + // 数据总量
  106 + type: [Number, String],
  107 + default: 0
  108 + },
  109 + pageSize: {
  110 + // 每页数据量
  111 + type: [Number, String],
  112 + default: 10
  113 + },
  114 + showIcon: {
  115 + // 是否以 icon 形式展示按钮
  116 + type: [Boolean, String],
  117 + default: false
  118 + },
  119 + showPageSize: {
  120 + // 是否以 icon 形式展示按钮
  121 + type: [Boolean, String],
  122 + default: false
  123 + },
  124 + pagerCount: {
  125 + type: Number,
  126 + default: 7
  127 + },
  128 + pageSizeRange: {
  129 + type: Array,
  130 + default: () => [20, 50, 100, 500]
  131 + }
  132 + },
  133 + data() {
  134 + return {
  135 + pageSizeIndex: 0,
  136 + currentIndex: 1,
  137 + paperData: [],
  138 + pickerShow: false
  139 + }
  140 + },
  141 + computed: {
  142 + piecePerPage() {
  143 + return this.piecePerPageText || t('uni-pagination.piecePerPage')
  144 + },
  145 + prevPageText() {
  146 + return this.prevText || t('uni-pagination.prevText')
  147 + },
  148 + nextPageText() {
  149 + return this.nextText || t('uni-pagination.nextText')
  150 + },
  151 + maxPage() {
  152 + let maxPage = 1
  153 + let total = Number(this.total)
  154 + let pageSize = Number(this.pageSize)
  155 + if (total && pageSize) {
  156 + maxPage = Math.ceil(total / pageSize)
  157 + }
  158 + return maxPage
  159 + },
  160 + paper() {
  161 + const num = this.currentIndex
  162 + // TODO 最大页数
  163 + const pagerCount = this.pagerCount
  164 + // const total = 181
  165 + const total = this.total
  166 + const pageSize = this.pageSize
  167 + let totalArr = []
  168 + let showPagerArr = []
  169 + let pagerNum = Math.ceil(total / pageSize)
  170 + for (let i = 0; i < pagerNum; i++) {
  171 + totalArr.push(i + 1)
  172 + }
  173 + showPagerArr.push(1)
  174 + const totalNum = totalArr[totalArr.length - (pagerCount + 1) / 2]
  175 + totalArr.forEach((item, index) => {
  176 + if ((pagerCount + 1) / 2 >= num) {
  177 + if (item < pagerCount + 1 && item > 1) {
  178 + showPagerArr.push(item)
  179 + }
  180 + } else if (num + 2 <= totalNum) {
  181 + if (item > num - (pagerCount + 1) / 2 && item < num + (pagerCount + 1) / 2) {
  182 + showPagerArr.push(item)
  183 + }
  184 + } else {
  185 + if ((item > num - (pagerCount + 1) / 2 || pagerNum - pagerCount < item) && item < totalArr[
  186 + totalArr.length - 1]) {
  187 + showPagerArr.push(item)
  188 + }
  189 + }
  190 + })
  191 + if (pagerNum > pagerCount) {
  192 + if ((pagerCount + 1) / 2 >= num) {
  193 + showPagerArr[showPagerArr.length - 1] = '...'
  194 + } else if (num + 2 <= totalNum) {
  195 + showPagerArr[1] = '...'
  196 + showPagerArr[showPagerArr.length - 1] = '...'
  197 + } else {
  198 + showPagerArr[1] = '...'
  199 + }
  200 + showPagerArr.push(totalArr[totalArr.length - 1])
  201 + } else {
  202 + if ((pagerCount + 1) / 2 >= num) {} else if (num + 2 <= totalNum) {} else {
  203 + showPagerArr.shift()
  204 + showPagerArr.push(totalArr[totalArr.length - 1])
  205 + }
  206 + }
  207 +
  208 + return showPagerArr
  209 + }
  210 + },
  211 + watch: {
  212 + current: {
  213 + immediate: true,
  214 + handler(val, old) {
  215 + if (val < 1) {
  216 + this.currentIndex = 1
  217 + } else {
  218 + this.currentIndex = val
  219 + }
  220 + }
  221 + },
  222 + value: {
  223 + immediate: true,
  224 + handler(val) {
  225 + if (Number(this.current) !== 1) return
  226 + if (val < 1) {
  227 + this.currentIndex = 1
  228 + } else {
  229 + this.currentIndex = val
  230 + }
  231 + }
  232 + },
  233 + pageSizeIndex(val) {
  234 + this.$emit('pageSizeChange', this.pageSizeRange[val])
  235 + }
  236 + },
  237 + methods: {
  238 + pickerChange(e) {
  239 + this.pageSizeIndex = e.detail.value
  240 + this.pickerClick()
  241 + },
  242 + pickerClick() {
  243 + // #ifdef H5
  244 + const body = document.querySelector('body')
  245 + if (!body) return
  246 +
  247 + const className = 'uni-pagination-picker-show'
  248 + this.pickerShow = !this.pickerShow
  249 +
  250 + if (this.pickerShow) {
  251 + body.classList.add(className)
  252 + } else {
  253 + setTimeout(() => body.classList.remove(className), 300)
  254 + }
  255 + // #endif
  256 + },
  257 + // 选择标签
  258 + selectPage(e, index) {
  259 + if (parseInt(e)) {
  260 + this.currentIndex = e
  261 + this.change('current')
  262 + } else {
  263 + let pagerNum = Math.ceil(this.total / this.pageSize)
  264 + // let pagerNum = Math.ceil(181 / this.pageSize)
  265 + // 上一页
  266 + if (index <= 1) {
  267 + if (this.currentIndex - 5 > 1) {
  268 + this.currentIndex -= 5
  269 + } else {
  270 + this.currentIndex = 1
  271 + }
  272 + return
  273 + }
  274 + // 下一页
  275 + if (index >= 6) {
  276 + if (this.currentIndex + 5 > pagerNum) {
  277 + this.currentIndex = pagerNum
  278 + } else {
  279 + this.currentIndex += 5
  280 + }
  281 + return
  282 + }
  283 + }
  284 + },
  285 + clickLeft() {
  286 + if (Number(this.currentIndex) === 1) {
  287 + return
  288 + }
  289 + this.currentIndex -= 1
  290 + this.change('prev')
  291 + },
  292 + clickRight() {
  293 + if (Number(this.currentIndex) >= this.maxPage) {
  294 + return
  295 + }
  296 + this.currentIndex += 1
  297 + this.change('next')
  298 + },
  299 + change(e) {
  300 + this.$emit('input', this.currentIndex)
  301 + this.$emit('update:modelValue', this.currentIndex)
  302 + this.$emit('change', {
  303 + type: e,
  304 + current: this.currentIndex
  305 + })
  306 + }
  307 + }
  308 + }
  309 +</script>
  310 +
  311 +<style lang="scss" scoped>
  312 + $uni-primary: #2979ff !default;
  313 + .uni-pagination {
  314 + /* #ifndef APP-NVUE */
  315 + display: flex;
  316 + /* #endif */
  317 + position: relative;
  318 + overflow: hidden;
  319 + flex-direction: row;
  320 + justify-content: center;
  321 + align-items: center;
  322 + }
  323 +
  324 + .uni-pagination__total {
  325 + font-size: 14px;
  326 + color: #999;
  327 + margin-right: 15px;
  328 + }
  329 +
  330 + .uni-pagination__btn {
  331 + /* #ifndef APP-NVUE */
  332 + display: flex;
  333 + cursor: pointer;
  334 + /* #endif */
  335 + padding: 0 8px;
  336 + line-height: 30px;
  337 + font-size: 12px;
  338 + position: relative;
  339 + background-color: #F0F0F0;
  340 + flex-direction: row;
  341 + justify-content: center;
  342 + align-items: center;
  343 + text-align: center;
  344 + border-radius: 5px;
  345 + // border-width: 1px;
  346 + // border-style: solid;
  347 + // border-color: $uni-border-color;
  348 + }
  349 +
  350 + .uni-pagination__child-btn {
  351 + /* #ifndef APP-NVUE */
  352 + display: flex;
  353 + /* #endif */
  354 + font-size: 12px;
  355 + position: relative;
  356 + flex-direction: row;
  357 + justify-content: center;
  358 + align-items: center;
  359 + text-align: center;
  360 + color: #666;
  361 + font-size: 12px;
  362 + }
  363 +
  364 + .uni-pagination__num {
  365 + /* #ifndef APP-NVUE */
  366 + display: flex;
  367 + /* #endif */
  368 + flex: 1;
  369 + flex-direction: row;
  370 + justify-content: center;
  371 + align-items: center;
  372 + height: 30px;
  373 + line-height: 30px;
  374 + font-size: 12px;
  375 + color: #666;
  376 + margin: 0 5px;
  377 + }
  378 +
  379 + .uni-pagination__num-tag {
  380 + /* #ifdef H5 */
  381 + cursor: pointer;
  382 + min-width: 30px;
  383 + /* #endif */
  384 + margin: 0 5px;
  385 + height: 30px;
  386 + text-align: center;
  387 + line-height: 30px;
  388 + // border: 1px red solid;
  389 + color: #999;
  390 + border-radius: 4px;
  391 + // border-width: 1px;
  392 + // border-style: solid;
  393 + // border-color: $uni-border-color;
  394 + }
  395 +
  396 + .uni-pagination__num-current {
  397 + /* #ifndef APP-NVUE */
  398 + display: flex;
  399 + /* #endif */
  400 + flex-direction: row;
  401 + }
  402 +
  403 + .uni-pagination__num-current-text {
  404 + font-size: 15px;
  405 + }
  406 +
  407 + .current-index-text{
  408 + color: $uni-primary;
  409 + }
  410 +
  411 + .uni-pagination--enabled {
  412 + color: #333333;
  413 + opacity: 1;
  414 + }
  415 +
  416 + .uni-pagination--disabled {
  417 + opacity: 0.5;
  418 + /* #ifdef H5 */
  419 + cursor: default;
  420 + /* #endif */
  421 + }
  422 +
  423 + .uni-pagination--hover {
  424 + color: rgba(0, 0, 0, 0.6);
  425 + background-color: #eee;
  426 + }
  427 +
  428 + .tag--active:hover {
  429 + color: $uni-primary;
  430 + }
  431 +
  432 + .page--active {
  433 + color: #fff;
  434 + background-color: $uni-primary;
  435 + }
  436 +
  437 + .page--active:hover {
  438 + color: #fff;
  439 + }
  440 +
  441 + /* #ifndef APP-NVUE */
  442 + .is-pc-hide {
  443 + display: block;
  444 + }
  445 +
  446 + .is-phone-hide {
  447 + display: none;
  448 + }
  449 +
  450 + @media screen and (min-width: 450px) {
  451 + .is-pc-hide {
  452 + display: none;
  453 + }
  454 +
  455 + .is-phone-hide {
  456 + display: block;
  457 + }
  458 +
  459 + .uni-pagination__num-flex-none {
  460 + flex: none;
  461 + }
  462 + }
  463 +
  464 + /* #endif */
  465 +</style>
  1 +{
  2 + "id": "uni-pagination",
  3 + "displayName": "uni-pagination 分页器",
  4 + "version": "1.2.4",
  5 + "description": "Pagination 分页器组件,用于展示页码、请求数据等。",
  6 + "keywords": [
  7 + "uni-ui",
  8 + "uniui",
  9 + "分页器",
  10 + "页码"
  11 +],
  12 + "repository": "https://github.com/dcloudio/uni-ui",
  13 + "engines": {
  14 + "HBuilderX": ""
  15 + },
  16 + "directories": {
  17 + "example": "../../temps/example_temps"
  18 + },
  19 +"dcloudext": {
  20 + "sale": {
  21 + "regular": {
  22 + "price": "0.00"
  23 + },
  24 + "sourcecode": {
  25 + "price": "0.00"
  26 + }
  27 + },
  28 + "contact": {
  29 + "qq": ""
  30 + },
  31 + "declaration": {
  32 + "ads": "无",
  33 + "data": "无",
  34 + "permissions": "无"
  35 + },
  36 + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
  37 + "type": "component-vue"
  38 + },
  39 + "uni_modules": {
  40 + "dependencies": ["uni-scss","uni-icons"],
  41 + "encrypt": [],
  42 + "platforms": {
  43 + "cloud": {
  44 + "tcb": "y",
  45 + "aliyun": "y"
  46 + },
  47 + "client": {
  48 + "App": {
  49 + "app-vue": "y",
  50 + "app-nvue": "y"
  51 + },
  52 + "H5-mobile": {
  53 + "Safari": "y",
  54 + "Android Browser": "y",
  55 + "微信浏览器(Android)": "y",
  56 + "QQ浏览器(Android)": "y"
  57 + },
  58 + "H5-pc": {
  59 + "Chrome": "y",
  60 + "IE": "y",
  61 + "Edge": "y",
  62 + "Firefox": "y",
  63 + "Safari": "y"
  64 + },
  65 + "小程序": {
  66 + "微信": "y",
  67 + "阿里": "y",
  68 + "百度": "y",
  69 + "字节跳动": "y",
  70 + "QQ": "y"
  71 + },
  72 + "快应用": {
  73 + "华为": "u",
  74 + "联盟": "u"
  75 + },
  76 + "Vue": {
  77 + "vue2": "y",
  78 + "vue3": "y"
  79 + }
  80 + }
  81 + }
  82 + }
  83 +}
  1 +
  2 +
  3 +## Pagination 分页器
  4 +> **组件名:uni-pagination**
  5 +> 代码块: `uPagination`
  6 +
  7 +
  8 +分页器组件,用于展示页码、请求数据等。
  9 +
  10 +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination)
  11 +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
1 -"use strict";const t=require("../uni_modules/uview-plus/index.js");exports.carInfoAdd=e=>t.http.post("/registration/add",e,{custom:{auth:!0}}),exports.getCodeImg=e=>t.http.get("/captchaImage"),exports.getNotice=e=>t.http.get(`/system/notice/${e}`,{custom:{auth:!0}}),exports.getUserCarInfo=e=>t.http.get("/registration/listRegistration",{params:e,custom:{auth:!0}}),exports.getUserInfo=e=>t.http.get("/system/user/profile",{custom:{auth:!0}}),exports.updateUserInfo=e=>t.http.put("/system/user/profile",e,{custom:{auth:!0}}),exports.userLogin=e=>t.http.post("/login",e),exports.userWxLogin=(e,s={})=>t.http.post("/wechat/login",e,s); 1 +"use strict";const t=require("../uni_modules/uview-plus/index.js");exports.carInfoAdd=e=>t.http.post("/registration/add",e,{custom:{auth:!0}}),exports.carInfoEdit=e=>t.http.post("/registration/edit",e,{custom:{auth:!0}}),exports.getCodeImg=e=>t.http.get("/captchaImage"),exports.getNotice=e=>t.http.get(`/system/notice/${e}`,{custom:{auth:!0}}),exports.getUserCarInfo=e=>t.http.get("/registration/listRegistration",{params:e,custom:{auth:!0}}),exports.getUserInfo=e=>t.http.get("/system/user/profile",{custom:{auth:!0}}),exports.updateUserInfo=e=>t.http.put("/system/user/profile",e,{custom:{auth:!0}}),exports.userCancel=()=>t.http.get("/system/user/deRegistration",{custom:{auth:!0}}),exports.userLogin=e=>t.http.post("/login",e),exports.userWxLogin=(e,s={})=>t.http.post("/wechat/login",e,s);
1 -"use strict";const t=require("../uni_modules/uview-plus/index.js");exports.disposeUser=(s,e)=>t.http.post(`/registration/completeTask/${e}`,s,{custom:{auth:!0}}),exports.getUserList=s=>t.http.post("/system/user/otherEmployee",s,{custom:{auth:!0}}),exports.queryContinueList=s=>t.http.get("/registration/monitor/listReports",{params:s,custom:{auth:!0}}),exports.queryEndedList=s=>t.http.get("/registration/monitor/listEnded",{params:s,custom:{auth:!0}}),exports.queryMyList=s=>t.http.get("/registration/mylist",{params:s,custom:{auth:!0}}),exports.transfer=(s,e)=>t.http.post(`/registratiom/transferTask/${e}`,s,{custom:{auth:!0}}); 1 +"use strict";const t=require("../uni_modules/uview-plus/index.js");exports.disposeUser=(s,e)=>t.http.post(`/registration/completeTask/${e}`,s,{custom:{auth:!0}}),exports.getUserList=s=>t.http.get("/system/user/otherEmployee",{params:s,custom:{auth:!0}}),exports.listDept=s=>t.http.get("/system/dept/list",{params:s,custom:{auth:!0}}),exports.queryContinueList=s=>t.http.get("/registration/monitor/listReports",{params:s,custom:{auth:!0}}),exports.queryDefeatContent=s=>t.http.get("/registration/monitor/getComment",{params:s,custom:{auth:!0}}),exports.queryDeprecatedList=s=>t.http.get("/registration/monitor/listDeprecated",{params:s,custom:{auth:!0}}),exports.queryEndedList=s=>t.http.get("/registration/monitor/listEnded",{params:s,custom:{auth:!0}}),exports.queryMyList=s=>t.http.get("/registration/mylist",{params:s,custom:{auth:!0}}),exports.queryOngoingList=s=>t.http.get("/registration/monitor/listOngoing",{params:s,custom:{auth:!0}}),exports.queryProcessedList=s=>t.http.get("/registration/monitor/listProcessed",{params:s,custom:{auth:!0}}),exports.queryResult=s=>t.http.get("/registration/monitor/getResult",{params:s,custom:{auth:!0}}),exports.transfer=(s,e)=>t.http.post(`/registratiom/transferTask/${e}`,s,{custom:{auth:!0}});
@@ -11,7 +11,8 @@ @@ -11,7 +11,8 @@
11 "pages/ownerDetail/ownerDetail", 11 "pages/ownerDetail/ownerDetail",
12 "pages/societyHome/societyHome", 12 "pages/societyHome/societyHome",
13 "pages/societyMy/societyMy", 13 "pages/societyMy/societyMy",
14 - "pages/employeeRealName/employeeRealName" 14 + "pages/employeeRealName/employeeRealName",
  15 + "pages/societyOrder/societyOrder"
15 ], 16 ],
16 "window": { 17 "window": {
17 "navigationBarTextStyle": "black", 18 "navigationBarTextStyle": "black",
1 -"use strict";const t=require("../common/vendor.js"),e={__name:"carCard",props:{carInfo:{type:Object,require:!0},tipContent:{type:String,default:""}},emits:["onSkip"],setup(e,{emit:o}){const r=e,a=o,n=t.computed((()=>({"进行中":"#D5E5FF","已完成":"#dbf1e1","已作废":"#FFD5D5"}[r.carInfo.status]||"#D5E5FF"))),c=t.computed((()=>({"进行中":"#3680FE","已完成":"#19be6b","已作废":"#C81515"}[r.carInfo.status]||"#3680FE"))),s=()=>{a("onSkip",r.carInfo.carId)};return(o,r)=>{var a;return{a:t.t((null==(a=e.carInfo)?void 0:a.status)||e.tipContent),b:n.value,c:c.value,d:t.o(s)}}}},o=t._export_sfc(e,[["__scopeId","data-v-2a38acce"]]);wx.createComponent(o); 1 +"use strict";const t=require("../common/vendor.js"),e={__name:"carCard",props:{carInfo:{type:Object,require:!0},tipContent:{type:String,default:""}},setup(e){const r=e,o=t.computed((()=>{var t;return{"进行中":"#D5E5FF","已完成":"#dbf1e1","已作废":"#FFD5D5"}[(null==(t=r.carInfo)?void 0:t.policyStatus)||0]||"#D5E5FF"})),n=t.computed((()=>{var t;return{"进行中":"#3680FE","已完成":"#19be6b","已作废":"#C81515"}[(null==(t=r.carInfo)?void 0:t.policyStatus)||0]||"#3680FE"}));return(r,a)=>{var c;return{a:t.t((null==(c=e.carInfo)?void 0:c.policyStatus)??e.tipContent),b:o.value,c:n.value,d:t.o(((...t)=>r.skip&&r.skip(...t)))}}}},r=t._export_sfc(e,[["__scopeId","data-v-de00bfb1"]]);wx.createComponent(r);
1 -<view class="carCard data-v-2a38acce" bindtap="{{d}}"><slot name="header"></slot><slot name="center"></slot><view class="rowLine data-v-2a38acce"></view><slot name="footer"></slot><view class="tip data-v-2a38acce" style="{{'background-color:' + b + ';' + ('color:' + c)}}">{{a}}</view></view>  
  1 +<view class="carCard data-v-de00bfb1" bindtap="{{d}}"><slot name="header"></slot><slot name="center"></slot><view class="rowLine data-v-de00bfb1"></view><slot name="footer"></slot><view class="tip data-v-de00bfb1" style="{{'background-color:' + b + ';' + ('color:' + c)}}">{{a}}</view></view>
1 -.carCard.data-v-2a38acce{position:relative;padding:20rpx 30rpx 34rpx;box-shadow:0 8rpx 40rpx rgba(10,22,44,.06);background:#fff;border-radius:20rpx}.carCard .rowLine.data-v-2a38acce{width:100%;height:2rpx;background-color:#eee;margin:20rpx 0}.carCard .tip.data-v-2a38acce{position:absolute;top:0;right:0;width:120rpx;height:40rpx;text-align:center;font-size:20rpx;line-height:40rpx;border-radius:0rpx 20rpx;color:#3680fe;background-color:#d5e5ff} 1 +.carCard.data-v-de00bfb1{position:relative;padding:20rpx 30rpx 34rpx;box-shadow:0 8rpx 40rpx rgba(10,22,44,.06);background:#fff;border-radius:20rpx}.carCard .rowLine.data-v-de00bfb1{width:100%;height:2rpx;background-color:#eee;margin:20rpx 0}.carCard .tip.data-v-de00bfb1{position:absolute;top:0;right:0;padding:0 20rpx;text-align:center;font-size:20rpx;line-height:40rpx;border-radius:0rpx 20rpx;color:#3680fe;background-color:#d5e5ff}