233 lines
6.5 KiB
Vue
233 lines
6.5 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<view class="myContainer redMi acceptTitle">验收评价</view>
|
|||
|
<view class="myContainer myContentBox">
|
|||
|
<view class="star_content">
|
|||
|
<view class="star_name">完成效率</view>
|
|||
|
<view class="star">
|
|||
|
<uni-rate :value="value1" active-color="#3382FF" color="#C1C1C1" @change="changeValue1"></uni-rate>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="star_content">
|
|||
|
<view class="star_name">完成质量</view>
|
|||
|
<view class="star">
|
|||
|
<uni-rate :value="value2" active-color="#3382FF" color="#C1C1C1" @change="changeValue2"></uni-rate>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="star_content">
|
|||
|
<view class="star_name">工作态度</view>
|
|||
|
<view class="star">
|
|||
|
<uni-rate :value="value3" active-color="#3382FF" color="#C1C1C1" @change="changeValue3" ></uni-rate>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="myContainer redMi acceptTitle">验收意见</view>
|
|||
|
<view class="myContainer myContentBox">
|
|||
|
<textarea placeholder="请输入验收意见" class="mytextarea" v-model="content"></textarea>
|
|||
|
</view>
|
|||
|
<view class="myContainer myContentBox">
|
|||
|
<view class="myItemBox">
|
|||
|
<view class="myItemBox_name">验收结果</view>
|
|||
|
<view class="myItemBox_value" @click="showSinglePicker" :value="result.level_label">{{result.level_label}}</view>
|
|||
|
<uni-icons type="arrowright" class="myarrowright"></uni-icons>
|
|||
|
</view>
|
|||
|
<view class="myItemBox" @click="onShowDatePicker()">
|
|||
|
<view class="myItemBox_name">验收时间</view>
|
|||
|
<view >
|
|||
|
<view class="myItemBox_value">{{timevalue!=''?timevalue:"请选择时间"}}</view>
|
|||
|
<img src="../../static/img/dateIcon.png" class="riliIcon" />
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="fixMargin"></view>
|
|||
|
<view class="fixBottom">
|
|||
|
<button type="primary" style="width: 100%;" @click="submit">确认验收</button>
|
|||
|
</view>
|
|||
|
<mx-datepicker type="datetime" :value="timevalue" :show="showPicker" @confirm="onSelected" @cancel="onSelected"></mx-datepicker>
|
|||
|
<mpvue-picker themeColor="#007AFF" ref="mpvuePicker" mode="selector" :deepLength="deepLength"
|
|||
|
@onConfirm="pickerConfirm" :pickerValueArray="resultArray"></mpvue-picker>
|
|||
|
<view class="goHome" @click='goMain()'>
|
|||
|
<img src="../../static/img/gohome.png">
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import uniRate from "@/components/uni-rate/uni-rate.vue";
|
|||
|
import mpvuePicker from '@/components/mpvue-picker/mpvuePicker.vue';
|
|||
|
import uniIcons from "@/components/uni-icons/uni-icons.vue"
|
|||
|
import mxDatepicker from '@/components/mx-datepicker/mx-datepicker.vue'
|
|||
|
export default {
|
|||
|
components: {uniRate,uniIcons,mxDatepicker,mpvuePicker},
|
|||
|
data(){
|
|||
|
return{
|
|||
|
id:'',
|
|||
|
showPicker: false,
|
|||
|
timevalue: '',
|
|||
|
value1:0,
|
|||
|
value2:0,
|
|||
|
value3:0,
|
|||
|
content:'',
|
|||
|
deepLength:1,
|
|||
|
resultArray:[],
|
|||
|
result:{
|
|||
|
level_value:'',
|
|||
|
level_label:''
|
|||
|
},
|
|||
|
pickerValueDefault:[0]
|
|||
|
}
|
|||
|
},
|
|||
|
onLoad(option) {
|
|||
|
var _this = this;
|
|||
|
let d = new Date();
|
|||
|
this.id = option.id;
|
|||
|
if (this.id == undefined) {
|
|||
|
uni.reLaunch({
|
|||
|
url: 'eqRepair'
|
|||
|
});
|
|||
|
return false;
|
|||
|
}
|
|||
|
this.timevalue=d.getFullYear()+'-'+this.formatDate(d.getMonth()+1)+"-"+this.formatDate(d.getDate())+' '+this.formatDate(d.getHours())+":"+this.formatDate(d.getMinutes())
|
|||
|
|
|||
|
//初始化获取 任务等级数据字典。
|
|||
|
this.$http.request({
|
|||
|
url: '/apis/dict/getDictsByType',
|
|||
|
params: {
|
|||
|
type: 'acceptance_result'
|
|||
|
},
|
|||
|
}).then(res=>{
|
|||
|
if(res.statusCode == '200'){
|
|||
|
var useType = res.data.datas;
|
|||
|
for (let i = 0; i < useType.length; i++) {
|
|||
|
var myVal=
|
|||
|
{
|
|||
|
'label': useType[i].name,
|
|||
|
'value': useType[i].id
|
|||
|
}
|
|||
|
_this.resultArray.push(myVal);
|
|||
|
}
|
|||
|
if(!_this.result.level_value){
|
|||
|
_this.result.level_value = useType[0].id;
|
|||
|
_this.result.level_label = useType[0].name;
|
|||
|
}
|
|||
|
}
|
|||
|
}).catch(err=>{
|
|||
|
console.log(err);
|
|||
|
});
|
|||
|
},
|
|||
|
methods:{
|
|||
|
formatDate(v){
|
|||
|
v=v.toString();
|
|||
|
if(v.length<2){
|
|||
|
return '0'+v;
|
|||
|
}else{
|
|||
|
return v;
|
|||
|
}
|
|||
|
},
|
|||
|
changeValue1(v){
|
|||
|
this.value1=v.value;
|
|||
|
},
|
|||
|
changeValue2(v){
|
|||
|
this.value2=v.value;
|
|||
|
},
|
|||
|
changeValue3(v){
|
|||
|
this.value3=v.value;
|
|||
|
},
|
|||
|
pickerConfirm(e){
|
|||
|
this.result.level_label = e.label;
|
|||
|
this.result.level_value = e.value[0];
|
|||
|
},
|
|||
|
showSinglePicker() {
|
|||
|
this.pickerValueDefault = [0];
|
|||
|
this.$refs.mpvuePicker.show();
|
|||
|
},
|
|||
|
bindPickerChange: function(e) {
|
|||
|
this.index = e.target.value
|
|||
|
},
|
|||
|
onShowDatePicker() { //显示
|
|||
|
this.showPicker = true;
|
|||
|
},
|
|||
|
onSelected(e) { //选择
|
|||
|
this.showPicker = false;
|
|||
|
if (e) {
|
|||
|
this.timevalue = e.value;
|
|||
|
//选择的值
|
|||
|
// console.log('value => ' + e.value);
|
|||
|
//原始的Date对象
|
|||
|
// console.log('date => ' + e.date);
|
|||
|
}
|
|||
|
},
|
|||
|
submit(){
|
|||
|
|
|||
|
if(this.value1==0||this.value2==0||this.value3==0){
|
|||
|
uni.showToast({
|
|||
|
title: '请填写验收评价',
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
});
|
|||
|
return false;
|
|||
|
}
|
|||
|
if(this.content.trim()==''){
|
|||
|
uni.showToast({
|
|||
|
title: '请填写验收意见',
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
});
|
|||
|
return false;
|
|||
|
}
|
|||
|
var json_ = {
|
|||
|
eventId: this.id,
|
|||
|
result: this.result.level_value,
|
|||
|
content:this.content,
|
|||
|
// checkTime:this.timevalue, //pc端暂时没有用到。所以这里先注释掉。界面暂时不变。
|
|||
|
xlGrade:this.value1,
|
|||
|
qaGrade:this.value2,
|
|||
|
tdGrade:this.value3
|
|||
|
}
|
|||
|
|
|||
|
var _this = this;
|
|||
|
this.$http.request({
|
|||
|
url: '/apis/repairCheck/completeCheck',
|
|||
|
params: json_,
|
|||
|
}).then(res => {
|
|||
|
if (res.data.code == 0) {
|
|||
|
uni.showToast({
|
|||
|
title: '提交成功',
|
|||
|
icon: 'none',
|
|||
|
duration: 1000
|
|||
|
});
|
|||
|
setTimeout(function(){
|
|||
|
//这里如何确定是2?在评价之前,如果我查看详情,所以这里就不能是2。因此,暂时跳转页面处理。
|
|||
|
// _this.$eventHub.$emit('changestate',{id:_this.id,state:"已验收"});
|
|||
|
// uni.navigateBack({
|
|||
|
// delta: 2
|
|||
|
// });
|
|||
|
uni.navigateTo({
|
|||
|
url: "repairDetail?id="+_this.id
|
|||
|
});
|
|||
|
},1000)
|
|||
|
|
|||
|
}else{
|
|||
|
uni.showToast({
|
|||
|
title: '提交失败,请稍后重试',
|
|||
|
icon: 'none',
|
|||
|
duration: 2000
|
|||
|
});
|
|||
|
}
|
|||
|
}).catch(err => {});
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
|
|||
|
.mytextarea{
|
|||
|
width: 100%;
|
|||
|
height: 280upx;
|
|||
|
padding: 20upx;
|
|||
|
box-sizing: border-box;
|
|||
|
font-size: 28upx;
|
|||
|
}
|
|||
|
</style>
|