This commit is contained in:
shijing 2022-08-08 13:26:14 +08:00
parent a6b0fccb12
commit 466c8ef228
6 changed files with 562 additions and 185 deletions

View File

@ -47,6 +47,7 @@ const install = (Vue, vm) => {
let addNodeEnd = (id, data = {}) => vm.$u.get(`/wf/ticket/${id}/add_node_end/`, data); //加签处理
let deliver = (id, data = {}) => vm.$u.get(`/wf/ticket/${id}/deliver/`, data); //转交工单
let ticketHandle = (id, data = {}) => vm.$u.post(`/wf/ticket/${id}/handle/`, data); //工单处理
let ticketAccept = (id) => vm.$u.post(`/wf/ticket/${id}/accpet/`); //接单
let operationList = (data = {}) => vm.$u.get('/opm/operation/', data); //作业列表
let operationItem = (id) => vm.$u.get(`/opm/operation/${id}/`); //作业详情
@ -95,6 +96,7 @@ const install = (Vue, vm) => {
userList,
deptList,
ticketCreate,
ticketAccept,
getDickey,
getTickets,
getTicketItem,

View File

@ -52,6 +52,13 @@
"navigationStyle": "custom"
}
},
{
"path": "pages/home/list/ticketAll",
"style": {
"navigationBarTitleText": "所有工单",
"navigationStyle": "custom"
}
},
{
"path": "pages/home/list/warning",
"style": {

View File

@ -5,12 +5,12 @@
<block v-if="cateType==='visit'">
<view class="ticket-info">
<view class="form-item border-bottom">
<view class="form-item">
<view class="form-left">
<text class="form-left-text">工单流水号</text>
</view>
<view class="form-right">
<input type="text" v-model="ticketDetail.sn" maxlength="50" placeholder="请输入" />
<view>{{ticketDetail.sn}}</view>
</view>
</view>
</view>
@ -18,31 +18,26 @@
<view class="form-content ">
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">作业名称</text>
<text class="form-left-text">来访概述</text>
</view>
<view class="form-right">
<input type="text" v-model="oplDetail.name" maxlength="50" placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">开始时间</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.start_time" @change="bindStartDateChange">
<view class="uni-input">{{formData.start_time}}</view>
</picker>
<view>{{visitDetail.name }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">结束时间</text>
<text class="form-left-text">来访单位</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.end_time" @change="bindEndDateChange">
<view class="uni-input">{{formData.end_time}}</view>
</picker>
<view class="form-right">
<view>{{visitDetail.company }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">来访人数</text>
</view>
<view class="form-right">
<view>{{ visitDetail.count_people }}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -50,50 +45,48 @@
<text class="form-left-text">状态</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">作业区域</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{state_[visitDetail.state] }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">业务部门</text>
<text class="form-left-text">来访时间</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{visitDetail.visit_time}}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">部门协调员</text>
<text class="form-left-text">离开时间</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{visitDetail.leave_time}}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">属地部门</text>
<text class="form-left-text">来访事由</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{purpose_[visitDetail.purpose] }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left-text">
<text class="star">*</text>
<text>审批意见</text>
<view class="form-left">
<text class="form-left-text">来访详述</text>
</view>
<view class="form-right">
<view>{{visitDetail.description }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">接待人</text>
</view>
<view class="form-right">
<view>{{visitDetail.receptionist_name}}</view>
</view>
<textarea class="apply-reason-text" v-model="formData.name" maxlength="250" placeholder="请输入" />
</view>
<view class="btn">
<button type="default" class="save-btn">同意</button>
@ -102,15 +95,14 @@
</view>
</block>
<block v-if="cateType==='rparty'">
<block v-else-if="cateType==='rpj'">
<view class="ticket-info">
<view class="form-item border-bottom">
<view class="form-item">
<view class="form-left">
<text class="form-left-text">工单流水号</text>
</view>
<view class="form-right">
<input type="text" v-model="ticketDetail.sn" maxlength="50" placeholder="请输入" />
<view>{{ticketDetail.sn}}</view>
</view>
</view>
</view>
@ -118,31 +110,34 @@
<view class="form-content ">
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">作业名称</text>
<text class="form-left-text">相关方</text>
</view>
<view class="form-right">
<input type="text" v-model="oplDetail.name" maxlength="50" placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">开始时间</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.start_time" @change="bindStartDateChange">
<view class="uni-input">{{formData.start_time}}</view>
</picker>
<view>{{rpjDetail.rparty_name }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">结束时间</text>
<text class="form-left-text">入厂项目</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.end_time" @change="bindEndDateChange">
<view class="uni-input">{{formData.end_time}}</view>
</picker>
<view class="form-right">
<view>{{rpjDetail.name }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">项目类型</text>
</view>
<view class="form-right">
<view>{{rpjType_[rpjDetail.type]}}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">合同编号</text>
</view>
<view class="form-right">
<view>{{ rpjDetail.contract_number }}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -150,59 +145,57 @@
<text class="form-left-text">状态</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">作业区域</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{state_[rpjDetail.state] }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">业务部门</text>
<text class="form-left-text">进厂时间</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{rpjDetail.come_time}}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">部门协调员</text>
<text class="form-left-text">离厂时间</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{rpjDetail.leave_time}}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">部门</text>
<text class="form-left-text">属部门</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
<view>{{rpjDetail.belong_dept_name }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left-text">
<text class="star">*</text>
<text>审批意见</text>
<view class="form-left">
<text class="form-left-text">来访详述</text>
</view>
<view class="form-right">
<view>{{rpjDetail.description }}</view>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="form-left-text">接待人</text>
</view>
<view class="form-right">
<view>{{rpjDetail.receptionist_name}}</view>
</view>
<textarea class="apply-reason-text" v-model="formData.name" maxlength="250" placeholder="请输入" />
</view>
<view class="btn">
<button type="default" class="save-btn">同意</button>
</view>
</view>
</view>
</block>
<block v-else>
<block v-else-if="cateType==='opl_fire'">
<view class="ticket-info">
<view class="form-item border-bottom">
<view class="form-left">
@ -217,7 +210,7 @@
<text class="form-left-text">工单名称</text>
</view>
<view class="form-right">
<view>{{oplDetail.ticket_.title}}</view>
<view v-if="oplDetail.ticket_">{{oplDetail.ticket_.title}}</view>
</view>
</view>
<view class="form-item">
@ -225,7 +218,7 @@
<text class="form-left-text">工单状态</text>
</view>
<view class="form-right">
<view>{{oplDetail.ticket_.state_.name}}</view>
<view v-if="oplDetail.ticket_">{{oplDetail.ticket_.state_.name}}</view>
</view>
</view>
</view>
@ -235,7 +228,7 @@
<text class="form-left-text">作业名称</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.name}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -243,7 +236,7 @@
<text class="form-left-text">具体地点</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.place}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.place}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -251,7 +244,7 @@
<text class="form-left-text">作业状态</text>
</view>
<view class="form-right">
<view>{{state_[oplDetail.operation_.state]}}</view>
<view v-if="oplDetail.operation_">{{state_[oplDetail.operation_.state]}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -259,7 +252,7 @@
<text class="form-left-text">生产状态</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.state_work }}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.state_work }}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -267,7 +260,7 @@
<text class="form-left-text">作业区域</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.area_.name}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.area_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -275,7 +268,7 @@
<text class="form-left-text">业务部门</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.dept_bus_.name}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.dept_bus_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -283,7 +276,7 @@
<text class="form-left-text">属地部门</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.dept_ter_.name}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.dept_ter_.name}}</view>
</view>
</view>
<view class="form-item ">
@ -291,7 +284,7 @@
<text class="form-left-text">部门协调员</text>
</view>
<view class="form-right">
<view>{{oplDetail.operation_.coordinator_.name}}</view>
<view v-if="oplDetail.operation_">{{oplDetail.operation_.coordinator_.name}}</view>
</view>
</view>
</view>
@ -326,7 +319,7 @@
<text class="form-left-text">作业部门</text>
</view>
<view class="form-right">
<view>{{oplDetail.dept_do_.name}}</view>
<view v-if="oplDetail.dept_do_">{{oplDetail.dept_do_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -334,7 +327,7 @@
<text class="form-left-text">作业负责人</text>
</view>
<view class="form-right">
<view>{{oplDetail.charger_.name}}</view>
<view v-if="oplDetail.charger_">{{oplDetail.charger_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -342,7 +335,7 @@
<text class="form-left-text">作业监护人</text>
</view>
<view class="form-right">
<view>{{oplDetail.monitor_.name}}</view>
<view v-if="oplDetail.monitor_">{{oplDetail.monitor_.name}}</view>
</view>
</view>
<view class="form-item border-bottom">
@ -364,44 +357,45 @@
</view>
</view>
</block>
<view class="ticket-info" v-if="type==='handle'">
<view class="form-item" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
<view class="form-left-text" style="width: 100%;">
<text class="star">*</text>
<text>作业情况</text>
<block v-if="type=='handle'">
<view class="ticket-info">
<view class="form-item" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
<view class="form-left-text" style="width: 100%;">
<text class="star">*</text>
<text>作业情况</text>
</view>
<uni-data-select v-model="form.close_note" :localdata="noteOption" label="选择关闭原因"></uni-data-select>
</view>
<view class="form-item" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
<view class="form-left-text">
<text class="star">*</text>
<text>关闭处理</text>
</view>
<uni-data-select v-model="form.close_dos" :localdata="dosOption" label="关闭处理"></uni-data-select>
</view>
<view class="form-item" style="height: 300rpx;">
<view class="form-left-text">
<text class="star">*</text>
<text>审批意见</text>
</view>
<textarea class="apply-reason-text" v-model="form.name" maxlength="250" placeholder="请输入" />
</view>
<view class="btn" style="display: flex;justify-content: space-between;margin-top: 20rpx;">
<view class="left-content">
<button class="mini-btn" size="mini" type="primary" @click="addNode">加签</button>
<button class="mini-btn" size="mini" v-if="ticketDetail.state_&&ticketDetail.state_.enable_deliver"
type="primary" plain @click="deliverNode">转交
</button>
</view>
<view class="right-time">
<button v-for="item in operationBtn" :key="item.id" class="mini-btn" size="mini"
:type="item.attribute_type===2?'warn':'primary'" @click="operationSubmit(item.id)">
{{item.name}}
</button>
</view>
</view>
</view>
<uni-data-select v-model="form.close_note" :localdata="noteOption" label="选择关闭原因"></uni-data-select>
</view>
<view class="form-item" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
<view class="form-left-text">
<text class="star">*</text>
<text>关闭处理</text>
</view>
<uni-data-select v-model="form.close_dos" :localdata="dosOption" label="关闭处理"></uni-data-select>
</view>
<view class="form-item" style="height: 300rpx;">
<view class="form-left-text">
<text class="star">*</text>
<text>审批意见</text>
</view>
<textarea class="apply-reason-text" v-model="form.name" maxlength="250" placeholder="请输入" />
</view>
<view class="btn" style="display: flex;justify-content: space-between;margin-top: 20rpx;">
<view class="left-content">
<button class="mini-btn" size="mini" type="primary" @click="addNode">加签</button>
<button class="mini-btn" size="mini" v-if="ticketDetail.state_&&ticketDetail.state_.enable_deliver"
type="primary" plain @click="deliverNode">转交
</button>
</view>
<view class="right-time">
<button v-for="item in operationBtn" :key="item.id" class="mini-btn" size="mini"
:type="item.attribute_type===2?'warn':'primary'" @click="operationSubmit(item.id)">
{{item.name}}
</button>
</view>
</view>
</view>
</block>
</view>
</template>
@ -528,7 +522,7 @@
}
},
onLoad(params) {
// debugger;
debugger;
console.log(params)
that = this;
that.ticketId = params.ticketId;
@ -537,9 +531,11 @@
that.type = params.type;
},
onShow() {
debugger;
console.log(this.type)
if (this.cateType === 'visit') {
this.getVisit();
} else if (this.cateType === 'rparty') {
} else if (this.cateType === 'rpj') {
this.getRpj();
} else {
this.getOpl();
@ -557,13 +553,15 @@
},
//访
getVisit() {
this.$u.api.getVisit(this.ticketId).then(res => {
debugger;
this.$u.api.visitItem(this.projectId).then(res => {
debugger;
this.visitDetail = res;
})
},
//
getRpj() {
this.$u.api.getRpj(this.projectId).then((res) => {
this.$u.api.rpjItem(this.projectId).then((res) => {
// debugger;
this.rpjDetail = res;
});
@ -571,7 +569,7 @@
//
getOpl() {
this.$u.api.getOpl(this.projectId).then((res) => {
this.$u.api.oplItem(this.projectId).then((res) => {
// debugger;
this.oplDetail = res;
});

View File

@ -2,18 +2,48 @@
<view class="my_duty">
<uni-nav-bar @clickLeft="goBack()" height="110rpx" leftWidth="200rpx" leftText="我的代办" leftIcon="left" border
backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>
<view class="my-top-search-nav">
<view class="my-top-search-nav">
<view class="search-wrap">
<view class="search-body">
<image class="left-img" src="../../../static/home/searchIcon.png" mode=""></image>
<input class="search-input" v-show="isHetongShow" type="text" v-model="params.search"
placeholder="请输入合同编号" />
<input class="search-input" v-show="!isHetongShow" type="text" v-model="params.search"
placeholder="请输入项目代码" />
<view class="right-btn" @click="searchHandle">
搜索
</view>
</view>
</view>
<!-- 主体 导航栏 -->
<view class="tabbar-title">
<view :class="{'text-title':true, 'active':isHetongShow}" @click="changeList('hetong')">我的代办</view>
<view :class="{'text-title':true, 'active':!isHetongShow}" @click="changeList('xiangmu')">全部工单</view>
<!-- <view class="right-pick" @click="showDrawer">
<image class="right-img" src="../../static/project_manegment/shaixuan.png" mode=""></image>
<text>筛选</text>
</view> -->
</view>
</view>
<!-- <view class="my-top-search-nav">
<view class="search-wrap">
<view class="search-body">
<image class="left-img" src="../../../static/home/searchIcon.png" mode=""></image>
<input class="search-input" type="text" v-model="search" placeholder="请输入" />
<input class="search-input" type="text" v-model="params.search" placeholder="请输入" />
<image class="right-img" src="../../../static/my/my_apply/zuofei.png" mode="" @click="resetSearch">
</image>
<view class="right-btn" @click="searchHandle">搜索</view>
</view>
<view class="right-btn allBtn" @click="searchShowAll">全部</view>
</view>
</view>
<view class="empty-view"></view>
<view class="empty-view">
<view></view>
</view>
-->
<view class="content">
<view class="item-wrap" v-for="(val,index) in ticketList" :key="val.id">
<view class="duty-item">
@ -27,10 +57,14 @@
<view class="info-details">更新时间{{val.update_time}} </view>
</view>
<view class="bottom-btns">
<view class="shenhezhong shenhe-status" @click="ticketHandle(val)">
<view class="shenhezhong shenhe-status" @click="ticketHandle(val,'handle')" v-if="(val.act_state===1||val.act_state===3)&&val.state_.type===0">
<image src="../../../static/my/my_apply/blue-time.png" mode=""></image>
处理
</view>
<view class="shenhejieshu shenhe-status" @click="ticketHandle(val,'show')" v-else>
<image src="../../../static/my/my_apply/tongguo.png" mode=""></image>
查看
</view>
</view>
</view>
</view>
@ -43,9 +77,13 @@
name: 'ticket',
data() {
return {
search: '',
pageSize: 10,
pageNum: 1,
params:{
search: '',
pageSize: 10,
pageNum: 1,
category:'duty'
},
isHetongShow:false,
totalNum: 0,
ticketList: [],
}
@ -55,7 +93,7 @@
const totalPage = Math.ceil(this.totalNum / this.pageSize);
if (this.pageNum < totalPage) {
this.pageNum += 1;
this._getMyApplyList(false);
this.getTicketLists();
} else {
uni.showToast({
title: "已全部加载",
@ -76,23 +114,15 @@
methods: {
getTicketLists() {
let that = this;
let obj = {};
obj.category = 'all';
obj.pageNum = this.pageNum;
obj.pageSize = this.pageSize;
if (that.search !== '') {
obj.search = that.search;
}
obj.pageSize = this.pageSize;
that.$u.api.getTickets(obj).then(res => {
that.$u.api.getTickets(that.params).then(res => {
that.ticketList = that.ticketList.concat(res.results);
this.totalNum = res.count;
})
},
ticketHandle(val) {
let projectId = val.ticket_data.opl;//Id
ticketHandle(val,type) {
let projectId = val.ticket_data.visit?val.ticket_data.visit:val.ticket_data.rpj?val.ticket_data.rpj:val.ticket_data.opl;//Id visit
let catetype = val.workflow_.key;
const params = `?ticketId=${val.id}&projectId=${projectId}&cateType=${catetype}&type='handle'`;
const params = `?ticketId=${val.id}&projectId=${projectId}&cateType=${catetype}&type=${type}`;
uni.navigateTo({
url: '../detail/ticketHandle' + params,
})
@ -114,6 +144,12 @@
this.ticketList = [];
this.getTicketLists();
},
searchShowAll(){
debugger;
uni.navigateTo({
url: './ticketAll',
})
},
}
}
</script>
@ -124,7 +160,8 @@
}
>>>.uni-navbar__header,
>>>.uni-status-bar {
>>>.uni-status-bar ,
.search-wrap{
background-image: linear-gradient(254deg,
#0ca7ee 0%,
#005aff 100%,
@ -194,6 +231,10 @@
.shenhezhong {
color: #2c6fd9;
}
.shenhejieshu {
color: #15a306;
}
.shenhe-status image {
width: 26rpx;
@ -207,21 +248,22 @@
left: 0;
right: 0;
z-index: 999;
background-color: #f3fbff;
}
.search-wrap {
background-blend-mode: normal,
normal;
padding-bottom: 44rpx;
background-blend-mode: normal,normal;
padding-bottom: 20rpx;
padding-top: 20rpx;
display: flex;
justify-content: space-around;
}
.search-body {
width: 715rpx;
width: 600upx;
height: 78rpx;
background-color: #ffffff;
border-radius: 39rpx;
margin: 0 auto;
padding: 13rpx;
padding-left: 25rpx;
box-sizing: border-box;
@ -260,4 +302,53 @@
color: #ffffff;
text-align: center;
}
.right-btn.allBtn{
margin: 13rpx 0;
}
/* 主体-导航栏样式*/
.tabbar-title {
background-color: #FFFFFF;
height: 100rpx;
display: flex;
/* justify-content: space-between; */
padding: 0rpx 32rpx;
box-sizing: border-box;
font-size: 32rpx;
line-height: 100rpx;
color: #505050;
}
.text-title {
position: relative;
margin-right: 40upx;
}
.active.text-title::after {
content: "";
width: 46rpx;
height: 4rpx;
background-image: linear-gradient(90deg,
#164cc3 0%,
#2c6fd9 100%),
linear-gradient(#085f56,
#085f56);
background-blend-mode: normal,
normal;
border-radius: 2rpx;
position: absolute;
bottom: 20rpx;
left: 50%;
transform: translateX(-50%);
}
.right-img {
width: 32rpx;
height: 31rpx;
vertical-align: middle;
margin-right: 9rpx;
}
</style>

View File

@ -0,0 +1,273 @@
<template>
<view class="my_duty">
<uni-nav-bar @clickLeft="goBack()" height="110rpx" leftWidth="200rpx" leftText="全部工单" leftIcon="left" border
backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>
<view class="my-top-search-nav">
<view class="search-wrap">
<view class="search-body">
<image class="left-img" src="../../../static/home/searchIcon.png" mode=""></image>
<input class="search-input" type="text" v-model="search" placeholder="请输入" />
<image class="right-img" src="../../../static/my/my_apply/zuofei.png" mode="" @click="resetSearch">
</image>
<view class="right-btn" @click="searchHandle">搜索</view>
</view>
</view>
</view>
<view class="empty-view"></view>
<view class="content">
<view class="item-wrap" v-for="(val,index) in ticketList" :key="val.id">
<view class="duty-item">
<view class="top-info">
<view class="info-title">{{val.title}}</view>
</view>
<view class="center-info">
<view class="info-details">所属工作流{{val.workflow_.name}}</view>
<view class="info-details">工单状态{{val.state_.name}}</view>
<view class="info-details">提交时间{{val.create_time}} </view>
<view class="info-details">更新时间{{val.update_time}} </view>
</view>
<view class="bottom-btns">
<view class="shenhezhong shenhe-status" @click="ticketHandle(val)" v-if="val.state_.distribute_type===1&&val.participant_type===2">
<image src="../../../static/my/my_apply/blue-time.png" mode=""></image>
接单
</view>
<view class="shenhejieshu shenhe-status" @click="ticketShow(val)" v-else>
<image src="../../../static/my/my_apply/tongguo.png" mode=""></image>
查看
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'ticket',
data() {
return {
params:{
search: '',
pageSize: 10,
pageNum: 1,
category:'all'
},
totalNum: 0,
ticketList: [],
}
},
//
onReachBottom() {
const totalPage = Math.ceil(this.totalNum / this.pageSize);
if (this.pageNum < totalPage) {
this.pageNum += 1;
this.getTicketLists();
} else {
uni.showToast({
title: "已全部加载",
icon: 'none'
})
}
},
onShow() {
this.ticketList = [];
this.getTicketLists();
},
//
onPullDownRefresh() {
this.pageNum = 1;
this.ticketList = [];
this.getTicketLists();
},
methods: {
getTicketLists() {
let that = this;
that.$u.api.getTickets(that.params).then(res => {
that.ticketList = that.ticketList.concat(res.results);
this.totalNum = res.count;
})
},
ticketShow(val) {
let projectId = val.ticket_data.visit?val.ticket_data.visit:val.ticket_data.rpj?val.ticket_data.rpj:val.ticket_data.opl;//Id visit
let catetype = val.workflow_.key;
const params = `?ticketId=${val.id}&projectId=${projectId}&cateType=${catetype}&type='show'`;
uni.navigateTo({
url: '../detail/ticketHandle' + params,
})
},
//
ticketHandle(val) {
let that = this;
that.$u.api.ticketAccept(val.id).then(res => {
that.getTicketLists();
})
},
goBack() {
uni.navigateBack({
delta: 1
})
},
searchHandle() {
this.pageNum = 1;
this.ticketList = [];
this.getTicketLists()
},
resetSearch() {
this.pageNum = 1;
this.search = "";
this.ticketList = [];
this.getTicketLists();
},
}
}
</script>
<style scoped>
.empty-view {
height: 120rpx;
}
>>>.uni-navbar__header,
>>>.uni-status-bar {
background-image: linear-gradient(254deg,
#0ca7ee 0%,
#005aff 100%,
#2a8cff 100%,
#54bdff 100%),
linear-gradient(#e60012,
#e60012);
}
.my_duty {
background-color: #f3fbff;
}
.my_duty>>>.uni-navbar-btn-text text {
font-size: 32rpx !important;
}
.content {
padding: 14rpx;
}
.item-wrap {
margin-bottom: 14rpx;
}
.duty-item {
width: 720rpx;
background-color: #ffffff;
border-radius: 10rpx;
margin: 0 auto;
padding: 24rpx 21rpx;
box-sizing: border-box;
}
.info-title {
font-family: PingFang-SC-Medium;
font-size: 30rpx;
line-height: 72rpx;
color: #3d3d3d;
flex: 1;
}
.right-time {
font-size: 24rpx;
line-height: 72rpx;
color: #ababab;
}
.center-info {
padding-bottom: 30rpx;
border-bottom: 1rpx solid #eeeeee;
}
.info-details {
font-size: 28rpx;
line-height: 40rpx;
color: #5b5b5b;
}
.bottom-btns {
text-align: center;
font-family: PingFang-SC-Medium;
font-size: 28rpx;
line-height: 83rpx;
}
.shenhezhong {
color: #2c6fd9;
}
.shenhejieshu {
color: #15a306;
}
.shenhe-status image {
width: 26rpx;
height: 26rpx;
margin-right: 10rpx;
vertical-align: middle;
}
.my-top-search-nav {
position: fixed;
left: 0;
right: 0;
z-index: 999;
background-color: #f3fbff;
}
.search-wrap {
background-blend-mode: normal,normal;
padding-bottom: 20rpx;
padding-top: 20rpx;
}
.search-body {
width: 710upx;
height: 78rpx;
background-color: #ffffff;
border-radius: 39rpx;
padding: 13rpx;
padding-left: 25rpx;
box-sizing: border-box;
display: flex;
align-items: center;
}
.search-body .search-input {
height: 100%;
flex: 1;
padding-left: 12rpx;
box-sizing: border-box;
}
.left-img {
width: 26rpx;
height: 26rpx;
}
.right-img {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
.right-btn {
width: 110rpx;
height: 58rpx;
line-height: 58rpx;
background-image: linear-gradient(0deg,
#2da0f3 0%,
#54bcff 100%);
border-radius: 29rpx;
font-size: 28rpx;
color: #ffffff;
text-align: center;
}
</style>

View File

@ -4,38 +4,38 @@
leftIcon="left" border backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>
<view class="wrap-view">
<view class="item">
<view class="title">姓名</view>
<view class="item item_bottom_border">
<view class="title">姓名</view>
<view class="content">
<text>{{userInfo.name}}</text>
<!-- <input type="text" v-model="principal.mobile" maxlength="20" placeholder="请输入" /> -->
</view>
</view>
<view class="item">
<view class="item item_bottom_border">
<view class="title">编号</view>
<view class="content">
<text>{{userInfo.number}}</text>
</view>
</view>
<view class="item">
<view class="item item_bottom_border">
<view class="title">身份证号</view>
<view class="content">
<text>{{userInfo.id_number}}</text>
</view>
</view>
<view class="item">
<view class="item item_bottom_border">
<view class="title">学历</view>
<view class="content">
<text>{{userInfo.qualification}}</text>
</view>
</view>
<view class="item">
<view class="title">性别</view>
<view class="item item_bottom_border">
<view class="title">性别</view>
<view class="content">
<text>{{userInfo.gender}}</text>
</view>
</view>
<view class="item">
</view>
<view class="item item_bottom_border">
<view class="title">岗位</view>
<view class="content">
<text>{{userInfo.post_name}}</text>
@ -48,15 +48,18 @@
</view>
</view>
</view>
<view class="wrap-view">
<view class="wrap-view" style="box-shadow: 0 0 15px 5px #eeeeee;padding-bottom: 20upx;">
<view class="item">
<view class="title">信息修改</view>
<view class="content"></view>
</view>
<view class="item item_bottom_border">
<view class="title">手机号</view>
<view class="content">
<input type="text" v-model="userInfo.phone" maxlength="20" placeholder="请输入" />
</view>
</view>
<view class="item">
<view class="item item_bottom_border">
<view class="title">邮箱</view>
<view class="content">
<input type="text" v-model="userInfo.email" maxlength="20" placeholder="请输入" />
@ -65,8 +68,8 @@
<view class="item" style="height: fit-content;">
<view class="title">证件照</view>
<view style="flex: 3;">
<uni-file-picker v-model="userInfo.mobile" file-mediatype="image" mode="grid"
file-extname="png,jpg" :limit="5" ref="files" :auto-upload="false" @select="select" />
<uni-file-picker v-model="userInfo.mobile" file-mediatype="image" mode="grid" file-extname="png,jpg"
:limit="5" ref="files" :auto-upload="false" @select="select" />
</view>
</view>
</view>
@ -142,12 +145,15 @@
}
.item {
border-bottom: 1rpx solid #eeeeee;
margin: 0rpx 32rpx;
display: flex;
margin-top: 20rpx;
}
.item_bottom_border{
border-bottom: 1rpx solid #eeeeee;
}
.title {
color: #212121;
flex: 1;