有限空间作业
parent
76179cb2ac
commit
bac78be6e2
|
@ -46,4 +46,7 @@ export const setTaskSave = (params) => post("/app/Task/init", params) //八项
|
|||
export const getCurrentNextOperation = (params) => post("/app/Task/getSupplementInfo", params) //获取当前任务的下一步操作
|
||||
export const getDepartmentTree = (params) => post("/app/util/getDepartmentTree", params) //获取部门树
|
||||
export const getUserList = (params) => post("/app/util/getUserList", params) //获取人员
|
||||
export const getToDoTaskList = (params) => post("/app/Task/getAllToDoList", params) //获取待办列表
|
||||
export const getTaskTechnologicalProcess = (params) => post("/app/Task/getAgencyList", params) //获取流程
|
||||
export const getTaskInfo = (params) => post("/app/Task/getInfo", params) //查看信息
|
||||
// 结束
|
||||
|
|
42
pages.json
42
pages.json
|
@ -174,18 +174,6 @@
|
|||
"navigationBarTitleText": "高危作业"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/select_corp_info",
|
||||
"style": {
|
||||
"navigationBarTitleText": "选择分公司"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/confined_space/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "受限空间安全作业"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/confined_space/apply",
|
||||
"style": {
|
||||
|
@ -198,6 +186,36 @@
|
|||
"navigationBarTitleText": "位置定位"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/select_corp_info",
|
||||
"style": {
|
||||
"navigationBarTitleText": "选择分公司"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/subordinate_index",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/to_do_list",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待办"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/technological_process",
|
||||
"style": {
|
||||
"navigationBarTitleText": "流程"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/view_info",
|
||||
"style": {
|
||||
"navigationBarTitleText": "查看"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/eight_assignments/select_review_personnel",
|
||||
"style": {
|
||||
|
|
|
@ -118,33 +118,33 @@ export default {
|
|||
WORK_CONTENT: '',
|
||||
WORK_START_DATE: '',
|
||||
WORK_END_DATE: '',
|
||||
WORK_LONGITUDE: '1',
|
||||
WORK_LATITUDE: '2',
|
||||
WORK_LONGITUDE: '',
|
||||
WORK_LATITUDE: '',
|
||||
WORK_USER: '',
|
||||
SPECIAL_WORK: '',
|
||||
RISK_IDENTIFICATION: '',
|
||||
},
|
||||
rules: {
|
||||
APPLY_DEPARTMENT_ID: [{type: 'string', required: true, message: '请选择申请单位', trigger: 'blur'}],
|
||||
APPLY_DEPARTMENT_NAME: [{type: 'string', required: true, message: '请选择申请人', trigger: 'blur'}],
|
||||
APPLY_USER_NAME: [{type: 'string', required: true, message: '请选择申请人', trigger: 'blur'}],
|
||||
CORP_NAME: [{type: 'string', required: true, message: '请选择作业分公司', trigger: 'blur'}],
|
||||
BELONG_CORP: [{type: 'string', required: true, message: '请输入受限空间所属单位', trigger: 'blur'}],
|
||||
// LIMITSPACE_NAME: [{type: 'string', required: true, message: '请选择受限空间名称', trigger: 'blur'}],
|
||||
MEDIUM_NAME: [{type: 'string', required: true, message: '请输入受限空间内原有介质名称', trigger: 'blur'}],
|
||||
WORK_CONTENT: [{type: 'string', required: true, message: '请输入作业内容', trigger: 'blur'}],
|
||||
WORK_START_DATE: [{type: 'string', required: true, message: '请选择作业开始时间', trigger: 'blur'}],
|
||||
WORK_END_DATE: [{type: 'string', required: true, message: '请选择作业结束时间', trigger: 'blur'}],
|
||||
WORK_LONGITUDE: [{type: 'string', required: true, message: '请选择经度', trigger: 'blur'}],
|
||||
WORK_LATITUDE: [{type: 'string', required: true, message: '请选择纬度', trigger: 'blur'}],
|
||||
WORK_USER: [{type: 'string', required: true, message: '请输入作业人', trigger: 'blur'}],
|
||||
APPLY_DEPARTMENT_ID: [{type: 'string', required: true, message: '请选择申请单位', trigger: ['blur','change']}],
|
||||
APPLY_DEPARTMENT_NAME: [{type: 'string', required: true, message: '请选择申请人', trigger: ['blur','change']}],
|
||||
APPLY_USER_NAME: [{type: 'string', required: true, message: '请选择申请人', trigger: ['blur','change']}],
|
||||
CORP_NAME: [{type: 'string', required: true, message: '请选择作业分公司', trigger: ['blur','change']}],
|
||||
BELONG_CORP: [{type: 'string', required: true, message: '请输入受限空间所属单位', trigger: ['blur','change']}],
|
||||
LIMITSPACE_NAME: [{type: 'string', required: true, message: '请选择受限空间名称', trigger: ['blur','change']}],
|
||||
MEDIUM_NAME: [{type: 'string', required: true, message: '请输入受限空间内原有介质名称', trigger: ['blur','change']}],
|
||||
WORK_CONTENT: [{type: 'string', required: true, message: '请输入作业内容', trigger: ['blur','change']}],
|
||||
WORK_START_DATE: [{type: 'string', required: true, message: '请选择作业开始时间', trigger: ['blur','change']}],
|
||||
WORK_END_DATE: [{type: 'string', required: true, message: '请选择作业结束时间', trigger: ['blur','change']}],
|
||||
WORK_LONGITUDE: [{type: 'string', required: true, message: '请选择经度', trigger: ['blur','change']}],
|
||||
WORK_LATITUDE: [{type: 'string', required: true, message: '请选择纬度', trigger: ['blur','change']}],
|
||||
WORK_USER: [{type: 'string', required: true, message: '请输入作业人', trigger: ['blur','change']}],
|
||||
SPECIAL_WORK: [{
|
||||
type: 'string',
|
||||
required: true,
|
||||
message: '请输入关联的其他特殊作业及安全作业票编号',
|
||||
trigger: 'blur'
|
||||
trigger: ['blur','change']
|
||||
}],
|
||||
RISK_IDENTIFICATION: [{type: 'string', required: true, message: '请输入风险辨识结果', trigger: 'blur'}],
|
||||
RISK_IDENTIFICATION: [{type: 'string', required: true, message: '请输入风险辨识结果', trigger: ['blur','change']}],
|
||||
},
|
||||
picker: {
|
||||
show: false,
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="card">
|
||||
<view class="items">
|
||||
<view class="item" v-for="(item,index) in baseList" :key="index" @click="fnNavigator(index)">
|
||||
<image :src="item.img" mode=""></image>
|
||||
<view class="text">
|
||||
<text>{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseList: [
|
||||
{
|
||||
img: require('../../../static/icon-apps/i9.png'),
|
||||
title: '申请',
|
||||
url: '/pages/eight_assignments/select_corp_info',
|
||||
params: {
|
||||
type: 'confined_space'
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../../static/icon-apps/i10.png'),
|
||||
title: '待办',
|
||||
url: '/pages/eight_assignments/confined_space/index'
|
||||
},
|
||||
{
|
||||
img: require('../../../static/icon-apps/i11.png'),
|
||||
title: '已办',
|
||||
url: '/pages/eight_assignments/confined_space/index'
|
||||
},
|
||||
]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
fnNavigator(e) {
|
||||
uni.$u.route({
|
||||
url: this.baseList[e].url,
|
||||
params: this.baseList[e].params
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.items {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: -20upx;
|
||||
|
||||
.item {
|
||||
flex-basis: calc(100% / 3);
|
||||
text-align: center;
|
||||
margin-top: 20upx;
|
||||
|
||||
image {
|
||||
width: 110upx;
|
||||
height: 110upx;
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 130upx;
|
||||
font-size: 28upx;
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -14,49 +14,73 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseList: [
|
||||
{
|
||||
img: require('../../static/icon-apps/i1.png'),
|
||||
title: '受限空间安全作业',
|
||||
url: '/pages/eight_assignments/confined_space/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'confined_space',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i2.png'),
|
||||
title: '盲板抽堵作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'blind_board',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i3.png'),
|
||||
title: '动土作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'break_ground',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i4.png'),
|
||||
title: '高处作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'high_work',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i5.png'),
|
||||
title: '吊装作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'hoisting',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i6.png'),
|
||||
title: '临时用电作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'electricity',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i7.png'),
|
||||
title: '动火作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'hot_work',
|
||||
}
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i8.png'),
|
||||
title: '断路作业',
|
||||
url: '/pages/electronic_work_card/index'
|
||||
url: '/pages/eight_assignments/subordinate_index',
|
||||
params: {
|
||||
type: 'cut_road',
|
||||
}
|
||||
},
|
||||
]
|
||||
};
|
||||
|
@ -64,15 +88,19 @@
|
|||
methods: {
|
||||
fnNavigator(e) {
|
||||
uni.$u.route({
|
||||
url: this.baseList[e].url
|
||||
url: this.baseList[e].url,
|
||||
params: {
|
||||
title: this.baseList[e].title,
|
||||
...this.baseList[e].params
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.items {
|
||||
.items {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
@ -94,5 +122,5 @@
|
|||
margin: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -60,7 +60,7 @@ export default {
|
|||
this.$set(this.rules, item.key_name, [{
|
||||
required: item.isRequired === '1',
|
||||
message: item.name + '不能为空',
|
||||
trigger: 'blur',
|
||||
trigger: ['blur', 'change'],
|
||||
}])
|
||||
})
|
||||
},
|
||||
|
@ -90,6 +90,10 @@ export default {
|
|||
},
|
||||
async fnGetUserList({DEPARTMENT_ID, TYPE}, value) {
|
||||
let resData = await getUserList({DEPARTMENT_ID, TYPE})
|
||||
for (let i = 0; i < resData.list.list.length; i++) {
|
||||
resData.list.list[i].NAME = resData.list.list[i].name || resData.list.list[i].NAME
|
||||
resData.list.list[i].USER_ID = resData.list.list[i].user_ID || resData.list.list[i].USER_ID
|
||||
}
|
||||
this.$set(this.picker.columnsAll, value, [resData.list.list])
|
||||
},
|
||||
fnSelectUser(key_name, key_id, value) {
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="card">
|
||||
<view class="items">
|
||||
<view class="item" v-for="(item,index) in baseList" :key="index" @click="fnNavigator(index)">
|
||||
<image :src="item.img" mode=""></image>
|
||||
<view class="text">
|
||||
<text>{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
baseList: [
|
||||
{
|
||||
img: require('../../static/icon-apps/i9.png'),
|
||||
title: '申请',
|
||||
url: '/pages/eight_assignments/select_corp_info'
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i10.png'),
|
||||
title: '待办',
|
||||
url: '/pages/eight_assignments/to_do_list'
|
||||
},
|
||||
{
|
||||
img: require('../../static/icon-apps/i11.png'),
|
||||
title: '已办',
|
||||
url: '/pages/eight_assignments/completed_list'
|
||||
},
|
||||
],
|
||||
type: '',
|
||||
title: ''
|
||||
};
|
||||
},
|
||||
onLoad(query) {
|
||||
this.type = query.type;
|
||||
this.title = query.title;
|
||||
uni.setNavigationBarTitle({
|
||||
title: this.title
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
fnNavigator(e) {
|
||||
uni.$u.route({
|
||||
url: this.baseList[e].url,
|
||||
params: {
|
||||
type: this.type,
|
||||
title: this.title,
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.items {
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: -20upx;
|
||||
|
||||
.item {
|
||||
flex-basis: calc(100% / 3);
|
||||
text-align: center;
|
||||
margin-top: 20upx;
|
||||
|
||||
image {
|
||||
width: 110upx;
|
||||
height: 110upx;
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 130upx;
|
||||
font-size: 28upx;
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,90 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<cc-defineStep colors="#fa436a" :stepData="stepData"></cc-defineStep>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getTaskTechnologicalProcess} from "@/api";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
stepData: [
|
||||
{
|
||||
name: '提交申请',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '不想要了'
|
||||
},
|
||||
{
|
||||
name: '等待审核',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已申请成功,待售后审核中'
|
||||
},
|
||||
{
|
||||
name: '审核意见',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的售后单已收到,会在24小时与您联系。'
|
||||
},
|
||||
{
|
||||
name: '审核上门取件',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已预约时间2023-06-10(周日) 15:00-20:00'
|
||||
},
|
||||
{
|
||||
name: '取件成功',
|
||||
time: '2023-06-10 18:54:55',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的商品已取件成功'
|
||||
},
|
||||
{
|
||||
name: '商家售后已收到',
|
||||
time: '2023-06-12 09:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单商品已收到'
|
||||
},
|
||||
{
|
||||
name: '返修换新订单生产',
|
||||
time: '2023-06-12 13:19:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务订单已生成新的订单'
|
||||
},
|
||||
{
|
||||
name: '返修换新完成',
|
||||
time: '2023-06-13 12:12:49',
|
||||
isNow: 1,
|
||||
type: 1,
|
||||
desc: '您的服务单已完成,如有疑问请反馈,谢谢~,欢迎再次光临'
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad(query) {
|
||||
this.fnGetData(query.taskId)
|
||||
uni.setNavigationBarTitle({
|
||||
title: query.title + '流程'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
async fnGetData(taskId) {
|
||||
let resData = await getTaskTechnologicalProcess({ID: taskId})
|
||||
console.log(resData)
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
|
@ -0,0 +1,85 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<u-list @scrolltolower="scrolltolower" v-if="list.length > 0">
|
||||
<u-list-item v-for="(item, index) in list" :key="index">
|
||||
<view class="flex-between main-title">
|
||||
<text>申请人:{{ item.taskName }}</text>
|
||||
</view>
|
||||
<view class="flex-between main-title">
|
||||
<text>作业分公司:{{ item.taskName }}</text>
|
||||
</view>
|
||||
<view class="flex-between main-title">
|
||||
<text>申请时间:{{ item.taskName }}</text>
|
||||
</view>
|
||||
<view class="flex-between mt-10 subtitle">
|
||||
<view></view>
|
||||
<view class="flex-between">
|
||||
<u-button type="primary" text="流程" size="mini" class="bth-mini"
|
||||
@click="$u.route({
|
||||
url: '/pages/eight_assignments/technological_process',
|
||||
params: {taskId:item.taskId,type,title}
|
||||
})"/>
|
||||
<u-button type="primary" text="审批" size="mini" class="bth-mini ml-10"
|
||||
@click="$u.route({
|
||||
url: '/pages/eight_assignments/view_info',
|
||||
params: {taskId:item.taskId,type,title}
|
||||
})"/>
|
||||
</view>
|
||||
</view>
|
||||
</u-list-item>
|
||||
</u-list>
|
||||
<empty v-else></empty>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getToDoTaskList} from "@/api";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
type: '',
|
||||
title: '',
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
totalPage: 0,
|
||||
list: []
|
||||
}
|
||||
},
|
||||
onLoad(query) {
|
||||
this.type = query.type
|
||||
this.title = query.title
|
||||
uni.setNavigationBarTitle({
|
||||
title: this.title + '待办'
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
this.resetList()
|
||||
},
|
||||
methods: {
|
||||
async getData() {
|
||||
let resData = await getToDoTaskList({
|
||||
showCount: this.pageSize,
|
||||
currentPage: this.currentPage,
|
||||
type: this.type,
|
||||
});
|
||||
this.list = [...this.list, ...resData.list.list];
|
||||
this.totalPage = resData.list.totalPage;
|
||||
},
|
||||
resetList() {
|
||||
this.pageSize = 10
|
||||
this.currentPage = 1
|
||||
this.list = []
|
||||
this.getData()
|
||||
},
|
||||
scrolltolower() {
|
||||
this.currentPage++;
|
||||
if (this.totalPage >= this.currentPage) this.getData();
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
|
@ -0,0 +1,28 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="card"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getTaskInfo} from "@/api";
|
||||
|
||||
export default {
|
||||
onLoad(query) {
|
||||
this.fnGetData(query.taskId)
|
||||
uni.setNavigationBarTitle({
|
||||
title: query.title + '查看'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
async fnGetData(taskId) {
|
||||
let resData = await getTaskInfo({EW_RU_TASK_ID: taskId})
|
||||
console.log(resData)
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
|
@ -0,0 +1,8 @@
|
|||
## 1.3(2024-06-27)
|
||||
优化
|
||||
## 1.2(2024-05-16)
|
||||
组件优化
|
||||
## 1.0.1(2023-07-09)
|
||||
组件优化
|
||||
## 1.0.0(2023-07-09)
|
||||
组件初始化
|
|
@ -0,0 +1,135 @@
|
|||
<template>
|
||||
<view class="step">
|
||||
<view class="step_box">
|
||||
<!-- 左侧进度线 -->
|
||||
<view class="step_left">
|
||||
</view>
|
||||
|
||||
<view class="step_right">
|
||||
<view class="right_content" v-for="(item,index) in stepData" :key="index">
|
||||
<!-- 进度名称 -->
|
||||
<block v-if="item.isNow == 0">
|
||||
<view class="title" :style="{color:item.type == 1? '#202020':'#999'}">{{item.name}}</view>
|
||||
</block>
|
||||
<block v-if="item.isNow == 1">
|
||||
<view class="title" :style="{color:item.type == 1? colors:'#999'}">{{item.name}}</view>
|
||||
</block>
|
||||
<!-- 进度时间 -->
|
||||
<view class="times" v-if="item.type == 1">{{item.time}}</view>
|
||||
<!-- 进度详情备注 -->
|
||||
<view class="result" v-if="item.desc && item.desc !== ''"><text
|
||||
style="color: #202020;">{{item.desc}}</text></view>
|
||||
<!-- 右侧的进度点 -->
|
||||
<view class="status"
|
||||
:style="{background: item.isNow == 1?colors:'#ccc',borderColor: item.isNow == 1?colors:'#ccc'}">{{item.isNow == 1?"✓":''}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
props: {
|
||||
colors: {
|
||||
type: String
|
||||
},
|
||||
stepData: {
|
||||
type: Array
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.step {
|
||||
padding: 40upx 20upx;
|
||||
margin-bottom: 20upx;
|
||||
}
|
||||
|
||||
.step_box {
|
||||
margin: 0 20upx;
|
||||
display: flex;
|
||||
|
||||
.step_left {
|
||||
width: 2upx;
|
||||
display: block;
|
||||
background-color: #DDDDDD;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.step_right {
|
||||
margin-left: 20upx;
|
||||
margin-top: -10upx;
|
||||
|
||||
.right_content {
|
||||
position: relative;
|
||||
margin-bottom: 30upx;
|
||||
|
||||
.title {
|
||||
font-size: 28upx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.times {
|
||||
font-size: 22upx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
line-height: 36upx;
|
||||
}
|
||||
|
||||
.status {
|
||||
width: 24upx;
|
||||
height: 24upx;
|
||||
border-radius: 50%;
|
||||
border: 2upx solid #ccc;
|
||||
position: absolute;
|
||||
top: 10upx;
|
||||
background-color: #ccc;
|
||||
left: -36upx;
|
||||
color: white;
|
||||
line-height: 12px;
|
||||
font-size: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.result {
|
||||
padding: 10upx 15upx;
|
||||
background-color: #F6F6F6;
|
||||
font-size: 22upx;
|
||||
margin-top: 10upx;
|
||||
border: 1upx dashed #ddd;
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
margin-bottom: 0;
|
||||
|
||||
.status {
|
||||
top: 14upx;
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
width: 6upx;
|
||||
height: 100%;
|
||||
background-color: #FFFFFF;
|
||||
position: absolute;
|
||||
top: 22upx;
|
||||
left: -24upx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"id": "cc-defineStep",
|
||||
"displayName": "自定义精美steps步骤条进度条插件 物流信息跟踪展示组件 流程审批跟进组件",
|
||||
"version": "1.3",
|
||||
"description": "自定义精美steps步骤条进度条插件 物流信息跟踪展示组件 流程审批跟进组件",
|
||||
"keywords": [
|
||||
"步骤条",
|
||||
"时间轴",
|
||||
"",
|
||||
"物流信息",
|
||||
"物流",
|
||||
"跟踪"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.8.0"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "component-vue",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "无",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y",
|
||||
"alipay": "n"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "y",
|
||||
"vue3": "y"
|
||||
},
|
||||
"App": {
|
||||
"app-vue": "y",
|
||||
"app-nvue": "y"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "y",
|
||||
"Android Browser": "y",
|
||||
"微信浏览器(Android)": "y",
|
||||
"QQ浏览器(Android)": "y"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "y",
|
||||
"IE": "y",
|
||||
"Edge": "y",
|
||||
"Firefox": "y",
|
||||
"Safari": "y"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "y",
|
||||
"阿里": "y",
|
||||
"百度": "y",
|
||||
"字节跳动": "y",
|
||||
"QQ": "y",
|
||||
"钉钉": "y",
|
||||
"快手": "y",
|
||||
"飞书": "y",
|
||||
"京东": "y"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "y",
|
||||
"联盟": "y"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,170 @@
|
|||
# cc-defineStep
|
||||
|
||||
|
||||
### 我的技术微信公众号
|
||||
|
||||
![图片](https://i.postimg.cc/RZ0sjnYP/front-End-Component.jpg)
|
||||
|
||||
|
||||
#### 使用方法
|
||||
```使用方法
|
||||
<!-- colors: 设置主题色 stepData:步骤数据 -->
|
||||
<cc-defineStep :colors="colors" :stepData="stepData"></cc-defineStep>
|
||||
|
||||
<!-- 数据设置 -->
|
||||
colors:"#fa436a",
|
||||
//模拟后台返回的数据
|
||||
stepData: [
|
||||
{
|
||||
name: '提交申请',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '不想要了'
|
||||
},
|
||||
{
|
||||
name: '等待审核',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已申请成功,待售后审核中'
|
||||
},
|
||||
{
|
||||
name: '审核意见',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的售后单已收到,会在24小时与您联系。'
|
||||
},
|
||||
{
|
||||
name: '审核上门取件',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已预约时间2023-06-10(周日) 15:00-20:00'
|
||||
},
|
||||
{
|
||||
name: '取件成功',
|
||||
time: '2023-06-10 18:54:55',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的商品已取件成功'
|
||||
},
|
||||
{
|
||||
name: '商家售后已收到',
|
||||
time: '2023-06-12 09:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单商品已收到'
|
||||
},
|
||||
{
|
||||
name: '返修换新订单生产',
|
||||
time: '2023-06-12 13:19:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务订单已生成新的订单'
|
||||
},
|
||||
{
|
||||
name: '返修换新完成',
|
||||
time: '2023-06-13 12:12:49',
|
||||
isNow: 1,
|
||||
type: 1,
|
||||
desc: '您的服务单已完成,如有疑问请反馈,谢谢~,欢迎再次光临'
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
#### HTML代码实现部分
|
||||
```html
|
||||
<template>
|
||||
|
||||
<!-- colors: 设置主题色 stepData:步骤数据 -->
|
||||
<cc-defineStep :colors="colors" :stepData="stepData"></cc-defineStep>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
|
||||
colors:"#fa436a",
|
||||
//模拟后台返回的数据
|
||||
stepData: [
|
||||
{
|
||||
name: '提交申请',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '不想要了'
|
||||
},
|
||||
{
|
||||
name: '等待审核',
|
||||
time: '2023-06-09 20:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已申请成功,待售后审核中'
|
||||
},
|
||||
{
|
||||
name: '审核意见',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的售后单已收到,会在24小时与您联系。'
|
||||
},
|
||||
{
|
||||
name: '审核上门取件',
|
||||
time: '2023-06-09 20:13:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单已预约时间2023-06-10(周日) 15:00-20:00'
|
||||
},
|
||||
{
|
||||
name: '取件成功',
|
||||
time: '2023-06-10 18:54:55',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的商品已取件成功'
|
||||
},
|
||||
{
|
||||
name: '商家售后已收到',
|
||||
time: '2023-06-12 09:01:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务单商品已收到'
|
||||
},
|
||||
{
|
||||
name: '返修换新订单生产',
|
||||
time: '2023-06-12 13:19:49',
|
||||
isNow: 0,
|
||||
type: 1,
|
||||
desc: '您的服务订单已生成新的订单'
|
||||
},
|
||||
{
|
||||
name: '返修换新完成',
|
||||
time: '2023-06-13 12:12:49',
|
||||
isNow: 1,
|
||||
type: 1,
|
||||
desc: '您的服务单已完成,如有疑问请反馈,谢谢~,欢迎再次光临'
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
// 步骤数组数据反序
|
||||
this.stepData.reverse()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
```
|
|
@ -12,7 +12,7 @@
|
|||
<view class="next-tree-bar-confirm" :style="{'color':_themeColor}" hover-class="hover-c" @tap="_confirm">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- #ifdef APP-PLUS-->
|
||||
<!-- #ifndef H5-->
|
||||
<view class="next-tree-view" :style="'top:'+(_showTreeBar?'72rpx':'0rpx')">
|
||||
<!-- #endif-->
|
||||
<!-- #ifdef H5-->
|
||||
|
|
|
@ -51,6 +51,13 @@ export const setPersonnelForm = async ({form, list, taskId, CORP_ID, TYPE}) => {
|
|||
})
|
||||
await resolveNextOperation(taskId, CORP_ID, TYPE)
|
||||
}
|
||||
const endCurrentPersonnelTechnologicalProcess = async ({EW_RU_TASK_ID}) => {
|
||||
await setTaskSave({
|
||||
COMPLETE_FLAG: '1',
|
||||
data: [{task: {EW_RU_TASK_ID}}],
|
||||
postMethod: 'application/json',
|
||||
})
|
||||
}
|
||||
// 决定下一步操作 EW_RU_TASK_ID当前任务id CORP_ID 选择的企业id TYPE作业类型
|
||||
const resolveNextOperation = async (EW_RU_TASK_ID, CORP_ID, TYPE) => {
|
||||
const {info} = await getCurrentNextOperation({EW_RU_TASK_ID})
|
||||
|
@ -72,5 +79,12 @@ const resolveNextOperation = async (EW_RU_TASK_ID, CORP_ID, TYPE) => {
|
|||
if (info.canAddFlag === '1') {
|
||||
return
|
||||
}
|
||||
console.log('没有下一步了')
|
||||
// 没有下一步,结束流程,因为无法确定有多少步骤,跳转了多少页面,所以直接跳转到首页
|
||||
await endCurrentPersonnelTechnologicalProcess({EW_RU_TASK_ID})
|
||||
uni.$u.toast('提交成功')
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}, 1500)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue