This commit is contained in:
weipengfei 2023-08-18 16:10:32 +08:00
commit afabc19f0f
17 changed files with 7077 additions and 3043 deletions

78
App.vue
View File

@ -1,46 +1,46 @@
<script> <script>
// var jpushModule = uni.requireNativePlugin("JG-JPush"); // var jpushModule = uni.requireNativePlugin("JG-JPush");
var jpushModule = uni.requireNativePlugin("JG-JPush"); var jpushModule = uni.requireNativePlugin("JG-JPush");
export default { export default {
onLaunch: function () { onLaunch: function() {
console.log('App Launch') console.log('App Launch')
try { try {
if (!this.$store.state.app.token) uni.redirectTo({ if (!this.$store.state.app.token) uni.redirectTo({
url: '/pages/oaLogin/oaLogin' url: '/pages/oaLogin/oaLogin'
}) })
} catch (e) { } catch (e) {
uni.redirectTo({ uni.redirectTo({
url: '/pages/oaLogin/oaLogin' url: '/pages/oaLogin/oaLogin'
}) })
} }
// jpushModule.initJPushService() // jpushModule.initJPushService()
// const audioContext = uni.createInnerAudioContext() // const audioContext = uni.createInnerAudioContext()
// audioContext.src = './static/mp3/order.mp3' // audioContext.src = './static/mp3/order.mp3'
// let ida = [0] // let ida = [0]
// jpushModule.addNotificationListener(function (result) { // jpushModule.addNotificationListener(function (result) {
// if (!ida.includes(result.messageID)) { // if (!ida.includes(result.messageID)) {
// audioContext.play() // audioContext.play()
// } // }
// ida.push(result.messageID) // ida.push(result.messageID)
// }) // })
}, },
onShow: function () { onShow: function() {
console.log('App Show') console.log('App Show')
}, },
onHide: function () { onHide: function() {
console.log('App Hide') console.log('App Hide')
} }
} }
</script> </script>
<style> <style>
/*每个页面公共css */ /*每个页面公共css */
@import "static/css/base.css"; @import "static/css/base.css";
@import "static/css/style.scss"; @import "static/css/style.scss";
view { view {
box-sizing: border-box; box-sizing: border-box;
} }
</style> </style>

File diff suppressed because it is too large Load Diff

19
main.js
View File

@ -7,6 +7,7 @@ import uView from '@/uni_modules/uview-ui'
import taskCard from "@/components/taskCard/taskCard.vue" import taskCard from "@/components/taskCard/taskCard.vue"
import mybtn from "@/components/mybtn/mybtn.vue" import mybtn from "@/components/mybtn/mybtn.vue"
import company from "@/components/company/company.vue" import company from "@/components/company/company.vue"
Vue.use(uView) Vue.use(uView)
Vue.use(taskCard) Vue.use(taskCard)
Vue.use(mybtn) Vue.use(mybtn)
@ -19,18 +20,20 @@ import Vue from 'vue'
Vue.config.productionTip = false Vue.config.productionTip = false
App.mpType = 'app' App.mpType = 'app'
const app = new Vue({ const app = new Vue({
...App, ...App,
store store
}) })
app.$mount() app.$mount()
// #endif // #endif
// #ifdef VUE3 // #ifdef VUE3
import { createSSRApp } from 'vue' import {
createSSRApp
} from 'vue'
export function createApp() { export function createApp() {
const app = createSSRApp(App) const app = createSSRApp(App)
return { return {
app app
} }
} }
// #endif // #endif

3158
package-lock.json generated

File diff suppressed because it is too large Load Diff

6
package.json Normal file
View File

@ -0,0 +1,6 @@
{
"devDependencies": {
"node-sass": "^9.0.0",
"sass-loader": "^13.3.2"
}
}

View File

@ -1,86 +1,86 @@
{ {
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages "pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{ {
"path": "pages/oaHome/oaHome", "path": "pages/oaHome/oaHome",
"style": { "style": {
"navigationBarTitleText": "首页", "navigationBarTitleText": "首页",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"app-plus": { "app-plus": {
"titleNView": false "titleNView": false
} }
} }
}, },
{ {
"path": "pages/oaLogin/oaLogin", "path": "pages/oaLogin/oaLogin",
"style": { "style": {
"navigationBarTitleText": "登录", "navigationBarTitleText": "登录",
"app-plus": { "app-plus": {
"titleNView": false "titleNView": false
} }
} }
}, },
{ {
"path": "pages/business/business", "path": "pages/business/business",
"style": { "style": {
"navigationBarTitleText": "商机信息", "navigationBarTitleText": "商机信息",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {
"navigationBarTitleText": "uni-app", "navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/oaExamine/oaExamine", "path": "pages/oaExamine/oaExamine",
"style": { "style": {
"navigationBarTitleText": "审批", "navigationBarTitleText": "审批",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/oaTask/oaTask", "path": "pages/oaTask/oaTask",
"style": { "style": {
"navigationBarTitleText": "今日任务", "navigationBarTitleText": "今日任务",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/oaMy/oaMy", "path": "pages/oaMy/oaMy",
"style": { "style": {
"navigationBarTitleText": "我的", "navigationBarTitleText": "我的",
"app-plus": { "app-plus": {
"titleNView": false "titleNView": false
} }
} }
}, { }, {
"path": "pages/oaManager/oaManager", "path": "pages/oaManager/oaManager",
"style": { "style": {
"navigationBarTitleText": "片区经理", "navigationBarTitleText": "片区经理",
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "pages/oaNews/oaNews", "path": "pages/oaNews/oaNews",
"style": { "style": {
"navigationBarTitleText": "公告详情", "navigationBarTitleText": "公告详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "pages/logistics/index", "path": "pages/logistics/index",
@ -118,414 +118,414 @@
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "pages/updatePasswprd/updatePasswprd", "path": "pages/updatePasswprd/updatePasswprd",
"style": { "style": {
"navigationBarTitleText": "修改密码", "navigationBarTitleText": "修改密码",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
} }
], ],
"subPackages": [{ "subPackages": [{
"root": "pages/views", "root": "pages/views",
"name": "views", "name": "views",
"pages": [{ "pages": [{
"path": "application", "path": "application",
"style": { "style": {
"navigationBarTitleText": "地图首页", "navigationBarTitleText": "地图首页",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{ {
"path": "new_task", "path": "new_task",
"style": { "style": {
"navigationBarTitleText": "新建任务", "navigationBarTitleText": "新建任务",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, },
{ {
"path": "com_approve", "path": "com_approve",
"style": { "style": {
"navigationBarTitleText": "通用审批", "navigationBarTitleText": "通用审批",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, { }, {
"path": "personal_center", "path": "personal_center",
"style": { "style": {
"navigationBarTitleText": "个人中心1", "navigationBarTitleText": "个人中心1",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, { }, {
"path": "task_details", "path": "task_details",
"style": { "style": {
"navigationBarTitleText": "", "navigationBarTitleText": "",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, { }, {
"path": "personal_center_two", "path": "personal_center_two",
"style": { "style": {
"navigationBarTitleText": "个人中心2", "navigationBarTitleText": "个人中心2",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
}, { }, {
"path": "public_document", "path": "public_document",
"style": { "style": {
"navigationBarTitleText": "公司公示文档", "navigationBarTitleText": "公司公示文档",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "leave_request", "path": "leave_request",
"style": { "style": {
"navigationBarTitleText": "请假申请", "navigationBarTitleText": "请假申请",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
} }
] ]
}, { }, {
"root": "subpkg", "root": "subpkg",
"name": "subpkg", "name": "subpkg",
"pages": [{ "pages": [{
"path": "personnel/personnel", "path": "personnel/personnel",
"style": { "style": {
"navigationBarTitleText": "人员管理", "navigationBarTitleText": "人员管理",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "finance/finance", "path": "finance/finance",
"style": { "style": {
"navigationBarTitleText": "财务管理", "navigationBarTitleText": "财务管理",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "topUp/topUp", "path": "topUp/topUp",
"style": { "style": {
"navigationBarTitleText": "账户充值", "navigationBarTitleText": "账户充值",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white", "navigationBarTextStyle": "white",
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"buttons": [{ "buttons": [{
"color": "#fff", "color": "#fff",
"text": "充值记录", "text": "充值记录",
"fontSize": "15", "fontSize": "15",
"width": "90" "width": "90"
}] }]
} }
} }
} }
}, { }, {
"path": "contract/contract", "path": "contract/contract",
"style": { "style": {
"navigationBarTitleText": "合同管理", "navigationBarTitleText": "合同管理",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "contractDetail/contractDetail", "path": "contractDetail/contractDetail",
"style": { "style": {
"navigationBarTitleText": "合同详情", "navigationBarTitleText": "合同详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "pdfView/pdfView", "path": "pdfView/pdfView",
"style": { "style": {
"navigationBarTitleText": "合同内容", "navigationBarTitleText": "合同内容",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "companyInfo/companyInfo", "path": "companyInfo/companyInfo",
"style": { "style": {
"navigationBarTitleText": "公司信息", "navigationBarTitleText": "公司信息",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "companySign/companySign", "path": "companySign/companySign",
"style": { "style": {
"navigationBarTitleText": "签约公司详情", "navigationBarTitleText": "签约公司详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "personnelDetails/personnelDetails", "path": "personnelDetails/personnelDetails",
"style": { "style": {
"navigationBarTitleText": "人员详细信息", "navigationBarTitleText": "人员详细信息",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "orderDetail/orderDetail", "path": "orderDetail/orderDetail",
"style": { "style": {
"navigationBarTitleText": "流水详情", "navigationBarTitleText": "流水详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "withdrawDeposit/withdrawDeposit", "path": "withdrawDeposit/withdrawDeposit",
"style": { "style": {
"navigationBarTitleText": "提现余额", "navigationBarTitleText": "提现余额",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white", "navigationBarTextStyle": "white",
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"buttons": [{ "buttons": [{
"color": "#fff", "color": "#fff",
"text": "提现记录", "text": "提现记录",
"fontSize": "15", "fontSize": "15",
"width": "90" "width": "90"
}] }]
} }
} }
} }
}, { }, {
"path": "withdrawList/withdrawList", "path": "withdrawList/withdrawList",
"style": { "style": {
"navigationBarTitleText": "提现记录", "navigationBarTitleText": "提现记录",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "noticeList/noticeList", "path": "noticeList/noticeList",
"style": { "style": {
"navigationBarTitleText": "公告列表", "navigationBarTitleText": "公告列表",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "topUpList/topUpList", "path": "topUpList/topUpList",
"style": { "style": {
"navigationBarTitleText": "充值记录", "navigationBarTitleText": "充值记录",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "companyAdmin/companyAdmin", "path": "companyAdmin/companyAdmin",
"style": { "style": {
"navigationBarTitleText": "公司管理", "navigationBarTitleText": "公司管理",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "newPersonnel/newPersonnel", "path": "newPersonnel/newPersonnel",
"style": { "style": {
"navigationBarTitleText": "新增人员", "navigationBarTitleText": "新增人员",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "archives/archives", "path": "archives/archives",
"style": { "style": {
"navigationBarTitleText": "档案管理", "navigationBarTitleText": "档案管理",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "newArchives/newArchives", "path": "newArchives/newArchives",
"style": { "style": {
"navigationBarTitleText": "信息登记", "navigationBarTitleText": "信息登记",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "updateArchives/updateArchives", "path": "updateArchives/updateArchives",
"style": { "style": {
"navigationBarTitleText": "信息更新", "navigationBarTitleText": "信息更新",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "fixedAssets/fixedAssets", "path": "fixedAssets/fixedAssets",
"style": { "style": {
"navigationBarTitleText": "固定资产", "navigationBarTitleText": "固定资产",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "taskAdmin/taskAdmin", "path": "taskAdmin/taskAdmin",
"style": { "style": {
"navigationBarTitleText": "任务管理", "navigationBarTitleText": "任务管理",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "archivesDetail/archivesDetail", "path": "archivesDetail/archivesDetail",
"style": { "style": {
"navigationBarTitleText": "档案详情", "navigationBarTitleText": "档案详情",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "captain/captain", "path": "captain/captain",
"style": { "style": {
"navigationBarTitleText": "队长列表", "navigationBarTitleText": "队长列表",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "companyFinance/companyFinance", "path": "companyFinance/companyFinance",
"style": { "style": {
"navigationBarTitleText": "公司财务", "navigationBarTitleText": "公司财务",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "companyUnsign/companyUnsign", "path": "companyUnsign/companyUnsign",
"style": { "style": {
"navigationBarTitleText": "未签约公司列表", "navigationBarTitleText": "未签约公司列表",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "submit/submit", "path": "submit/submit",
"style": { "style": {
"navigationBarTitleText": "提交审核", "navigationBarTitleText": "提交审核",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "dispatching/dispatching", "path": "dispatching/dispatching",
"style": { "style": {
"navigationBarTitleText": "任务:宣传配送", "navigationBarTitleText": "任务:宣传配送",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "blockTransaction/blockTransaction", "path": "blockTransaction/blockTransaction",
"style": { "style": {
"navigationBarTitleText": "任务:片区交易", "navigationBarTitleText": "任务:片区交易",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, { }, {
"path": "fileTask/fileTask", "path": "fileTask/fileTask",
"style": { "style": {
"navigationBarTitleText": "已更新商机", "navigationBarTitleText": "已更新商机",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#3175f9", "navigationBarBackgroundColor": "#0122C7",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}] }]
}], }],
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app", "navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8", "navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8" "backgroundColor": "#F8F8F8"
}, },
"tabBar": { "tabBar": {
"color": "#282828", "color": "#282828",
"selectedColor": "#3175f9", "selectedColor": "#0122C7",
"borderStyle": "white", "borderStyle": "white",
"backgroundColor": "#ffffff", "backgroundColor": "#ffffff",
"list": [{ "list": [{
"pagePath": "pages/oaHome/oaHome", "pagePath": "pages/oaHome/oaHome",
"text": "首页", "text": "首页",
"iconPath": "/static/tabs-icon/home.png", "iconPath": "/static/tabs-icon/home.png",
"selectedIconPath": "/static/tabs-icon/home-a.png" "selectedIconPath": "/static/tabs-icon/home-a.png"
}, },
{ {
"pagePath": "pages/oaExamine/oaExamine", "pagePath": "pages/oaExamine/oaExamine",
"text": "审批", "text": "审批",
"iconPath": "/static/tabs-icon/Task.png", "iconPath": "/static/tabs-icon/Task.png",
"selectedIconPath": "/static/tabs-icon/Task-a.png" "selectedIconPath": "/static/tabs-icon/Task-a.png"
}, },
{ {
"pagePath": "pages/oaTask/oaTask", "pagePath": "pages/oaTask/oaTask",
"text": "任务", "text": "任务",
"iconPath": "/static/tabs-icon/approval.png", "iconPath": "/static/tabs-icon/approval.png",
"selectedIconPath": "/static/tabs-icon/approval-a.png" "selectedIconPath": "/static/tabs-icon/approval-a.png"
}, },
// { // {
// "pagePath": "pages/oaManager/oaManager", // "pagePath": "pages/oaManager/oaManager",
// "text": "片区经理", // "text": "片区经理",
// "iconPath": "/static/tabs-icon/manager.png", // "iconPath": "/static/tabs-icon/manager.png",
// "selectedIconPath": "/static/tabs-icon/manager-a.png" // "selectedIconPath": "/static/tabs-icon/manager-a.png"
// }, // },
{ {
"pagePath": "pages/business/business", "pagePath": "pages/business/business",
"text": "商机", "text": "商机",
"iconPath": "/static/tabs-icon/manager.png", "iconPath": "/static/tabs-icon/manager.png",
"selectedIconPath": "/static/tabs-icon/manager-a.png" "selectedIconPath": "/static/tabs-icon/manager-a.png"
}, },
{ {
"pagePath": "pages/oaMy/oaMy", "pagePath": "pages/oaMy/oaMy",
"text": "我的", "text": "我的",
"iconPath": "/static/tabs-icon/my.png", "iconPath": "/static/tabs-icon/my.png",
"selectedIconPath": "/static/tabs-icon/my-a.png" "selectedIconPath": "/static/tabs-icon/my-a.png"
} }
] ]
}, },
"uniIdRouter": {} "uniIdRouter": {}
} }

View File

@ -1,114 +1,132 @@
<template> <template>
<view> <view>
<u-sticky bgColor="#0122C7" style="width: 100vw"> <!-- <globalPopup ref="globalPopup"></globalPopup> -->
<u-tabs <u-sticky bgColor="#0122C7" style="width: 100vw;">
:list="tabLists" <u-tabs :list="tabLists" @change="sectionChange" lineColor='#fff' :scrollable="false" lineWidth='40'
@change="sectionChange" inactiveStyle='color:#fff' activeStyle="color:#fff"></u-tabs>
lineColor="#fff" </u-sticky>
:scrollable="false" <view class="content">
lineWidth="40" <u-search placeholder="搜索你的订单" @search="getOrderList" :show-action='false' bg-color='white'
inactiveStyle="color:#fff" v-model="keywords"></u-search>
activeStyle="color:#fff" <view v-if="!orderlist.length">
></u-tabs> <u-empty mode="data" icon="../../static/img/empty/data.png">
</u-sticky> </u-empty>
<view class="content"> </view>
<u-search <view v-else>
placeholder="搜索你的订单" <logistiCard ref="logistiCards" v-for='(item,index) in orderlist' @getlist="getOrderList"
@search="getOrderList" @showTost='showToast' @showToast2="showToast2" :goodsInfo="item" :key="index">
:show-action="false" </logistiCard>
bg-color="white" </view>
v-model="keywords" <!-- -->
></u-search> <u-toast ref="uToast"></u-toast>
<view v-if="!orderlist.length"> </view>
<u-empty mode="data" icon="../../static/img/empty/data.png"> </u-empty>
</view>
<view v-else> </view>
<logistiCard
ref="logistiCards"
v-for="(item, index) in orderlist"
@getlist="getOrderList"
@showTost="showToast"
@showToast2="showToast2"
:goodsInfo="item"
:key="index"
>
</logistiCard>
</view>
<!-- -->
<u-toast ref="uToast"></u-toast>
</view>
</view>
</template> </template>
<script> <script>
import { import {
getList getList
} from "@/api/logistics.js" } from "@/api/logistics.js"
import { // import globalPopup from "@/components/GlobalPopup/GlobalPopup.vue"
informationAdd import {
} from "@/api/logistics.js" informationAdd
import logistiCard from "@/components/logistiComptent/logistiCard/logistiCard.vue" } from "@/api/logistics.js"
export default { import logistiCard from "@/components/logistiComptent/logistiCard/logistiCard.vue"
components: { //#ifdef APP-PLUS
logistiCard var jpushModule = uni.requireNativePlugin("JG-JPush");
}, // #endif
data () { export default {
return { components: {
keywords: "", logistiCard,
list: ['待取货', '已取货', '已送达'], // globalPopup
curNow: 0, },
orderlist: [] data() {
} return {
}, notArr: [],
methods: { keywords: "",
sectionChange (index) { tabLists: [{
this.curNow = index; name: '待配送',
this.getOrderList() }, {
}, name: '待送达'
}, {
name: '已送达'
}],
curNow: 0,
orderlist: []
}
},
methods: {
go() {
uni.navigateTo({
url: "/pages/logistics/te"
})
},
sectionChange(index) {
showToast () { this.curNow = index.index;
// 6 this.getOrderList()
this.$refs.uToast.show({ },
type: 'success',
title: '成功主题(带图标)',
message: "操作成功",
iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
})
},
showToast2 () {
// 6
this.$refs.uToast.show({ showToast() {
type: 'error', // 6
message: "取件码不能为空", this.$refs.uToast.show({
iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png' type: 'success',
},) title: '成功主题(带图标)',
}, message: "操作成功",
getOrderList () { iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
console.log("列表更新") })
let id = JSON.parse(uni.getStorageSync('USER_INFO')).id },
getList({ showToast2() {
status: this.curNow, // 6
courier_id: id,
keywords: this.keywords
}).then(res => {
this.orderlist = []
this.orderlist = res.data.data
})
}
}, this.$refs.uToast.show({
onLoad () { }, type: 'error',
onShow () { message: "取件码不能为空",
this.getOrderList() iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
} }, )
},
getOrderList() {
console.log("列表更新")
let id = JSON.parse(uni.getStorageSync('USER_INFO')).id
getList({
status: this.curNow,
courier_id: id,
keywords: this.keywords
}).then(res => {
this.orderlist = []
this.orderlist = res.data.data
})
}
} },
onLoad() {
let that = this
//#ifdef APP-PLUS
jpushModule.addNotificationListener(function(result) {
if (!that.notArr.includes(result.messageID)) {
that.$refs.globalPopup.showPopu();
that.getOrderList()
}
that.notArr.push(result.messageID)
})
// #endif
},
onShow() {
this.getOrderList()
}
}
</script> </script>
<style lang='scss'> <style lang='scss'>
.content { .content {
background-color: #f5f5f5; margin-top: 2vh;
padding: 1vh 2vw; background-color: #F5F5F5;
} padding: 0vh 2vw;
}
</style> </style>

View File

@ -1,3 +1,5 @@
<!-- -->
<template> <template>
<view> <view>
<button @click="test2">按钮</button> <button @click="test2">按钮</button>

File diff suppressed because it is too large Load Diff

1
static/css/global.scss Normal file
View File

@ -0,0 +1 @@
$base-color: #0122c7;

View File

@ -1,233 +1,463 @@
<template> <template>
<view class=""> <view class="">
<view class="personnel_list"> <!-- <view class="personnel_list">
<view class="item" v-for="(item, index) in list" :key="item.id"> <view class="item" v-for="(item, index) in list" :key="item.id">
<view class="top"> <view class="top">
<image class="avatar" src="../../static/img/public/record.png"></image> <image class="avatar" src="../../static/img/public/record.png"></image>
<view class="body"> <view class="body">
<view>姓名:<text class="name">{{item.name}}</text></view> <view>姓名:<text class="name">{{item.name}}</text></view>
<view> <view>
片区:<text class="name">{{(item.village_name||'')+(item.brigade_name||'')}}</text> 片区:<text class="name">{{(item.village_name||'')+(item.brigade_name||'')}}</text>
</view> </view>
<view>电话:<text class="name">{{item.phone}}</text></view> <view>电话:<text class="name">{{item.phone}}</text></view>
</view>
</view>
<u-line color="#cccccc"></u-line>
<view class="bottom">
<view>更新时间: {{item.update_time}}</view>
<view class="right" v-if="showView">
<view class="update"
@click="navTo(`/subpkg/updateArchives/updateArchives?id=${item.id}&task_id=${task_id}`)">
更新
</view>
<view class="look" @click="navTo('/subpkg/archivesDetail/archivesDetail?id='+item.id)">
查看
</view>
</view>
</view>
</view>
<u-empty v-if="loadConfig.status=='nomore'&& list.length==0" text="没有档案" icon="/static/img/empty/list.png">
</u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view>
-->
<view class="personnel_list">
<view class="card" v-for="(item, index) in list" :key="item.id">
<view class="card_head">
<text style="font-size: 32rpx">最后更新: {{item.update_time.substring(0, 10)}}</text>
<text v-if="showView"
@click="navTo(`/subpkg/updateArchives/updateArchives?id=${item.id}&task_id=${task_id}`)">更新档案</text>
<text v-if="showView"
@click="navTo('/subpkg/archivesDetail/archivesDetail?id='+item.id)">查看档案</text>
</view>
<view class="card_content">
<view class="right">
<view class="">
<text>人员姓名 :</text>
<text> {{item.name}}</text>
</view>
<view class="">
<text>联系电话 :</text>
<text>{{item.phone}}</text>
</view>
<view class="">
<text>所属片区 :</text>
<text>{{(item.village_name||'')+(item.brigade_name||'')}}</text>
</view>
</view>
<view class="left">
<view class="cir">
<u--image class="u_avatar" :showLoading="true" :src=" '../../static/img/public/man.png'"
width="112.28rpx" height="112.28rpx" shape="circle"></u--image>
</view>
</view>
</view>
</view>
<!-- <block v-for="(item, index) in list" :key="item.id">
<view class="personnel_item" @click="navTo('/subpkg/archives/archives?id='+item.id)">
<view class="type" :class="item.is_contract?'type_blue':''">
<image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image>
<image v-else src="../../static/icons/err_w.png"></image>
</view> </view>
</view> <view class="top" style="margin-bottom: 28rpx;">
<u-line color="#cccccc"></u-line> <view class="left">
<view class="bottom"> <u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'"
<view>更新时间: {{item.update_time}}</view> width="112.28rpx" height="112.28rpx" shape="circle"></u--image>
<view class="right" v-if="showView">
<view class="update" @click="navTo(`/subpkg/updateArchives/updateArchives?id=${item.id}&task_id=${task_id}`)">
更新
</view> </view>
<view class="look" @click="navTo('/subpkg/archivesDetail/archivesDetail?id='+item.id)"> <view class="right">
查看 <view class="info_top">
<view class="info_name">{{item.nickname}}</view>
<text class="phone">电话:</text>
<text class="tel">{{item.phone||item.account}}</text>
</view>
<view class="info_bottom">
<text class="item phone">
分管片区:
</text>
<view class="item">
<view class="location">
<text>{{ (item.street_name||'')+(item.village_name||'')+(item.brigade_name||'') }}</text>
</view>
</view>
</view>
<view class="info_bottom">
<text class="item phone">
所属公司:
</text>
<view class="item" v-if="item.company">
<view class="location">
{{item.company.company_name}}
</view>
</view>
</view>
</view> </view>
</view> </view>
<u-line color="#999999FF"></u-line>
<view class="bottom" style="margin-top: 28rpx;float: right;">
<view class="look">{{'管理户数: '+item.informationg_count+" 户"}}</view>
</view>
</view> </view>
</view> </block> -->
<u-empty v-if="loadConfig.status=='nomore'&& list.length==0" text="没有档案" icon="/static/img/empty/list.png"> <u-empty v-if="loadConfig.status == 'nomore' && list.length == 0"
</u-empty> icon="/static/img/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText" <u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view> </view>
<mybtn text="信息登记" v-if="showView" @click="navTo('/subpkg/newArchives/newArchives')"></mybtn>
</view>
<mybtn text="信息登记" v-if="showView" @click="navTo('/subpkg/newArchives/newArchives')"></mybtn>
</view>
</template> </template>
<script> <script>
import { import {
informationList informationList
} from "@/api/information.js"; } from "@/api/information.js";
import { import {
taskInformationgist taskInformationgist
} from "@/api/task.js"; } from "@/api/task.js";
import { import {
Toast Toast
} from "../../libs/uniApi"; } from "../../libs/uniApi";
export default { export default {
data() { data() {
return { return {
user_id: -1, user_id: -1,
task_id: -1, task_id: -1,
is_admin: false, is_admin: false,
list: [], list: [],
loadConfig: { loadConfig: {
page: 1, page: 1,
limit: 15, limit: 15,
loadingText: '努力加载中', loadingText: '努力加载中',
loadmoreText: '轻轻上拉', loadmoreText: '轻轻上拉',
nomoreText: '我也是有底线的~~', nomoreText: '我也是有底线的~~',
status: 'loadmore' status: 'loadmore'
}, },
} }
}, },
onLoad(options) { onLoad(options) {
// id // id
if (options.id) this.user_id = options.id; if (options.id) this.user_id = options.id;
else if (this.$store.state.app.userInfo.admin_id == 0) { //,id else if (this.$store.state.app.userInfo.admin_id == 0) { //,id
this.user_id = this.$store.state.app.userInfo.id; this.user_id = this.$store.state.app.userInfo.id;
}else { // } else { //
this.is_admin = true; this.is_admin = true;
} }
// //
if(options.task_id) { if (options.task_id) {
this.task_id = options.task_id; this.task_id = options.task_id;
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '任务:信息更新' title: '任务:信息更新'
}) })
} }
this.loadInformationList(); this.loadInformationList();
uni.$on('loadArchives', this.initLoad); uni.$on('loadArchives', this.initLoad);
}, },
onShow() { onShow() {
}, },
computed: { computed: {
// //
showView() { showView() {
return !this.$store.state.app.userInfo.admin_id && this.$store.state.app.userInfo.is_captain; return !this.$store.state.app.userInfo.admin_id && this.$store.state.app.userInfo.is_captain;
} }
}, },
onReachBottom() { onReachBottom() {
this.loadInformationList(); this.loadInformationList();
}, },
methods: { methods: {
navTo(url) { navTo(url) {
if (url) { if (url) {
uni.showLoading({ uni.showLoading({
title: '加载中', title: '加载中',
mask: true mask: true
}) })
uni.navigateTo({ uni.navigateTo({
url: url, url: url,
success() { success() {
uni.hideLoading() uni.hideLoading()
} }
}) })
} else Toast('暂未开放'); } else Toast('暂未开放');
}, },
async initLoad() { async initLoad() {
this.loadConfig.page = 1; this.loadConfig.page = 1;
this.loadConfig.status = "loadmore"; this.loadConfig.status = "loadmore";
this.list = []; this.list = [];
this.is_admin?null:await this.loadInformationList(); this.is_admin ? null : await this.loadInformationList();
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
}, },
async loadInformationList() { async loadInformationList() {
let that = this; let that = this;
if (this.loadConfig.status == "nomore") return; if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "loading" this.loadConfig.status = "loading"
let res = {}; let res = {};
if(this.is_admin) res = await taskInformationgist({ if (this.is_admin) res = await taskInformationgist({
id: this.task_id id: this.task_id
}); });
else res = await informationList({ else res = await informationList({
page: this.loadConfig.page, page: this.loadConfig.page,
limit: this.loadConfig.limit, limit: this.loadConfig.limit,
user_id: that.user_id user_id: that.user_id
}) })
this.loadConfig.status = "loadmore" this.loadConfig.status = "loadmore"
if (res.data.length < this.loadConfig.limit) { if (res.data.length < this.loadConfig.limit) {
this.loadConfig.status = "nomore" this.loadConfig.status = "nomore"
} else { } else {
this.loadConfig.page++; this.loadConfig.page++;
} }
this.list = [...this.list, ...res.data]; this.list = [...this.list, ...res.data];
} }
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.initLoad(); this.initLoad();
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss">
.new_btn { .new_btn {
position: fixed; position: fixed;
bottom: 28rpx; bottom: 28rpx;
left: 50%; left: 50%;
transform: translate(-50%); transform: translate(-50%);
margin-top: 32rpx; margin-top: 32rpx;
// margin-bottom: 40rpx; // margin-bottom: 40rpx;
width: 694rpx; width: 694rpx;
height: 84rpx; height: 84rpx;
background: $theme-oa-color; background: $theme-oa-color;
border-radius: 42rpx 42rpx 42rpx 42rpx; border-radius: 42rpx 42rpx 42rpx 42rpx;
color: #fff; color: #fff;
line-height: 80rpx; line-height: 80rpx;
text-align: center; text-align: center;
} }
.personnel_list { .personnel_list {
padding: 28rpx 0; padding: 28rpx 0;
margin-bottom: 130rpx; margin-bottom: 130rpx;
.item { .card {
margin: 0 auto; margin: 0 auto;
width: 694rpx; margin-bottom: 28rpx;
// height: 201rpx; width: 694rpx;
background: #FFFFFF; background: #ffffff;
border-radius: 14rpx 14rpx 14rpx 14rpx; border-radius: 30rpx;
opacity: 1; opacity: 1;
margin-bottom: 21rpx; overflow: hidden;
box-sizing: border-box; box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
padding: 28rpx;
font-size: 24.53rpx;
color: #999999FF;
.top { .card_head {
display: flex; padding: 28rpx;
align-items: center; background-color: $theme-oa-color;
width: 100%; color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
}
.avatar { .card_content {
width: 120rpx; padding: 28rpx;
height: 120rpx; display: flex;
margin-right: 18rpx; justify-content: space-between;
margin-bottom: 12rpx;
}
.body { .left {
flex: 1; text-align: center;
font-size: 28rpx; // padding: 15rpx 25rpx;
color: #333; padding-top: 20rpx;
font-weight: bold;
.name {
font-size: 28rpx;
color: #333;
font-weight: 500;
display: inline-block;
margin-left: 18rpx;
}
}
}
.bottom {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20rpx;
font-size: 25rpx;
.right {
font-size: 28rpx;
display: flex;
.look {
color: $theme-oa-color;
}
.update {
color: #34A853;
margin-right: 38rpx;
}
}
}
} width: 160rpx;
background-color: $theme-oa-color;
color: white;
border-radius: 40rpx;
} .cir {
width: 120rpx;
height: 120rpx;
background-color: #ffffff;
margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
view {
text:nth-child(2) {
margin-left: 20rpx;
}
}
}
}
// .top {
// display: flex;
// justify-content: left;
// // align-items: center;
// .avatar {
// width: 88rpx;
// height: 88rpx;
// border-radius: 50%;
// margin-right: 18rpx;
// }
.u_avatar {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
// .text {
// display: flex;
// justify-content: space-around;
// flex-direction: column;
// .name {
// font-size: 32rpx;
// font-weight: 500;
// color: #333333;
// }
// .mobile {
// color: #999999;
// }
// }
// }
// .bottom {
// display: flex;
// justify-content: space-between;
// font-size: 25rpx;
// font-weight: 400;
// .left {
// display: flex;
// justify-content: left;
// align-items: center;
// margin-top: 20rpx;
// .circle {
// width: 11rpx;
// height: 11rpx;
// opacity: 1;
// border: 2rpx solid #34A853;
// margin-right: 10rpx;
// border-radius: 50%;
// }
// .green {
// font-weight: 400;
// color: #34A853;
// line-height: 0rpx;
// margin-right: 18rpx;
// -webkit-background-clip: text;
// }
// .b_l_text {
// width: 360rpx;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// }
// }
// .right {
// color: #3274F9;
// margin-top: 20rpx;
// }
// }
}
// .item {
// margin: 0 auto;
// width: 694rpx;
// // height: 201rpx;
// background: #FFFFFF;
// border-radius: 14rpx 14rpx 14rpx 14rpx;
// opacity: 1;
// margin-bottom: 21rpx;
// box-sizing: border-box;
// padding: 28rpx;
// font-size: 24.53rpx;
// color: #999999FF;
// .top {
// display: flex;
// align-items: center;
// width: 100%;
// .avatar {
// width: 120rpx;
// height: 120rpx;
// margin-right: 18rpx;
// margin-bottom: 12rpx;
// }
// .body {
// flex: 1;
// font-size: 28rpx;
// color: #333;
// font-weight: bold;
// .name {
// font-size: 28rpx;
// color: #333;
// font-weight: 500;
// display: inline-block;
// margin-left: 18rpx;
// }
// }
// }
// .bottom {
// display: flex;
// justify-content: space-between;
// align-items: center;
// margin-top: 20rpx;
// font-size: 25rpx;
// .right {
// font-size: 28rpx;
// display: flex;
// .look {
// color: $theme-oa-color;
// }
// .update {
// color: #34A853;
// margin-right: 38rpx;
// }
// }
// }
// }
}
</style> </style>

View File

@ -1,349 +1,377 @@
<template> <template>
<view class=""> <view class="">
<!-- <view class="top_box"> <!-- <view class="top_box">
<view class="item" :class="current==0?'active':''" @click="current=0">基本信息</view> <view class="item" :class="current==0?'active':''" @click="current=0">基本信息</view>
<view class="item" :class="current==1?'active':''" @click="current=1">商机信息</view> <view class="item" :class="current==1?'active':''" @click="current=1">商机信息</view>
</view> --> </view> -->
<u-sticky bgColor="#fff"> <u-sticky bgColor="#fff">
<u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false" lineWidth='40' <u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false" lineWidth='40'
inactiveStyle='color:#666' activeStyle="color:#3274F9"></u-tabs> inactiveStyle='color:#666' activeStyle="color:#3274F9"></u-tabs>
</u-sticky> </u-sticky>
<u-skeleton :style="{'margin': skeleton?28+'rpx':0}" :loading="skeleton" :animate="true" title rows="6" <u-skeleton :style="{'margin': skeleton?28+'rpx':0}" :loading="skeleton" :animate="true" title rows="6"
rows-width="100%" rowsHeight="56"> rows-width="100%" rowsHeight="56">
<u--form v-show="current==0" labelPosition="left" :model="formData" ref="archives"> <u--form v-show="current==0" labelPosition="left" :model="formData" ref="archives">
<view class="card"> <view class="card">
<view class="item"> <view class="item">
<view class="title">基本信息</view> <view class="title">基本信息</view>
<u-form-item labelWidth="auto" label="姓名" required prop="name" borderBottom> <u-form-item labelWidth="auto" label="姓名" required prop="name" borderBottom>
<u--input v-model="formData.name" :readonly="readonly" placeholder="请输入姓名"></u--input> <u--input v-model="formData.name" :readonly="readonly" placeholder="请输入姓名"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="性别" required prop="sex" borderBottom> <u-form-item label="性别" required prop="sex" borderBottom>
<u-radio-group v-model="formData.sex" :disabled="readonly" style="margin: 16rpx;"> <u-radio-group v-model="formData.sex" :disabled="readonly" style="margin: 16rpx;">
<u-radio :customStyle="{marginRight: '16px'}" <u-radio :customStyle="{marginRight: '16px'}"
v-for="(item, index) in [{value:1,label:'男'},{value:2,label:'女'}]" :key="index" :label="item.label" v-for="(item, index) in [{value:1,label:'男'},{value:2,label:'女'}]" :key="index"
:name="item.value"> :label="item.label" :name="item.value">
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
</u-form-item> </u-form-item>
<u-form-item label="年龄" required prop="age" borderBottom> <u-form-item label="年龄" required prop="age" borderBottom>
<u--input v-model="formData.age" :readonly="readonly" placeholder="请输入年龄"></u--input> <u--input v-model="formData.age" :readonly="readonly" placeholder="请输入年龄"></u--input>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" label="身份证号" required prop="id_card" borderBottom> <u-form-item labelWidth="auto" label="身份证号" required prop="id_card" borderBottom>
<u--input v-model="formData.id_card" :readonly="readonly" placeholder="请输入身份证号" type="idcard"></u--input> <u--input v-model="formData.id_card" :readonly="readonly" placeholder="请输入身份证号"
</u-form-item> type="idcard"></u--input>
<u-form-item labelWidth="auto" label="联系方式" required prop="phone" borderBottom> </u-form-item>
<u--input v-model="formData.phone" :readonly="readonly" placeholder="请输入手机号" type="number"></u--input> <u-form-item labelWidth="auto" label="联系方式" required prop="phone" borderBottom>
</u-form-item> <u--input v-model="formData.phone" :readonly="readonly" placeholder="请输入手机号"
</view> type="number"></u--input>
</view> </u-form-item>
<view class="card" style="margin-bottom: 0;"> </view>
<view class="item"> </view>
<view class="title">地区信息</view> <view class="card" style="margin-bottom: 0;">
<!-- <districtSelector ref="districtSelectorRef" :datas="formData" :readonly="true"></districtSelector> --> <view class="item">
<u-form-item labelWidth="auto" label="地址" borderBottom> <view class="title">地区信息</view>
<u--textarea :value="nowAddress" autoHeight readonly></u--textarea> <!-- <districtSelector ref="districtSelectorRef" :datas="formData" :readonly="true"></districtSelector> -->
</u-form-item> <u-form-item labelWidth="auto" label="地址" borderBottom>
<u-form-item labelWidth="auto" label="小队" required prop="address" borderBottom> <u--textarea :value="nowAddress" autoHeight readonly></u--textarea>
<!-- <u--input v-model="formData.brigade_name&&formData.brigade_name[0].brigade_name" :readonly="readonly" placeholder="请选择小队"></u--input> --> </u-form-item>
<u--input v-model="formData.brigade_name" :readonly="readonly" placeholder="请选择小队"></u--input> <u-form-item labelWidth="auto" label="小队" required prop="address" borderBottom>
</u-form-item> <!-- <u--input v-model="formData.brigade_name&&formData.brigade_name[0].brigade_name" :readonly="readonly" placeholder="请选择小队"></u--input> -->
<u-form-item labelWidth="auto" label="详细地址" required prop="address" borderBottom> <u--input v-model="formData.brigade_name" :readonly="readonly"
<u--input v-model="formData.address" :readonly="readonly" placeholder="请输入详细地址"></u--input> placeholder="请选择小队"></u--input>
</u-form-item> </u-form-item>
<u-form-item labelWidth="auto" label="汽车是否能到家" required prop="highway" borderBottom> <u-form-item labelWidth="auto" label="详细地址" required prop="address" borderBottom>
<u-radio-group v-model="formData.highway" :disabled="readonly" style="margin: 16rpx;"> <u--input v-model="formData.address" :readonly="readonly" placeholder="请输入详细地址"></u--input>
<u-radio :customStyle="{marginRight: '16px'}" </u-form-item>
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" <u-form-item labelWidth="auto" label="汽车是否能到家" required prop="highway" borderBottom>
:name="item.value"> <u-radio-group v-model="formData.highway" :disabled="readonly" style="margin: 16rpx;">
</u-radio> <u-radio :customStyle="{marginRight: '16px'}"
</u-radio-group> v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
</u-form-item> :label="item.label" :name="item.value">
<block value="智能手机"> </u-radio>
<u-form-item labelWidth="auto" label="是否使用智能手机" required prop="smart_phone" borderBottom> </u-radio-group>
<u-radio-group v-model="formData.smart_phone" :disabled="readonly" style="margin: 16rpx;"> </u-form-item>
<u-radio :customStyle="{marginRight: '16px'}" <block value="智能手机">
v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index" :label="item.label" <u-form-item labelWidth="auto" label="是否使用智能手机" required prop="smart_phone" borderBottom>
:name="item.value"> <u-radio-group v-model="formData.smart_phone" :disabled="readonly"
</u-radio> style="margin: 16rpx;">
</u-radio-group> <u-radio :customStyle="{marginRight: '16px'}"
</u-form-item> v-for="(item, index) in [{value:1,label:'是'},{value:0,label:'否'}]" :key="index"
<block v-if="formData.smart_phone>0"> :label="item.label" :name="item.value">
<u-form-item labelWidth="auto" label="微信号" required borderBottom> </u-radio>
<u--input v-model="formData.wechat" :readonly="readonly" placeholder="请输入微信号"></u--input> </u-radio-group>
</u-form-item> </u-form-item>
</block> <block v-if="formData.smart_phone>0">
</block> <u-form-item labelWidth="auto" label="微信号" required borderBottom>
</view> <u--input v-model="formData.wechat" :readonly="readonly"
</view> placeholder="请输入微信号"></u--input>
</u--form> </u-form-item>
<residents v-show="current==0" ref="residentsRef" :readonly="true" :datas="formData"></residents> </block>
<view v-show="current==1"> </block>
<block v-for="(item, index) in formData.datas" :key="'demand'+index+item.id"> </view>
<view class="update_time"> </view>
<view>更新时间:{{item.update_time}}</view> </u--form>
<view class="right">{{updateTo(item.update_time)}}</view> <residents v-show="current==0" ref="residentsRef" :readonly="true" :datas="formData"></residents>
</view> <view v-show="current==1">
<block> <block v-for="(item, index) in formData.datas" :key="'demand'+index+item.id">
<breeding v-if="item.id==32" ref="demandRef32" :datas="item.datas" :readonly="true"></breeding> <view class="update_time">
<plant v-if="item.id==7" ref="demandRef7" :datas="item.datas" :readonly="true"></plant> <view>更新时间:{{item.update_time}}</view>
<store v-if="item.id==8" ref="demandRef8" :datas="item.datas" :readonly="true"></store> <view class="right">{{updateTo(item.update_time)}}</view>
<deepProcessing v-if="item.id==9" ref="demandRef9" :datas="item.datas" :readonly="true"></deepProcessing> </view>
<thickProcessing v-if="item.id==10" ref="demandRef10" :datas="item.datas" :readonly="true"></thickProcessing> <block>
</block> <breeding v-if="item.id==32" ref="demandRef32" :datas="item.datas" :readonly="true"></breeding>
<block> <plant v-if="item.id==7" ref="demandRef7" :datas="item.datas" :readonly="true"></plant>
<houseRepair v-if="item.id==12" ref="demandRef12" :datas="item.datas" :readonly="true"></houseRepair> <store v-if="item.id==8" ref="demandRef8" :datas="item.datas" :readonly="true"></store>
<houseDecoration v-if="item.id==13" ref="demandRef13" :datas="item.datas" :readonly="true"></houseDecoration> <deepProcessing v-if="item.id==9" ref="demandRef9" :datas="item.datas" :readonly="true">
<houseRenovate v-if="item.id==14" ref="demandRef14" :datas="item.datas" :readonly="true"></houseRenovate> </deepProcessing>
<houseTransaction v-if="item.id==15" ref="demandRef15" :datas="item.datas" :readonly="true"></houseTransaction> <thickProcessing v-if="item.id==10" ref="demandRef10" :datas="item.datas" :readonly="true">
</block> </thickProcessing>
<block> </block>
<banquetMarry v-if="item.id==17" ref="demandRef17" :datas="item.datas" :readonly="true"></banquetMarry> <block>
<banquetBirthday v-if="item.id==18" ref="demandRef18" :datas="item.datas" :readonly="true"></banquetBirthday> <houseRepair v-if="item.id==12" ref="demandRef12" :datas="item.datas" :readonly="true">
<banquetFullMoon v-if="item.id==19" ref="demandRef19" :datas="item.datas" :readonly="true"></banquetFullMoon> </houseRepair>
<banquetOther v-if="item.id==20" ref="demandRef20" :datas="item.datas" :readonly="true"></banquetOther> <houseDecoration v-if="item.id==13" ref="demandRef13" :datas="item.datas" :readonly="true">
<banquetFuneral v-if="item.id==21" ref="demandRef21" :datas="item.datas" :readonly="true"></banquetFuneral> </houseDecoration>
</block> <houseRenovate v-if="item.id==14" ref="demandRef14" :datas="item.datas" :readonly="true">
</block> </houseRenovate>
<u-empty v-if="formData.datas.length==0" icon="/static/img/empty/data.png" text="没有数据"></u-empty> <houseTransaction v-if="item.id==15" ref="demandRef15" :datas="item.datas" :readonly="true">
</view> </houseTransaction>
</u-skeleton> </block>
</view> <block>
<banquetMarry v-if="item.id==17" ref="demandRef17" :datas="item.datas" :readonly="true">
</banquetMarry>
<banquetBirthday v-if="item.id==18" ref="demandRef18" :datas="item.datas" :readonly="true">
</banquetBirthday>
<banquetFullMoon v-if="item.id==19" ref="demandRef19" :datas="item.datas" :readonly="true">
</banquetFullMoon>
<banquetOther v-if="item.id==20" ref="demandRef20" :datas="item.datas" :readonly="true">
</banquetOther>
<banquetFuneral v-if="item.id==21" ref="demandRef21" :datas="item.datas" :readonly="true">
</banquetFuneral>
</block>
</block>
<u-empty v-if="formData.datas.length==0" icon="/static/img/empty/data.png" text="没有数据"></u-empty>
</view>
</u-skeleton>
</view>
</template> </template>
<script> <script>
import { Toast } from "../../libs/uniApi" import {
import { informationAdd, informationDetails } from "@/api/information.js" Toast
import { comonentList } from '@/static/server/archives.js' } from "../../libs/uniApi"
import { getTimeAgo } from "@/utils/time.js" import {
import districtSelector from "@/components/districtSelector/districtSelector.vue" // informationAdd,
import residents from "@/components/newArchives/residents.vue" // informationDetails
import breeding from "@/components/newArchives/breeding.vue" // } from "@/api/information.js"
import plant from "@/components/newArchives/plant.vue" // import {
import store from "@/components/newArchives/store.vue" // comonentList
import deepProcessing from "@/components/newArchives/deepProcessing.vue" // } from '@/static/server/archives.js'
import thickProcessing from "@/components/newArchives/thickProcessing.vue" // import {
import houseRepair from "@/components/newArchives/houseRepair.vue" // getTimeAgo
import houseDecoration from "@/components/newArchives/houseDecoration.vue" // } from "@/utils/time.js"
import houseRenovate from "@/components/newArchives/houseRenovate.vue" // import districtSelector from "@/components/districtSelector/districtSelector.vue" //
import houseTransaction from "@/components/newArchives/houseTransaction.vue" // import residents from "@/components/newArchives/residents.vue" //
import banquetMarry from "@/components/newArchives/banquetMarry.vue" // import breeding from "@/components/newArchives/breeding.vue" //
import banquetBirthday from "@/components/newArchives/banquetBirthday.vue" // 寿 import plant from "@/components/newArchives/plant.vue" //
import banquetFullMoon from "@/components/newArchives/banquetFullMoon.vue" // import store from "@/components/newArchives/store.vue" //
import banquetOther from "@/components/newArchives/banquetOther.vue" // import deepProcessing from "@/components/newArchives/deepProcessing.vue" //
import banquetFuneral from "@/components/newArchives/banquetFuneral.vue" // import thickProcessing from "@/components/newArchives/thickProcessing.vue" //
export default { import houseRepair from "@/components/newArchives/houseRepair.vue" //
components: { import houseDecoration from "@/components/newArchives/houseDecoration.vue" //
districtSelector, import houseRenovate from "@/components/newArchives/houseRenovate.vue" //
residents, import houseTransaction from "@/components/newArchives/houseTransaction.vue" //
breeding, import banquetMarry from "@/components/newArchives/banquetMarry.vue" //
plant, import banquetBirthday from "@/components/newArchives/banquetBirthday.vue" // 寿
store, import banquetFullMoon from "@/components/newArchives/banquetFullMoon.vue" //
deepProcessing, import banquetOther from "@/components/newArchives/banquetOther.vue" //
thickProcessing, import banquetFuneral from "@/components/newArchives/banquetFuneral.vue" //
houseRepair, export default {
houseDecoration, components: {
houseRenovate, districtSelector,
houseTransaction, residents,
banquetMarry, breeding,
banquetBirthday, plant,
banquetFullMoon, store,
banquetOther, deepProcessing,
banquetFuneral thickProcessing,
}, houseRepair,
data() { houseDecoration,
return { houseRenovate,
listMap: new Map(), houseTransaction,
tabLists: [{ banquetMarry,
name: '基本信息', banquetBirthday,
}, { banquetFullMoon,
name: '商机信息' banquetOther,
}], banquetFuneral
skeleton: true, },
readonly: true, data() {
current: 0, return {
showDemandList: [], listMap: new Map(),
formData: { tabLists: [{
id_card: '', name: '基本信息',
sex: '', }, {
name: '', name: '商机信息'
phone: '', // }],
highway: '', // skeleton: true,
smart_phone: '', //使 readonly: true,
wechat: '', // current: 0,
address: '', // showDemandList: [],
age: '', // formData: {
category_id: 1, id_card: '',
category_child: 1, sex: '',
data_type: '1', name: '',
datas: [] phone: '', //
}, highway: '', //
smart_phone: '', //使
wechat: '', //
address: '', //
age: '', //
category_id: 1,
category_child: 1,
data_type: '1',
datas: []
},
} }
}, },
onLoad(options) { onLoad(options) {
this.initInformationDetails({ id: options.id }); this.initInformationDetails({
this.initMap(); id: options.id
}, });
onShow() {}, this.initMap();
computed: { },
nowAddress() { onShow() {},
let address = this.$store.state.app.userInfo; computed: {
let str = ''; nowAddress() {
address.province_name?str+=address.province_name:null; let address = this.$store.state.app.userInfo;
address.city_name?str+=address.city_name:null; let str = '';
address.area_name?str+=address.area_name:null; address.province_name ? str += address.province_name : null;
address.street_name?str+=address.street_name:null; address.city_name ? str += address.city_name : null;
address.village_name?str+=address.village_name:null; address.area_name ? str += address.area_name : null;
return str; address.street_name ? str += address.street_name : null;
} address.village_name ? str += address.village_name : null;
}, return str;
methods: { }
initMap() { },
comonentList.forEach(item => { methods: {
this.listMap.set(item.id, item.name); initMap() {
}) comonentList.forEach(item => {
}, this.listMap.set(item.id, item.name);
async initInformationDetails(id) { })
let res = await informationDetails(id); },
this.$u.sleep(100).then(()=>{ async initInformationDetails(id) {
this.skeleton = false; let res = await informationDetails(id);
Object.keys(res.data).forEach(key => { this.$u.sleep(100).then(() => {
this.formData[key] = res.data[key]; this.skeleton = false;
}) Object.keys(res.data).forEach(key => {
}) this.formData[key] = res.data[key];
}, })
toastShow() { })
Toast('不可修改') },
}, toastShow() {
changeCurrent(e) { Toast('不可修改')
this.current = e.index; },
}, changeCurrent(e) {
updateTo(time){ this.current = e.index;
return getTimeAgo(time) },
} updateTo(time) {
}, return getTimeAgo(time)
onPullDownRefresh() { }
uni.stopPullDownRefresh() },
} onPullDownRefresh() {
} uni.stopPullDownRefresh()
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
.top_box { .top_box {
background-color: #fff; background-color: #fff;
display: flex; display: flex;
.item { .item {
width: 175rpx; width: 175rpx;
height: 53rpx; height: 53rpx;
background: #F5F5F5FF; background: #F5F5F5FF;
color: #999999FF; color: #999999FF;
border-radius: 35rpx 35rpx 35rpx 35rpx; border-radius: 35rpx 35rpx 35rpx 35rpx;
opacity: 1; opacity: 1;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin: 28rpx; margin: 28rpx;
} }
.active { .active {
background: $theme-oa-color; background: $theme-oa-color;
color: #fff; color: #fff;
} }
} }
.update_time { .update_time {
padding: 32rpx 28rpx 0 28rpx; padding: 32rpx 28rpx 0 28rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.right{
color: $theme-oa-color;
}
}
.card {
background-color: #fff;
margin: 28rpx;
padding: 28rpx;
border-radius: 14rpx;
.item { .right {
margin-top: 30rpx; color: $theme-oa-color;
}
}
&:nth-child(1) {
margin-top: 0;
}
.title {
font-weight: 500;
font-size: 34rpx;
&::before { .card {
width: 8rpx; background-color: #fff;
height: 26rpx; margin: 28rpx;
border-radius: 4rpx; padding: 28rpx;
background-color: #3175f9; border-radius: 14rpx;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
}
.btn { .item {
margin-top: 32rpx; margin-top: 30rpx;
// margin-bottom: 40rpx;
width: 100%;
height: 84rpx;
background: $theme-oa-color;
border-radius: 42rpx 42rpx 42rpx 42rpx;
color: #fff;
line-height: 80rpx;
text-align: center;
}
}
.delete { &:nth-child(1) {
margin-top: 0;
}
margin: 22rpx 0; .title {
font-weight: 500;
font-size: 34rpx;
// margin-bottom: 40rpx; &::before {
width: 8rpx;
height: 26rpx;
border-radius: 4rpx;
background-color: #3175f9;
content: "";
display: inline-block;
margin-right: 8rpx;
}
}
}
width: 100%; .btn {
margin-top: 32rpx;
// margin-bottom: 40rpx;
width: 100%;
height: 84rpx;
background: $theme-oa-color;
border-radius: 42rpx 42rpx 42rpx 42rpx;
color: #fff;
line-height: 80rpx;
text-align: center;
}
}
height: 64rpx; .delete {
line-height: 64rpx; margin: 22rpx 0;
background: #f56c6c; // margin-bottom: 40rpx;
border-radius: 14rpx; width: 100%;
font-size: 28rpx; height: 64rpx;
color: #fff; line-height: 64rpx;
text-align: center; background: #f56c6c;
} border-radius: 14rpx;
.plus { font-size: 28rpx;
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: $theme-oa-color;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.demand { color: #fff;
margin-top: 40rpx;
margin-bottom: 50rpx; text-align: center;
}
}
.plus {
margin: 22rpx 0;
// margin-bottom: 40rpx;
width: 100%;
height: 64rpx;
line-height: 64rpx;
background: $theme-oa-color;
border-radius: 14rpx;
font-size: 28rpx;
color: #fff;
text-align: center;
}
.demand {
margin-top: 40rpx;
margin-bottom: 50rpx;
}
</style> </style>

View File

@ -1,6 +1,6 @@
<template> <template>
<view class="page"> <view class="page">
<!-- <view class="card" v-for="item in list" :key="item.id" @click="navTo('/subpkg/archives/archives?id='+item.id)"> <!-- <view class="card" v-for="item in list" :key="item.id" @click="navTo('/subpkg/archives/archives?id='+item.id)">
<view class="top"> <view class="top">
<u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'" <u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'"
width="112.28rpx" height="112.28rpx" shape="circle"> width="112.28rpx" height="112.28rpx" shape="circle">
@ -23,8 +23,49 @@
</view> </view>
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText" <u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> --> :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> -->
<view class="personnel_list"> <view class="personnel_list">
<block v-for="(item, index) in list" :key="item.id"> <view class="card" v-for="(item, index) in list" :key="item.id"
@click="navTo('/subpkg/archives/archives?id='+item.id)">
<view class="card_head">
<text style="font-size: 34rpx;">最后更新: 2023-8-1</text>
<text>{{'管理户数: '+item.informationg_count+" 户"}}<u-icon
style="display: inline-block;margin-left: 10rpx;" color="white"
name="arrow-right"></u-icon></text>
</view>
<view class="card_content">
<view class="left">
<view class="cir">
<u--image class="u_avatar" :showLoading="true"
:src="item.avatar||'../../static/img/public/man.png'" width="112.28rpx"
height="112.28rpx" shape="circle"></u--image>
</view>
<view style="margin-top: 40rpx;">
<u-icon style="display: inline-block;margin-left: 10rpx;" color="white"
name="edit-pen-fill"></u-icon> {{item.is_contract?"已签约":"未签约"}}
</view>
</view>
<view class="right">
<view class="">
<text>公司名称 :</text>
<text> {{item.company.company_name}}</text>
</view>
<view class="">
<text>人员姓名 :</text>
<text>{{item.nickname}}</text>
</view>
<view class="">
<text>联系电话 :</text>
<text>{{item.phone||item.account}}</text>
</view>
<view class="">
<text>负责区域 :</text>
<text>{{ (item.street_name||'')+(item.village_name||'')+(item.brigade_name||'') }}</text>
</view>
</view>
</view>
</view>
<!-- <block v-for="(item, index) in list" :key="item.id">
<view class="personnel_item" @click="navTo('/subpkg/archives/archives?id='+item.id)"> <view class="personnel_item" @click="navTo('/subpkg/archives/archives?id='+item.id)">
<view class="type" :class="item.is_contract?'type_blue':''"> <view class="type" :class="item.is_contract?'type_blue':''">
<image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image> <image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image>
@ -68,361 +109,423 @@
<view class="look">{{'管理户数: '+item.informationg_count+" 户"}}</view> <view class="look">{{'管理户数: '+item.informationg_count+" 户"}}</view>
</view> </view>
</view> </view>
</block> </block> -->
<u-empty v-if="loadConfig.status=='nomore'&& list.length==0" icon="/static/img/empty/data.png"></u-empty> <u-empty v-if="loadConfig.status=='nomore'&& list.length==0" icon="/static/img/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText" <u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import { companyUser } from "@/api/company.js" import {
import { Toast } from '@/libs/uniApi.js' companyUser
export default { } from "@/api/company.js"
data() { import {
return { Toast
list: [], } from '@/libs/uniApi.js'
loadConfig: { export default {
page: 1, data() {
limit: 15, return {
lastpage: '', list: [],
loadingText: '努力加载中', loadConfig: {
loadmoreText: '轻轻上拉', page: 1,
nomoreText: '我也是有底线的~~', limit: 15,
status: 'loadmore' lastpage: '',
}, loadingText: '努力加载中',
} loadmoreText: '轻轻上拉',
}, nomoreText: '我也是有底线的~~',
onLoad() { status: 'loadmore'
this.initLoad() },
}, }
onShow() {}, },
onReachBottom() { onLoad() {
this.loadList(); this.initLoad()
}, },
methods: { onShow() {},
navTo(url) { onReachBottom() {
url ? this.loadList();
uni.navigateTo({ },
url: url, methods: {
}) : Toast('暂未开放') navTo(url) {
}, url ?
initLoad() { uni.navigateTo({
this.loadConfig.page = 1; url: url,
this.loadConfig.status = "loadmore"; }) : Toast('暂未开放')
this.list = []; },
this.loadList(); initLoad() {
uni.stopPullDownRefresh(); this.loadConfig.page = 1;
}, this.loadConfig.status = "loadmore";
async loadList() { this.list = [];
if (this.loadConfig.status == "nomore") return; this.loadList();
this.loadConfig.status = "loading"; uni.stopPullDownRefresh();
let res = await companyUser({ },
page: this.loadConfig.page, async loadList() {
limit: this.loadConfig.limit, if (this.loadConfig.status == "nomore") return;
company_id: this.$store.state.app.userInfo.company_id, this.loadConfig.status = "loading";
is_captain: 1 let res = await companyUser({
}) page: this.loadConfig.page,
this.loadConfig.status = "loadmore" limit: this.loadConfig.limit,
if (res.data.data.length < this.loadConfig.limit) { company_id: this.$store.state.app.userInfo.company_id,
this.loadConfig.status = "nomore" is_captain: 1
} else { })
this.loadConfig.page++; this.loadConfig.status = "loadmore"
} if (res.data.data.length < this.loadConfig.limit) {
this.list = [...this.list, ...res.data.data]; this.loadConfig.status = "nomore"
}, } else {
}, this.loadConfig.page++;
onPullDownRefresh() { }
this.initLoad(); this.list = [...this.list, ...res.data.data];
} },
} },
onPullDownRefresh() {
this.initLoad();
}
}
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.page { .page {
padding-top: 28rpx; padding-top: 28rpx;
} }
.card { .card {
margin: 0 auto; margin: 0 auto;
margin-bottom: 28rpx; margin-bottom: 28rpx;
padding: 28rpx; width: 694rpx;
width: 694rpx; background: #FFFFFF;
height: 221rpx; border-radius: 30rpx;
background: #FFFFFF; opacity: 1;
border-radius: 14rpx 14rpx 14rpx 14rpx; overflow: hidden;
opacity: 1; box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.top { .card_head {
display: flex; padding: 28rpx;
justify-content: left; background-color: $theme-oa-color;
// align-items: center; color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
.avatar { }
width: 88rpx;
height: 88rpx;
border-radius: 50%;
margin-right: 18rpx;
}
.u_avatar { .card_content {
margin-right: 18rpx; padding: 28rpx;
} display: flex;
.text { .left {
display: flex; text-align: center;
justify-content: space-around; // padding: 15rpx 25rpx;
flex-direction: column; padding-top: 20rpx;
.name { margin-right: 50rpx;
font-size: 32rpx; width: 160rpx;
font-weight: 500; background-color: $theme-oa-color;
color: #333333; color: white;
} border-radius: 40rpx;
.mobile { .cir {
color: #999999; width: 120rpx;
} height: 120rpx;
} background-color: #FFFFFF;
} margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
.bottom {
display: flex;
justify-content: space-between;
font-size: 25rpx;
font-weight: 400;
.left { }
display: flex;
justify-content: left;
align-items: center;
margin-top: 20rpx;
.circle { }
width: 11rpx;
height: 11rpx;
opacity: 1;
border: 2rpx solid #34A853;
margin-right: 10rpx;
border-radius: 50%;
}
.green {
font-weight: 400;
color: #34A853;
line-height: 0rpx;
margin-right: 18rpx;
-webkit-background-clip: text;
}
.b_l_text { .right {
width: 360rpx; display: flex;
overflow: hidden; flex-direction: column;
text-overflow: ellipsis; justify-content: space-between;
white-space: nowrap;
}
}
.right { view {
color: #3274F9; text:nth-child(2) {
margin-top: 20rpx; margin-left: 20rpx;
} }
} }
} }
}
.personnel_list { // .top {
display: flex; // display: flex;
flex-direction: column; // justify-content: left;
align-items: center; // // align-items: center;
padding-bottom: 130rpx;
.personnel_item { // .avatar {
width: 694rpx; // width: 88rpx;
// height: 407rpx; // height: 88rpx;
background: #FFFFFF; // border-radius: 50%;
border-radius: 14rpx 14rpx 14rpx 14rpx; // margin-right: 18rpx;
margin-bottom: 32rpx; // }
overflow: hidden;
position: relative;
padding: 28rpx;
.type { .u_avatar {
width: 50rpx; position: absolute;
height: 50rpx; top: 50%;
background-color: #F02828; left: 50%;
border-radius: 50%;
font-size: 25rpx;
font-weight: 400;
color: #FFFFFF;
line-height: 35rpx;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 28rpx;
right: 28rpx;
image { transform: translate(-50%, -50%);
width: 18rpx; }
height: 18rpx;
margin-right: 1rpx;
}
}
.type_blue { // .text {
background-color: #34A853; // display: flex;
} // justify-content: space-around;
// flex-direction: column;
.top { // .name {
// background-color: #3274F9; // font-size: 32rpx;
display: flex; // font-weight: 500;
// color: #333333;
// }
.right { // .mobile {
display: flex; // color: #999999;
flex-direction: column; // }
justify-content: space-around; // }
margin-left: 28rpx; // }
font-size: 25rpx;
font-weight: 400;
overflow: hidden;
color: #999999;
.info_top { // .bottom {
display: flex; // display: flex;
align-items: flex-end; // justify-content: space-between;
font-size: 25rpx; // font-size: 25rpx;
font-weight: 400; // font-weight: 400;
color: $theme-oa-color;
margin-bottom: 10rpx;
.info_name { // .left {
font-size: 32rpx; // display: flex;
font-weight: 400; // justify-content: left;
color: #333333; // align-items: center;
margin-right: 18rpx; // margin-top: 20rpx;
}
.phone { // .circle {
margin-left: 30rpx; // width: 11rpx;
color: #999999; // height: 11rpx;
} // opacity: 1;
// border: 2rpx solid #34A853;
// margin-right: 10rpx;
// border-radius: 50%;
// }
.tel { // .green {
color: #000; // font-weight: 400;
} // color: #34A853;
} // line-height: 0rpx;
// margin-right: 18rpx;
// -webkit-background-clip: text;
// }
.info_bottom { // .b_l_text {
display: flex; // width: 360rpx;
margin-bottom: 8rpx; // overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
// }
// }
.item { // .right {
display: flex; // color: #3274F9;
align-items: flex-start; // margin-top: 20rpx;
} // }
// }
.phone { }
margin-right: 28rpx;
}
.location {
width: 320rpx;
// white-space: nowrap;
// /* */
// overflow: hidden;
// /* */
// text-overflow: ellipsis;
// /* 使 */
color: #000;
}
}
.company { // .personnel_list {
display: flex; // display: flex;
// flex-direction: column;
// align-items: center;
// padding-bottom: 130rpx;
text { // .personnel_item {
margin-right: 30rpx; // width: 694rpx;
flex-shrink: 0; // // height: 407rpx;
} // background: #FFFFFF;
// border-radius: 14rpx 14rpx 14rpx 14rpx;
// margin-bottom: 32rpx;
// overflow: hidden;
// position: relative;
// padding: 28rpx;
.itm { // .type {
width: 320rpx; // width: 50rpx;
// white-space: nowrap; // height: 50rpx;
// /* */ // background-color: #F02828;
// overflow: hidden; // border-radius: 50%;
// /* */ // font-size: 25rpx;
// text-overflow: ellipsis; // font-weight: 400;
// /* 使 */ // color: #FFFFFF;
color: #000; // line-height: 35rpx;
} // display: flex;
} // justify-content: center;
} // align-items: center;
} // position: absolute;
// top: 28rpx;
// right: 28rpx;
.center { // image {
padding: 28rpx 0; // width: 18rpx;
// height: 18rpx;
// margin-right: 1rpx;
// }
// }
.top { // .type_blue {
font-size: 28rpx; // background-color: #34A853;
font-weight: 400; // }
color: #666666FF;
margin-bottom: 20rpx;
.green { // .top {
color: #34A853FF; // // background-color: #3274F9;
} // display: flex;
.yellow { // .right {
color: #F9AA32FF; // display: flex;
} // flex-direction: column;
} // justify-content: space-around;
// margin-left: 28rpx;
// font-size: 25rpx;
// font-weight: 400;
// overflow: hidden;
// color: #999999;
.bottom { // .info_top {
display: flex; // display: flex;
justify-content: space-around; // align-items: flex-end;
font-size: 25rpx; // font-size: 25rpx;
font-weight: 400; // font-weight: 400;
color: #999999; // color: $theme-oa-color;
// margin-bottom: 10rpx;
image { // .info_name {
width: 18rpx; // font-size: 32rpx;
height: 18rpx; // font-weight: 400;
margin-right: 9rpx; // color: #333333;
} // margin-right: 18rpx;
} // }
}
.bottom { // .phone {
display: flex; // margin-left: 30rpx;
justify-content: center; // color: #999999;
// }
.look { // .tel {
height: 43rpx; // color: #000;
background: #FFFFFF; // }
border-radius: 26rpx 26rpx 26rpx 26rpx; // }
opacity: 1;
// border: 2rpx solid $theme-oa-color;
font-size: 28rpx;
font-weight: 400;
margin-left: 28rpx;
color: $theme-oa-color;
display: flex;
justify-content: center;
align-items: center;
}
.sign { // .info_bottom {
color: #34A853; // display: flex;
// border: 2rpx solid #34A853; // margin-bottom: 8rpx;
}
.red { // .item {
color: #F02828; // display: flex;
// border: 2rpx solid #F02828; // align-items: flex-start;
} // }
}
} // .phone {
} // margin-right: 28rpx;
// }
// .location {
// width: 320rpx;
// // white-space: nowrap;
// // /* */
// // overflow: hidden;
// // /* */
// // text-overflow: ellipsis;
// // /* 使 */
// color: #000;
// }
// }
// .company {
// display: flex;
// text {
// margin-right: 30rpx;
// flex-shrink: 0;
// }
// .itm {
// width: 320rpx;
// // white-space: nowrap;
// // /* */
// // overflow: hidden;
// // /* */
// // text-overflow: ellipsis;
// // /* 使 */
// color: #000;
// }
// }
// }
// }
// .center {
// padding: 28rpx 0;
// .top {
// font-size: 28rpx;
// font-weight: 400;
// color: #666666FF;
// margin-bottom: 20rpx;
// .green {
// color: #34A853FF;
// }
// .yellow {
// color: #F9AA32FF;
// }
// }
// .bottom {
// display: flex;
// justify-content: space-around;
// font-size: 25rpx;
// font-weight: 400;
// color: #999999;
// image {
// width: 18rpx;
// height: 18rpx;
// margin-right: 9rpx;
// }
// }
// }
// .bottom {
// display: flex;
// justify-content: center;
// .look {
// height: 43rpx;
// background: #FFFFFF;
// border-radius: 26rpx 26rpx 26rpx 26rpx;
// opacity: 1;
// // border: 2rpx solid $theme-oa-color;
// font-size: 28rpx;
// font-weight: 400;
// margin-left: 28rpx;
// color: $theme-oa-color;
// display: flex;
// justify-content: center;
// align-items: center;
// }
// .sign {
// color: #34A853;
// // border: 2rpx solid #34A853;
// }
// .red {
// color: #F02828;
// // border: 2rpx solid #F02828;
// }
// }
// }
// }
</style> </style>

View File

@ -1,304 +1,314 @@
<template> <template>
<view class=""> <view class="">
<u-sticky bgColor="#fff"> <u-sticky bgColor="#0022C7">
<u-tabs :list="tabLists" @click="changeCurrent" lineColor='#3274F9' :scrollable="false" lineWidth='40' <u-tabs :list="tabLists" @click="changeCurrent" lineColor='white' :scrollable="false" lineWidth='40'
inactiveStyle='color:#666' activeStyle="color:#3274F9"></u-tabs> inactiveStyle='color:white' activeStyle="color:white"></u-tabs>
</u-sticky> </u-sticky>
<view v-if="loadType"> <view v-if="loadType">
<view class="company_info" v-show="current==0"> <view class="company_info" v-show="current==0">
<company></company> <company></company>
</view> </view>
<view class="company_list" v-show="current==1"> <view class="company_list" v-show="current==1">
<view class="info_card" v-for="item in companyList" :key="item.id"> <view class="info_card" v-for="item in companyList" :key="item.id">
<view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)"> <view class="top" @click="navTo('/subpkg/companySign/companySign?id='+item.id)">
<view> <view>
<view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view> <view class="info_name" :class="item.is_contract?'have':'no'">{{item.company_name}}</view>
<view class="info_type">{{item.company_type_name}}</view> <view class="info_type">{{item.company_type_name}}</view>
</view> </view>
<view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view> <view class="btn">详情<uni-icons type="forward" color="#666666"></uni-icons></view>
</view> </view>
<u-line></u-line> <u-line></u-line>
<view class="bottom"> <view class="bottom">
<image src="../../static/img/contract/company.png"></image> <image src="../../static/img/contract/company.png"></image>
<view class="text"> <view class="text">
<view class="text_item"> <view class="text_item">
<view class="left_text">主要联系人</view> <view class="left_text">主要联系人</view>
<view>{{item.master_name}}</view> <view>{{item.master_name}}</view>
</view> </view>
<view class="text_item" @click="copyPhone(item.master_phone)"> <view class="text_item" @click="copyPhone(item.master_phone)">
<view class="left_text">联系方式</view> <view class="left_text">联系方式</view>
<view>{{item.master_phone}}</view> <view>{{item.master_phone}}</view>
</view> </view>
<view class="text_item"> <view class="text_item">
<view class="left_text">区县乡镇</view> <view class="left_text">区县乡镇</view>
<view>{{item.city_name+'/'+item.area_name+'/'+item.street_name}}</view> <view>{{item.city_name+'/'+item.area_name+'/'+item.street_name}}</view>
</view> </view>
<!-- <view>片区经理</view> --> <!-- <view>片区经理</view> -->
</view> </view>
</view> </view>
</view> </view>
<u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText" <u-loadmore :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> :loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
<mybtn text="新建签约" @click="navTo('/subpkg/companyUnsign/companyUnsign')"></mybtn> <mybtn text="新建签约" @click="navTo('/subpkg/companyUnsign/companyUnsign')"></mybtn>
</view> </view>
<view class="company_info" v-show="current==2"> <view class="company_info" v-show="current==2">
<companyFinance></companyFinance> <companyFinance></companyFinance>
</view> </view>
<view v-show="current==3"> <view v-show="current==3">
<task ref="taskRef" style="width: 100vw;"></task> <task ref="taskRef" style="width: 100vw;"></task>
</view> </view>
</view> </view>
<u-empty v-else icon="/static/img/empty/data.png" text="没有数据"></u-empty> <u-empty v-else icon="/static/img/empty/data.png" text="没有数据"></u-empty>
</view> </view>
</template> </template>
<script> <script>
import { companyIndex } from "@/api/company.js" import {
import { Toast } from '@/libs/uniApi.js' companyIndex
import companyFinance from "@/components/companyFinance/companyFinance.vue" } from "@/api/company.js"
import task from "@/components/task/index.vue" import {
export default { Toast
components: { companyFinance, task }, } from '@/libs/uniApi.js'
data() { import companyFinance from "@/components/companyFinance/companyFinance.vue"
return { import task from "@/components/task/index.vue"
current: 0, export default {
currentChild: 0, components: {
loadType: true,// companyFinance,
tabLists: [{ task
name: '我的公司', },
}, { data() {
name: '签约公司' return {
}, { current: 0,
name: '公司财务' currentChild: 0,
}, { loadType: true, //
name: '任务情况' tabLists: [{
}], name: '我的公司',
loadConfig: { }, {
page: 1, name: '签约公司'
limit: 15, }, {
lastpage: '', name: '公司财务'
loadingText: '努力加载中', }, {
loadmoreText: '轻轻上拉', name: '任务情况'
nomoreText: '我也是有底线的~~', }],
status: 'loadmore' loadConfig: {
}, page: 1,
companyList: [] limit: 15,
} lastpage: '',
}, loadingText: '努力加载中',
onLoad() {}, loadmoreText: '轻轻上拉',
onShow() { nomoreText: '我也是有底线的~~',
if(this.$store.state.app.userInfo.company_id){ status: 'loadmore'
this.loadCompanyList(); },
}else { companyList: []
this.loadType = false; }
} },
}, onLoad() {},
onReachBottom() { onShow() {
if(this.current==1) this.loadCompanyList(); if (this.$store.state.app.userInfo.company_id) {
else if(this.current==3) this.$refs.taskRef.loadList(); this.loadCompanyList();
}, } else {
methods: { this.loadType = false;
async initLoad() { }
this.loadConfig.page = 1; },
this.loadConfig.status = "loadmore"; onReachBottom() {
this.companyList = []; if (this.current == 1) this.loadCompanyList();
await this.loadCompanyList(); else if (this.current == 3) this.$refs.taskRef.loadList();
}, },
// methods: {
async loadCompanyList() { async initLoad() {
if (this.loadConfig.status == "nomore") return; this.loadConfig.page = 1;
this.loadConfig.status = "loading"; this.loadConfig.status = "loadmore";
let res = await companyIndex({ this.companyList = [];
page: this.loadConfig.page, await this.loadCompanyList();
limit: this.loadConfig.limit },
}) //
this.loadConfig.status = "loadmore" async loadCompanyList() {
if (res.data.data.length < this.loadConfig.limit) { if (this.loadConfig.status == "nomore") return;
this.loadConfig.status = "nomore" this.loadConfig.status = "loading";
} else { let res = await companyIndex({
this.loadConfig.page++; page: this.loadConfig.page,
} limit: this.loadConfig.limit
this.companyList = [...this.companyList, ...res.data?.data] })
}, this.loadConfig.status = "loadmore"
navTo(url) { if (res.data.data.length < this.loadConfig.limit) {
url ? this.loadConfig.status = "nomore"
uni.navigateTo({ } else {
url: url this.loadConfig.page++;
}) : Toast('暂未开放') }
}, this.companyList = [...this.companyList, ...res.data?.data]
naviBack() { },
uni.navigateBack() navTo(url) {
}, url ?
copyPhone(str = "", type = "号码") { uni.navigateTo({
if (str) uni.setClipboardData({ url: url
data: str + "", }) : Toast('暂未开放')
success: (e) => { },
Toast(type + '已复制') naviBack() {
}, uni.navigateBack()
fail: (e) => { },
Toast('复制失败') copyPhone(str = "", type = "号码") {
} if (str) uni.setClipboardData({
}) data: str + "",
}, success: (e) => {
changeCurrent(e){ Toast(type + '已复制')
this.current = e.index; },
} fail: (e) => {
}, Toast('复制失败')
onPullDownRefresh() { }
if(this.current==1) this.initLoad(); })
else if(this.current==3) this.$refs.taskRef.initLoadConfig(); },
this.$u.sleep(500).then(()=>{uni.stopPullDownRefresh()}) changeCurrent(e) {
} this.current = e.index;
} }
},
onPullDownRefresh() {
if (this.current == 1) this.initLoad();
else if (this.current == 3) this.$refs.taskRef.initLoadConfig();
this.$u.sleep(500).then(() => {
uni.stopPullDownRefresh()
})
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
page{ page {}
}
.fixed_box {
width: 100%;
position: fixed;
/* #ifdef APP-PLUS */
top: 0;
/* #endif */
/* #ifdef H5 */
top: 44px;
/* #endif */
left: 0;
z-index: 999;
}
.top_box { .fixed_box {
background-color: #fff; width: 100%;
display: flex; position: fixed;
/* #ifdef APP-PLUS */
top: 0;
/* #endif */
/* #ifdef H5 */
top: 44px;
/* #endif */
left: 0;
z-index: 999;
}
.item { .top_box {
flex-shrink: 0; background-color: #fff;
/* 禁止缩小 */ display: flex;
width: 155rpx;
height: 53rpx;
background: #F5F5F5FF;
color: #999999FF;
border-radius: 35rpx 35rpx 35rpx 35rpx;
opacity: 1;
display: flex;
justify-content: center;
align-items: center;
margin: 28rpx 0;
margin-left: 28rpx;
}
.active { .item {
background: $theme-oa-color; flex-shrink: 0;
color: #fff; /* 禁止缩小 */
} width: 155rpx;
} height: 53rpx;
background: #F5F5F5FF;
color: #999999FF;
border-radius: 35rpx 35rpx 35rpx 35rpx;
opacity: 1;
display: flex;
justify-content: center;
align-items: center;
margin: 28rpx 0;
margin-left: 28rpx;
}
.top_box2 { .active {
.item { background: $theme-oa-color;
margin-top: 0; color: #fff;
width: 120rpx; }
} }
}
.company_info { .top_box2 {
// margin-top: 110rpx; .item {
} margin-top: 0;
width: 120rpx;
}
}
.company_list { .company_info {
padding-bottom: 32rpx; // margin-top: 110rpx;
// margin-top: 190rpx; }
display: flex;
flex-direction: column;
align-items: center;
.info_card { .company_list {
width: 694rpx; padding-bottom: 32rpx;
// height: 300rpx; // margin-top: 190rpx;
background: #FFFFFF; display: flex;
border-radius: 21rpx 21rpx 21rpx 21rpx; flex-direction: column;
margin-top: 28rpx; align-items: center;
padding: 24rpx;
.top { .info_card {
display: flex; width: 694rpx;
justify-content: space-between; // height: 300rpx;
align-items: center; background: #FFFFFF;
margin-bottom: 28rpx; border-radius: 21rpx 21rpx 21rpx 21rpx;
margin-top: 28rpx;
padding: 24rpx;
.info_name { .top {
font-size: 32rpx; display: flex;
font-weight: 500; justify-content: space-between;
color: #333333; align-items: center;
} margin-bottom: 28rpx;
.have { .info_name {
&::before { font-size: 32rpx;
content: "已签约"; font-weight: 500;
border-radius: 14rpx; color: #333333;
border: 5rpx solid #5ac725; }
color: #5ac725;
padding: 3rpx 6rpx;
font-size: 28rpx;
margin-right: 10rpx;
}
}
.no { .have {
&::before { &::before {
content: "未签约"; content: "已签约";
border-radius: 14rpx; border-radius: 14rpx;
border: 5rpx solid #f56c6c; border: 5rpx solid #5ac725;
color: #f56c6c; color: #5ac725;
padding: 3rpx 6rpx; padding: 3rpx 6rpx;
font-size: 28rpx; font-size: 28rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
} }
.info_type { .no {
font-size: 25rpx; &::before {
font-weight: 500; content: "未签约";
color: $theme-oa-color; border-radius: 14rpx;
margin-top: 10rpx; border: 5rpx solid #f56c6c;
} color: #f56c6c;
padding: 3rpx 6rpx;
font-size: 28rpx;
margin-right: 10rpx;
}
}
.btn { .info_type {
flex-shrink: 0; font-size: 25rpx;
font-size: 25rpx; font-weight: 500;
font-weight: 400; color: $theme-oa-color;
color: #666666; margin-top: 10rpx;
display: flex; }
align-items: center;
justify-content: right;
}
}
.bottom { .btn {
display: flex; flex-shrink: 0;
margin-top: 28rpx; font-size: 25rpx;
font-weight: 400;
color: #666666;
display: flex;
align-items: center;
justify-content: right;
}
}
image { .bottom {
height: 140rpx; display: flex;
width: 140rpx; margin-top: 28rpx;
margin-right: 28rpx;
}
.text { image {
display: flex; height: 140rpx;
flex-direction: column; width: 140rpx;
justify-content: space-between; margin-right: 28rpx;
.text_item{ }
display: flex;
.left_text{ .text {
flex-shrink: 0; display: flex;
} flex-direction: column;
} justify-content: space-between;
}
} .text_item {
} display: flex;
.left_text {
} flex-shrink: 0;
}
}
}
}
}
}
</style> </style>

View File

@ -1,348 +1,489 @@
<template> <template>
<view class="personnel"> <view class="personnel">
<view class="personnel_list"> <view class="personnel_list">
<block v-for="(item, index) in userList" :key="item.id">
<view class="personnel_item"> <!--
<view class="type" :class="item.is_contract?'type_blue':''"> <block v-for="(item, index) in userList" :key="item.id">
<image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image> <view class="personnel_item">
<image v-else src="../../static/icons/err_w.png"></image> <view class="type" :class="item.is_contract?'type_blue':''">
</view> <image v-if="item.is_contract" src="../../static/icons/ok_w.png"></image>
<view class="top" style="margin-bottom: 28rpx;"> <image v-else src="../../static/icons/err_w.png"></image>
<view class="left"> </view>
<u--image class="u_avatar" :showLoading="true" :src="item.avatar||'../../static/img/public/man.png'" <view class="top" style="margin-bottom: 28rpx;">
width="112.28rpx" height="112.28rpx" shape="circle"></u--image> <view class="left">
</view> <u--image class="u_avatar" :showLoading="true"
<view class="right"> :src="item.avatar||'../../static/img/public/man.png'" width="112.28rpx"
<view class="info_top"> height="112.28rpx" shape="circle"></u--image>
<view class="info_name">{{item.nickname}}</view> </view>
<text class="phone">电话:</text> <view class="right">
<text class="tel">{{item.phone||item.account}}</text> <view class="info_top">
</view> <view class="info_name">{{item.nickname}}</view>
<view class="info_bottom"> <text class="phone">电话:</text>
<text class="item phone"> <text class="tel">{{item.phone||item.account}}</text>
分管片区: </view>
</text> <view class="info_bottom">
<view class="item"> <text class="item phone">
<view class="location">{{ (item.street_name||'')+(item.village_name||'')+(item.brigade_name||'') }}</view> 分管片区:
</view> </text>
</view> <view class="item">
<view class="info_bottom"> <view class="location">
<text class="item phone"> {{ (item.street_name||'')+(item.village_name||'')+(item.brigade_name||'') }}
所属公司: </view>
</text> </view>
<view class="item" v-if="item.company"> </view>
<view class="location"> <view class="info_bottom">
{{item.company.company_name}} <text class="item phone">
</view> 所属公司:
</view> </text>
</view> <view class="item" v-if="item.company">
</view> <view class="location">
</view> {{item.company.company_name}}
<!-- <view class="center"> </view>
<view class="top" v-for="(role, roleIndex) in item.roles" :key="roleIndex"> </view>
{{role}} </view>
</view> </view>
</view> --> </view>
<u-line color="#999999FF"></u-line>
<view class="bottom" style="margin-top: 28rpx;float: right;"> <u-line color="#999999FF"></u-line>
<button class="look sign" v-if="item.is_contract==1" @click="changeSign(item)">已签约</button> <view class="bottom" style="margin-top: 28rpx;float: right;">
<button class="look red" v-else @click="changeSign(item)">未签约</button> <button class="look sign" v-if="item.is_contract==1" @click="changeSign(item)">已签约</button>
<button class="look" @click="navTo('/subpkg/finance/finance?id='+item.id)">财务查看</button> <button class="look red" v-else @click="changeSign(item)">未签约</button>
<button class="look" @click="navTo('/subpkg/personnelDetails/personnelDetails?id='+item.id)">信息查看</button> <button class="look" @click="navTo('/subpkg/finance/finance?id='+item.id)">财务查看</button>
</view> <button class="look"
</view> @click="navTo('/subpkg/personnelDetails/personnelDetails?id='+item.id)">信息查看</button>
</block> </view>
<u-empty v-if="loadConfig.status=='nomore'&& userList.length==0" icon="/static/img/empty/data.png"></u-empty> </view>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText" </block>
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" /> -->
</view> <view class="personnel_list">
<!-- <button class="new_btn" @click.stop="navTo('/subpkg/newPersonnel/newPersonnel')">创建账号</button> --> <view class="card" v-for="(item, index) in userList" :key="item.id">
<mybtn text="创建账号" @click="navTo('/subpkg/newPersonnel/newPersonnel')"></mybtn> <view class="card_head">
</view> <text style="font-size: 32rpx">创建时间: 2020-25-2</text>
<text @click="navTo('/subpkg/finance/finance?id='+item.id)">财务查看</text>
<text @click="navTo('/subpkg/personnelDetails/personnelDetails?id='+item.id)">信息查看</text>
</view>
<view class="card_content">
<view class="left">
<view class="cir">
<u--image class="u_avatar" :showLoading="true"
:src="item.avatar||'../../static/img/public/man.png'" width="112.28rpx"
height="112.28rpx" shape="circle"></u--image>
</view>
<view style="margin-top: 40rpx;" @click="changeSign(item)">
<u-icon style="display: inline-block;margin-left: 10rpx;" color="white"
name="edit-pen-fill"></u-icon> {{item.is_contract?'已签约':'未签约'}}
</view>
</view>
<view class="right">
<view class="">
<text>公司名称 :</text>
<text> {{item.company.company_name}}</text>
</view>
<view class="">
<text>人员姓名 :</text>
<text>{{item.nickname}}</text>
</view>
<view class="">
<text>联系电话 :</text>
<text>{{item.phone}}</text>
</view>
<view class="">
<text>负责区域 :</text>
<text> {{ (item.street_name||'')+(item.village_name||'')+(item.brigade_name||'') }}
</text>
</view>
</view>
</view>
</view>
</view>
<u-empty v-if="loadConfig.status=='nomore'&& userList.length==0"
icon="/static/img/empty/data.png"></u-empty>
<u-loadmore v-else :status="loadConfig.status" :loading-text="loadConfig.loadingText"
:loadmore-text="loadConfig.loadmoreText" :nomore-text="loadConfig.nomoreText" />
</view>
<!-- <button class="new_btn" @click.stop="navTo('/subpkg/newPersonnel/newPersonnel')">创建账号</button> -->
<mybtn text="创建账号" @click="navTo('/subpkg/newPersonnel/newPersonnel')"></mybtn>
</view>
</template> </template>
<script> <script>
import { Toast } from '@/libs/uniApi.js' import {
import { companyUser } from "@/api/company.js" Toast
export default { } from '@/libs/uniApi.js'
data() { import {
return { companyUser
loadConfig: { } from "@/api/company.js"
page: 1, export default {
limit: 15, data() {
loadingText: '努力加载中', return {
loadmoreText: '轻轻上拉', loadConfig: {
nomoreText: '我也是有底线的~~', page: 1,
status: 'loadmore' limit: 15,
}, loadingText: '努力加载中',
userList: [] loadmoreText: '轻轻上拉',
} nomoreText: '我也是有底线的~~',
}, status: 'loadmore'
onLoad() { },
this.loadUserList(); userList: []
uni.$on('initPersonnel', this.initLoad); }
}, },
methods: { onLoad() {
navTo(url) { this.loadUserList();
url ? uni.$on('initPersonnel', this.initLoad);
uni.navigateTo({ },
url: url, methods: {
}) : Toast('暂未开放') navTo(url) {
}, url ?
async initLoad() { uni.navigateTo({
this.loadConfig.page = 1; url: url,
this.loadConfig.status = "loadmore"; }) : Toast('暂未开放')
this.userList = []; },
await this.loadUserList(); async initLoad() {
uni.stopPullDownRefresh(); this.loadConfig.page = 1;
}, this.loadConfig.status = "loadmore";
async loadUserList() { this.userList = [];
let that = this; await this.loadUserList();
if (this.loadConfig.status == "nomore") return; uni.stopPullDownRefresh();
this.loadConfig.status = "loading" },
let res = await companyUser({ async loadUserList() {
page: this.loadConfig.page, let that = this;
limit: this.loadConfig.limit, if (this.loadConfig.status == "nomore") return;
company_id: this.$store.state.app.userInfo.company_id this.loadConfig.status = "loading"
}) let res = await companyUser({
this.loadConfig.status = "loadmore" page: this.loadConfig.page,
if (res.data.data.length < this.loadConfig.limit) { limit: this.loadConfig.limit,
this.loadConfig.status = "nomore" company_id: this.$store.state.app.userInfo.company_id
} else { })
this.loadConfig.page++; this.loadConfig.status = "loadmore"
} if (res.data.data.length < this.loadConfig.limit) {
this.userList = [...this.userList, ...res.data?.data] this.loadConfig.status = "nomore"
}, } else {
// this.loadConfig.page++;
changeSign(data){ }
if(data.is_contract)Toast('已完成签约'); this.userList = [...this.userList, ...res.data?.data]
else uni.showModal({ },
content:'该人员还未签约,是否立即签约?', //
success: (e) => { changeSign(data) {
if(e.confirm)this.navTo('/subpkg/personnelDetails/personnelDetails?id='+data.id); if (data.is_contract) Toast('已完成签约');
} else uni.showModal({
}) content: '该人员还未签约,是否立即签约?',
} success: (e) => {
}, if (e.confirm) this.navTo('/subpkg/personnelDetails/personnelDetails?id=' + data.id);
onPullDownRefresh() { }
this.initLoad(); })
} }
} },
onPullDownRefresh() {
this.initLoad();
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
.personnel { .personnel {
.new_btn { .new_btn {
position: fixed; position: fixed;
bottom: 30rpx; bottom: 30rpx;
// margin-top: 32rpx; // margin-top: 32rpx;
// margin-bottom: 40rpx; // margin-bottom: 40rpx;
left: 50%; left: 50%;
transform: translate(-50%); transform: translate(-50%);
z-index: 999; z-index: 999;
width: 694rpx; width: 694rpx;
height: 84rpx; height: 84rpx;
background: $theme-oa-color; background: $theme-oa-color;
border-radius: 42rpx 42rpx 42rpx 42rpx; border-radius: 42rpx 42rpx 42rpx 42rpx;
color: #fff; color: #fff;
line-height: 80rpx; line-height: 80rpx;
text-align: center; text-align: center;
} }
.personnel_list { .personnel_list {
display: flex; padding: 28rpx 0;
flex-direction: column; margin-bottom: 130rpx;
align-items: center;
padding-top: 32rpx;
padding-bottom: 130rpx;
.personnel_item { .card {
width: 694rpx; margin: 0 auto;
// height: 407rpx; margin-bottom: 28rpx;
background: #FFFFFF; width: 694rpx;
border-radius: 14rpx 14rpx 14rpx 14rpx; background: #FFFFFF;
margin-bottom: 32rpx; border-radius: 30rpx;
overflow: hidden; opacity: 1;
position: relative; overflow: hidden;
padding: 28rpx; box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.type { .card_head {
width: 50rpx; padding: 28rpx;
height: 50rpx; background-color: $theme-oa-color;
background-color: #F02828; color: white;
border-radius: 50%; height: 100rpx;
font-size: 25rpx; display: flex;
font-weight: 400; justify-content: space-between;
color: #FFFFFF;
line-height: 35rpx;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 28rpx;
right: 28rpx;
image { }
width: 18rpx;
height: 18rpx;
margin-right: 1rpx;
}
}
.type_blue { .card_content {
background-color: #34A853; padding: 28rpx;
} display: flex;
.top { .left {
// background-color: #3274F9; text-align: center;
display: flex; // padding: 15rpx 25rpx;
padding-top: 20rpx;
.right { margin-right: 50rpx;
display: flex; width: 160rpx;
flex-direction: column; background-color: $theme-oa-color;
justify-content: space-around; color: white;
margin-left: 28rpx; border-radius: 40rpx;
font-size: 25rpx;
font-weight: 400;
overflow: hidden;
color: #999999;
.info_top { .cir {
display: flex; width: 120rpx;
align-items: flex-end; height: 120rpx;
font-size: 25rpx; background-color: #FFFFFF;
font-weight: 400; margin-left: 25rpx;
color: $theme-oa-color; border-radius: 120rpx;
margin-bottom: 10rpx; position: relative;
.info_name {
font-size: 32rpx;
font-weight: 400;
color: #333333;
margin-right: 18rpx;
}
.phone { }
margin-left: 30rpx;
color: #999999;
}
.tel { }
color: #000;
}
}
.info_bottom {
display: flex;
margin-bottom: 8rpx;
.item { .right {
display: flex; display: flex;
align-items: flex-start; flex-direction: column;
} justify-content: space-between;
.phone { view {
margin-right: 28rpx; text:nth-child(2) {
} margin-left: 20rpx;
}
}
}
}
.location {
width: 350rpx;
// white-space: nowrap;
// /* */
// overflow: hidden;
// /* */
// text-overflow: ellipsis;
// /* 使 */
color: #000;
}
}
.company { .u_avatar {
display: flex; position: absolute;
top: 50%;
left: 50%;
text { transform: translate(-50%, -50%);
margin-right: 30rpx; }
}
.itm {
width: 350rpx;
white-space: nowrap;
/* 不换行 */
overflow: hidden;
/* 将超出文本隐藏 */
text-overflow: ellipsis;
/* 使用省略号表示被隐藏的文本 */
color: #000;
}
}
}
}
.center {
padding: 28rpx 0;
.top { }
font-size: 28rpx;
font-weight: 400;
color: #666666FF;
margin-bottom: 20rpx;
.green {
color: #34A853FF;
}
.yellow {
color: #F9AA32FF;
}
}
.bottom {
display: flex;
justify-content: space-around;
font-size: 25rpx;
font-weight: 400;
color: #999999;
image { }
width: 18rpx;
height: 18rpx;
margin-right: 9rpx;
}
}
}
.bottom { // .personnel_list {
display: flex; // display: flex;
justify-content: center; // flex-direction: column;
// align-items: center;
// padding-top: 32rpx;
// padding-bottom: 130rpx;
.look { // .personnel_item {
width: 128rpx; // width: 694rpx;
height: 43rpx; // // height: 407rpx;
background: #FFFFFF; // background: #FFFFFF;
border-radius: 26rpx 26rpx 26rpx 26rpx; // border-radius: 14rpx 14rpx 14rpx 14rpx;
opacity: 1; // margin-bottom: 32rpx;
// border: 2rpx solid $theme-oa-color; // overflow: hidden;
font-size: 28rpx; // position: relative;
font-weight: 400; // padding: 28rpx;
margin-left: 28rpx;
color: $theme-oa-color;
display: flex;
justify-content: center;
align-items: center;
}
.sign { // .type {
color: #34A853; // width: 50rpx;
// border: 2rpx solid #34A853; // height: 50rpx;
} // background-color: #F02828;
// border-radius: 50%;
// font-size: 25rpx;
// font-weight: 400;
// color: #FFFFFF;
// line-height: 35rpx;
// display: flex;
// justify-content: center;
// align-items: center;
// position: absolute;
// top: 28rpx;
// right: 28rpx;
.red { // image {
color: #F02828; // width: 18rpx;
// border: 2rpx solid #F02828; // height: 18rpx;
} // margin-right: 1rpx;
} // }
} // }
}
} // .type_blue {
// background-color: #34A853;
// }
// .top {
// // background-color: #3274F9;
// display: flex;
// .right {
// display: flex;
// flex-direction: column;
// justify-content: space-around;
// margin-left: 28rpx;
// font-size: 25rpx;
// font-weight: 400;
// overflow: hidden;
// color: #999999;
// .info_top {
// display: flex;
// align-items: flex-end;
// font-size: 25rpx;
// font-weight: 400;
// color: $theme-oa-color;
// margin-bottom: 10rpx;
// .info_name {
// font-size: 32rpx;
// font-weight: 400;
// color: #333333;
// margin-right: 18rpx;
// }
// .phone {
// margin-left: 30rpx;
// color: #999999;
// }
// .tel {
// color: #000;
// }
// }
// .info_bottom {
// display: flex;
// margin-bottom: 8rpx;
// .item {
// display: flex;
// align-items: flex-start;
// }
// .phone {
// margin-right: 28rpx;
// }
// .location {
// width: 350rpx;
// // white-space: nowrap;
// // /* */
// // overflow: hidden;
// // /* */
// // text-overflow: ellipsis;
// // /* 使 */
// color: #000;
// }
// }
// .company {
// display: flex;
// text {
// margin-right: 30rpx;
// }
// .itm {
// width: 350rpx;
// white-space: nowrap;
// /* */
// overflow: hidden;
// /* */
// text-overflow: ellipsis;
// /* 使 */
// color: #000;
// }
// }
// }
// }
// .center {
// padding: 28rpx 0;
// .top {
// font-size: 28rpx;
// font-weight: 400;
// color: #666666FF;
// margin-bottom: 20rpx;
// .green {
// color: #34A853FF;
// }
// .yellow {
// color: #F9AA32FF;
// }
// }
// .bottom {
// display: flex;
// justify-content: space-around;
// font-size: 25rpx;
// font-weight: 400;
// color: #999999;
// image {
// width: 18rpx;
// height: 18rpx;
// margin-right: 9rpx;
// }
// }
// }
// .bottom {
// display: flex;
// justify-content: center;
// .look {
// width: 128rpx;
// height: 43rpx;
// background: #FFFFFF;
// border-radius: 26rpx 26rpx 26rpx 26rpx;
// opacity: 1;
// // border: 2rpx solid $theme-oa-color;
// font-size: 28rpx;
// font-weight: 400;
// margin-left: 28rpx;
// color: $theme-oa-color;
// display: flex;
// justify-content: center;
// align-items: center;
// }
// .sign {
// color: #34A853;
// // border: 2rpx solid #34A853;
// }
// .red {
// color: #F02828;
// // border: 2rpx solid #F02828;
// }
// }
// }
// }
}
</style> </style>

119
test.vue Normal file
View File

@ -0,0 +1,119 @@
<template>
<view class="personnel_list">
<view class="cards">
<view class="cards_head">
<text style="font-size: 32rpx">最后更新:2020-25-2</text>
<text>更新档案</text>
<text>查看档案</text>
</view>
<view class="cards_content">
<view class="right">
<view class="">
<text>人员姓名 :</text>
<text> { item.name }</text>
</view>
<view class="">
<text>联系电话 :</text>
<text>{ item.phone }</text>
</view>
<view class="">
<text>所属片区 :</text>
<text> 所属片区 </text>
</view>
</view>
<view class="left">
<view class="cir">
<u--image
class="u_avatar"
:showLoading="true"
:src="'../../static/img/public/man.png'"
width="112.28rpx"
height="112.28rpx"
shape="circle"
></u--image>
</view>
</view>
</view>
</view>
</view>
</template>
<style lang="scss">
.personnel_list {
padding: 28rpx 0;
margin-bottom: 130rpx;
.cards {
margin: 0 auto;
margin-bottom: 28rpx;
width: 694rpx;
background: #ffffff;
border-radius: 30rpx;
opacity: 1;
overflow: hidden;
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
.cards_head {
padding: 28rpx;
background-color: $theme-oa-color;
color: white;
height: 100rpx;
display: flex;
justify-content: space-between;
}
.cards_content {
padding: 28rpx;
display: flex;
justify-content: space-between;
.left {
text-align: center;
// padding: 15rpx 25rpx;
padding-top: 20rpx;
width: 160rpx;
background-color: $theme-oa-color;
color: white;
border-radius: 40rpx;
.cir {
width: 120rpx;
height: 120rpx;
background-color: #ffffff;
margin-left: 25rpx;
border-radius: 120rpx;
position: relative;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
view {
text:nth-child(2) {
margin-left: 20rpx;
}
}
}
}
.u_avatar {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
}
</style>

View File

@ -15,7 +15,7 @@
/* 颜色变量 */ /* 颜色变量 */
@import '@/uni_modules/uview-ui/theme.scss'; @import '@/uni_modules/uview-ui/theme.scss';
$theme-oa-color: #3175f9; $theme-oa-color: #0122c7;
/* 行为相关颜色 */ /* 行为相关颜色 */
$uni-color-primary: #007aff; $uni-color-primary: #007aff;
$uni-color-success: #4cd964; $uni-color-success: #4cd964;
@ -23,32 +23,32 @@ $uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d; $uni-color-error: #dd524d;
/* 文字基本颜色 */ /* 文字基本颜色 */
$uni-text-color:#333;//基本色 $uni-text-color: #333; //基本色
$uni-text-color-inverse:#fff;//反色 $uni-text-color-inverse: #fff; //反色
$uni-text-color-grey:#999;//辅助灰色如加载更多的提示信息 $uni-text-color-grey: #999; //辅助灰色如加载更多的提示信息
$uni-text-color-placeholder: #808080; $uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0; $uni-text-color-disable: #c0c0c0;
/* 背景颜色 */ /* 背景颜色 */
$uni-bg-color:#ffffff; $uni-bg-color: #ffffff;
$uni-bg-color-grey:#f8f8f8; $uni-bg-color-grey: #f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色 $uni-bg-color-hover: #f1f1f1; //点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 $uni-bg-color-mask: rgba(0, 0, 0, 0.4); //遮罩颜色
/* 边框颜色 */ /* 边框颜色 */
$uni-border-color:#c8c7cc; $uni-border-color: #c8c7cc;
/* 尺寸变量 */ /* 尺寸变量 */
/* 文字尺寸 */ /* 文字尺寸 */
$uni-font-size-sm:12px; $uni-font-size-sm: 12px;
$uni-font-size-base:14px; $uni-font-size-base: 14px;
$uni-font-size-lg:16; $uni-font-size-lg: 16;
/* 图片尺寸 */ /* 图片尺寸 */
$uni-img-size-sm:20px; $uni-img-size-sm: 20px;
$uni-img-size-base:26px; $uni-img-size-base: 26px;
$uni-img-size-lg:40px; $uni-img-size-lg: 40px;
/* Border Radius */ /* Border Radius */
$uni-border-radius-sm: 2px; $uni-border-radius-sm: 2px;
@ -70,9 +70,9 @@ $uni-spacing-col-lg: 12px;
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 $uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */ /* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色 $uni-color-title: #2c405a; // 文章标题颜色
$uni-font-size-title:20px; $uni-font-size-title: 20px;
$uni-color-subtitle: #555555; // 二级标题颜色 $uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:26px; $uni-font-size-subtitle: 26px;
$uni-color-paragraph: #3F536E; // 文章段落颜色 $uni-color-paragraph: #3f536e; // 文章段落颜色
$uni-font-size-paragraph:15px; $uni-font-size-paragraph: 15px;