<template>
    <view class="content">
        <statusNav navBarTitle="处理工单" returnColor="#c2c2c2"></statusNav>
        <container-subgroup-two>
            <view slot="content" style="margin: -20rpx -25rpx 0rpx;">
                <view class="work-order-schedule">
                    <view class="li">
                        <view class="icon  icon-after">1</view>
                        <view class="text">签到执行</view>
                    </view>
                    <view class="li">
                        <view class="icon on icon-after">2</view>
                        <view class="text">填写维保单</view>
                    </view>
                    <view class="li">
                        <view class="icon">3</view>
                        <view class="text">结算审核</view>
                    </view>
                </view>
                <view class="work-order-from">
                    <view class="li disac">
                        <view class="title">工单编号：</view>
                        <input type="text" class="input" disabled :value="targetObj.workOrderNo" />
                    </view>
                    <view class="li disac">
                        <view class="title">项目编号：</view>
                        <input type="text" class="input" disabled :value="targetObj.projectNo" />
                    </view>
                    <view class="li disac">
                        <view class="title">项目名称：</view>
                        <input type="text" class="input input-black" disabled :value="targetObj.projectName" />
                    </view>
                    <view class="li disac">
                        <view class="title">产品类型：</view>
                        <input type="text" class="input input-black" disabled :value="targetObj.productType" />
                    </view>
                    <view class="li disac">
                        <view class="title">安装位置：</view>
                        <input type="text" class="input input-black" disabled :value="targetObj.installLocation" />
                    </view>
                    <view class="li disac">
                        <view class="title">维保类型：</view>
                        <input type="text" class="input input-black" disabled :value="targetObj.faultType" />
                    </view>
                    <view class="li disac">
                        <view class="title">服务方式：</view>
                        <input type="text" class="input input-black" disabled :value="targetObj.serviceMode" />
                    </view>
                    <view class="li">
                        <view class="title">维保说明：</view>
                        <textarea auto-height disabled class="input input-black" :value="targetObj.faultExplain" />
                    </view>
                    <view class="li">
                        <view class="title">故障图片：</view>
                        <view class="input add-display">
                            <view class="">
                                <image class="img" v-for="(item,index) in targetObj.faultImgList" :src="item" mode="aspectFill" lazy-load></image>
                            </view>
                            <!-- <view class="add-img">
                                <image class="icon" src="../../static/iocn/jia.png" mode="" lazy-load></image>
                            </view> -->
                        </view>
                    </view>
                    <view class="li disac">
                        <view class="title">开始时间：</view>
                        <input type="text" disabled class="input" :value="targetObj.startTime" />
                    </view>
                    <view class="li disac">
                        <view class="title">结束时间：</view>
						<input type="text" @tap="openDatetimePicker" disabled class="input input-black" :value="targetObj.endTime" placeholder="请选择结束时间" />
						<yy-mm-dd-hh-ss ref="myPicker" @submit="handleSubmit" :start-year="2022" :end-year="2122"></yy-mm-dd-hh-ss>
                    </view>
                    <view class="li disac">
                        <view class="title">维保用时：</view>
                        <input type="text" disabled class="input" :value="targetObj.maintenanceTime" placeholder="请选择结束时间,进行结算" />
                    </view>
                    <view class="li disac">
                        <view class="title">维保费用：</view>
                        <input type="text" disabled class="input input-black" placeholder="" v-model="maintenanceFee" />
                    </view>
                    <view class="li disac">
                        <view class="title">等待时长：</view>
                        <input type="text" disabled class="input" :value="targetObj.waitingTime" placeholder="请选择结束时间,进行结算" />
                    </view>
                    <view class="li disac">
                        <view class="title">主维保人：</view>
                        <input type="text" disabled class="input input-black" :value="targetObj.maintainer" />
                    </view>
                    <!-- <view class="li">
                        <view class="title">更换配件：</view>
                        <view class="rideo" style="margin-left: 14rpx;">
                            <view class="isrideo" @click="isrideoFun(true)">
                                <view class="icon " :class="isrideo?'on':''">
                                    <view class="icon-content"></view>
                                </view>
                                <view class="">是</view>
                            </view>
                            <view class="isrideo" @click="isrideoFun(false)">
                                <view class="icon" :class="isrideo?'':'on'">
                                    <view class="icon-content"></view>
                                </view>
                                <view class="">否</view>
                            </view>
                        </view>
                    </view> -->
                </view>
                <view class="work-order-from">
                    <view class="li">
                        <view class="title">工作描述：</view>
                        <textarea maxlength="-1" v-model="targetObj.workDescribe" class="input input-black line-h36" placeholder="请填写工作描述" style="height: 110rpx;" />
                    </view>
                    <view class="li">
                        <view class="title">维保图片：</view>
                        <view class="input add-display">
                            <view class="posir" v-if="targetObj.maintenanceImgList.length!=0" v-for="(item,index) in targetObj.maintenanceImgList" :key="index">
								<image class="img" :src="item" mode="aspectFill" lazy-load></image>
								<i @tap="delImg(index)" class="icon icon-del-white posia" style="font-size: 24rpx;top: 10rpx;right: 20rpx;"></i>
                            </view>
                            <view class="add-img" @tap="chooseImg">
                                <image class="icon" src="../../static/iocn/jia.png" mode=""></image>
                            </view>
                        </view>
                    </view>
                    <view class="li">
                        <view class="title">维保原因：</view>
                        <textarea maxlength="-1" v-model="targetObj.faultReason" class="input input-black line-h36" placeholder="请填写维保原因" style="height: 110rpx;" />
                    </view>
                    <view class="li disac">
                        <view class="title">维保人员：</view>
                        <input type="text" v-model="targetObj.maintenancePersonnel" class="input input-black" placeholder="请填写维保人员" />
                    </view>
                </view>
                <view class="cost-breakdown">
                    <view class="cost-breakdown-title">
                        <view class="title">费用明细</view>
                        <view @click="addMountingsList()" class="btn">添加配件</view>
                    </view>
                </view>
                <view class="cost-breakdown-content">
                    <view class="title">
                        <view class="li">序号</view>
                        <view class="li">配件名称</view>
                        <view class="li">数量</view>
                        <view class="li">价格</view>
                    </view>
                    <view class="text" v-for="(item,index) in accessoriesData">
                        <view class="li">{{item.id}}</view>
                        <view class="li">{{item.name}}</view>
                        <view class="li">{{item.num}}</view>
                        <view class="li">{{item.sum}}元</view>
                    </view>
                </view>
                <button class="submit-button" @click="goWorkorderTwo" type="default">下一步</button>
            </view>
        </container-subgroup-two>
    </view>
</template>

<script>
    import statusNav from '../../components/status-nav.vue';
    import footTabOne from "../../components/foot-tabs/foot-tab-one.vue"
    import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
	import yyMmDdHhSs from '@/components/dates/yy-mm-dd-hh-ss.vue';
	import {handleWorkOrderGet,handleWorkOrderSubmit,uploadImg} from '../../jsFile/public-api.js';
    export default {
        components: {
            footTabOne,
            statusNav,
            containerSubgroupTwo,
			yyMmDdHhSs
        },
        data() {
            return {
                // isrideo: true,
                accessoriesData: [],
				targetObj:'',
				temporaryImg:[]//暂存图片id
            }
        },
		computed:{
			maintenanceFee(){
				let totalPrice = '0.00';
				if(this.accessoriesData.length) {
					this.accessoriesData.forEach(item=>{
						totalPrice = this.$toolAll.tools.operationEv(totalPrice*1, item.sum*1, "+", 2);
					})
				}
				return `￥${totalPrice}元`;
			}
		},
		onShow() {
			// uni.removeStorageSync('partsList')
			this.accessoriesData = uni.getStorageSync('partsList');
		},
		onLoad(op) {
			this.targetObj = uni.getStorageSync('targetObj');
			if(op.id!=undefined) {
				this.orderId = op.id;
				// 调用查询填写维保单信息
				this.handleWorkOrderGet(this.orderId);
			}
		},
        methods: {
			// 查询填写维保单信息
			handleWorkOrderGet(id){
				let params = {
					order_id:this.orderId,
					steps:2
				}
				handleWorkOrderGet(params).then(res=>{
					if(res.code) {
						let dataObj = res.data;
						this.targetObj.startTime = dataObj.start_times;
					}
				})
			},
			// 维保图片选择
			chooseImg(){
				uni.chooseImage({
					count:9,
					sourceType:['album','camera'],
					success: (res) => {
						let imgsrc = res.tempFilePaths;
						imgsrc.forEach(item=>{
							uploadImg({path:item}).then(res=>{
								if(res.code) {
									this.temporaryImg.push(res.data.id);
									this.targetObj.maintenanceImgList.push(item);
								} else {
									this.$toolAll.tools.showToast(res.msg);
								}
							})
						})
					},fail:(err)=> {
						this.$toolAll.tools.checkQx(err.code);
                    }
				})
			},
			// 删除维保图片
			delImg(index) {
				this.targetObj.maintenanceImgList.splice(index,1);
				this.temporaryImg.splice(index,1);
			},
			// 更换配件切换事件
            //isrideoFun(is) {
            //    this.isrideo = is;
			//	this.targetObj.ifParts = this.isrideo;
            //},
            goWorkorderTwo(){
				if(this.checkEmpty()) {
					let accessoryArr = [];
					if(this.accessoriesData.length) {
						this.accessoriesData.forEach(item=>{
							let obj = {
								id:item.id,
								quantity:item.num
							}
							accessoryArr.push(obj);
						})
					}
					let params = {
						order_id:this.orderId,
						steps:2,
						completion_time:this.targetObj.endTime,//结束时间
						work_explanation:this.targetObj.workDescribe,//工作描述
						failure_reason:this.targetObj.faultReason,//维保原因
						maintenance_pictures:this.temporaryImg.join(','),//维保图片
						maintenance_more:this.targetObj.maintenancePersonnel,//维保人员
						accessory:accessoryArr,//配件列表
						completion_address:'完工地址'
					}
					handleWorkOrderSubmit(params).then(res=>{
						if(res.code) {
							uni.navigateTo({
								url: `/pagesA/workOrder/workOrderThree?id=${this.orderId}`
							}) 
						}
					})
				}
				
            },
			// 判空事件
			checkEmpty(){
				let result = false;
				if(!this.targetObj.endTime) {
					this.$toolAll.tools.showToast('请选择结束时间');
				} else if(!this.targetObj.workDescribe) {
					this.$toolAll.tools.showToast('请填写工作描述');
				} else if(this.targetObj.maintenanceImgList.length==0) {
					this.$toolAll.tools.showToast('请上传维保图片');
				} else if(!this.targetObj.faultReason) {
					this.$toolAll.tools.showToast('请填写维保原因');
				} else if(!this.targetObj.maintenancePersonnel) {
					this.$toolAll.tools.showToast('请填写维保人员');
				} else {
					result = true;
				}
				return result;
			},
            addMountingsList() {
                uni.navigateTo({
                    url: "/pagesA/mountingsList/mountingsList"
                })

            },
			// 打开picker
			openDatetimePicker() {
			  this.$refs.myPicker.show();
			},
			// 关闭picker
			closeDatetimePicker() {
				this.$refs.myPicker.hide();
			},
			handleSubmit(e) {
				// {year: "2019", month: "07", day: "17", hour: "15", minute: "21"}
                
				this.targetObj.endTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}`;
				this.targetObj.maintenanceTime = this.$toolAll.tools.returnTimeFormat(this.targetObj.startTime,this.targetObj.endTime);
				this.targetObj.waitingTime = this.$toolAll.tools.returnTimeFormat(this.targetObj.declarationTime,this.targetObj.endTime);
			},
        }
    }
</script>

<style>
    .submit-button {
        width: 686rpx;
        border-radius: 50rpx;
        height: 90rpx;
        background-color: #02A2ea;
        line-height: 90rpx;
        color: #FFFFFF;
        margin-top: 60rpx;
        text-align: center;
        font-size: 30rpx;
    }

    .work-order-schedule {
        display: flex;
        padding: 22rpx 29rpx;
        margin-top: 10rpx;
        background-color: #FFFFFF;
        justify-content: space-between;
    }

    .work-order-schedule .icon {
        width: 38rpx;
        height: 38rpx;
        color: #FFFFFF;
        margin: auto;
        position: relative;
        font-size: 24rpx;
        margin-bottom: 10rpx;
        text-align: center;
        line-height: 38rpx;
        background-color: #999999;
        border-radius: 50%;

    }

    .work-order-schedule .on {
        background-color: #5391F3
    }

    .work-order-schedule .text {
        font-size: 24rpx;
        color: #333333;
    }

    .work-order-schedule .icon-after::after {
        content: "";
        width: 265rpx;
        height: 2rpx;
        background-color: #999999;
        position: absolute;
        top: 19rpx;
        left: 38rpx;
    }

    .work-order-from {
        margin-top: 10rpx;
        background-color: #FFFFFF;
    }

    .work-order-from .li {
        display: flex;
        padding: 20rpx 40rpx;
        border-bottom: 2rpx solid #ececec;
    }

    .work-order-from .li .title {
        font-size: 26rpx;
        /* width: 133rpx; */
    }

    .work-order-from .li .input {
        font-size: 24rpx;
        color: #8b8b8b;
        flex: 1;
        padding-left: 15rpx;
    }

    .work-order-from .li .input .img {
        /* width: 169rpx; */
        width: 160rpx;
        height: 127rpx;
        margin-right: 10rpx;
    }

    .work-order-from .li .input .add-img {
        /* width: 136rpx; */
        width: 160rpx;
        height: 127rpx;
        display: flex;
        justify-content: center;
        background-color: #DCDCDC;
        align-items: center;
    }

    .work-order-from .li .input .add-img .icon {
        width: 64rpx;
        height: 64rpx;
    }

    .work-order-from .li .add-display {
        display: flex;
		flex-wrap: wrap;
    }

    .work-order-from .li .input-black {
        color: #292929;
    }

    .cost-breakdown-title {
        padding: 0rpx 40rpx;
        display: flex;
        justify-content: space-between;
        margin-top: 40rpx;
    }

    .cost-breakdown-title .title {
        font-size: 30rpx;
        color: #222222;
        display: flex;
        margin-bottom: 28rpx;

        align-items: center;
    }

    .cost-breakdown-title .title::before {
        content: "";
        display: block;
        width: 4rpx;
        height: 30rpx;
        margin-right: 22rpx;

        background-color: #00a2e9;
    }

    .cost-breakdown-title .btn {
        color: #00a2e9;
        text-align: center;
        width: 118rpx;
        height: 50rpx;
        border-radius: 14rpx;
        line-height: 50rpx;
        text-align: center;
        font-size: 26rpx;
        border: 2rpx solid #00a2e9;

    }

    .cost-breakdown-content {
        padding: 0rpx 40rpx;
    }

    .cost-breakdown-content .title {
        display: flex;
        margin-bottom: 40rpx;
        justify-content: space-between;
    }

    .cost-breakdown-content .title .li {
        font-size: 28rpx;
        font-weight: bold;
        color: #222222;

        text-align: center;
    }

    .cost-breakdown-content .text {
        display: flex;
        margin-bottom: 40rpx;
        justify-content: space-between;
    }

    .cost-breakdown-content .text .li {
        color: #4c4c4c;
        font-size: 28rpx;
        text-align: center;
    }

    .cost-breakdown-content .text .li:nth-child(1) {
        width: 80rpx;
    }

    .cost-breakdown-content .text .li:nth-child(2) {
        flex: 1;
    }

    .cost-breakdown-content .text .li:nth-child(3) {
        width: 80rpx;
    }

    .cost-breakdown-content .text .li:nth-child(4) {
        width: 120rpx;
    }

    .cost-breakdown-content .title .li:nth-child(1) {
        width: 80rpx;
    }

    .cost-breakdown-content .title .li:nth-child(2) {
        flex: 1;
    }

    .cost-breakdown-content .title .li:nth-child(3) {
        width: 80rpx;
    }

    .cost-breakdown-content .title .li:nth-child(4) {
        width: 120rpx;
    }

    .work-order-from .rideo {
        display: flex;
    }

    .work-order-from .isrideo {
        display: flex;
        align-items: center;
        margin-right: 41rpx;
    }

    .work-order-from .isrideo .icon {
        width: 26rpx;
        border: 2rpx solid #818181;
        border-radius: 50%;
        height: 26rpx;
        margin-right: 10rpx;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .work-order-from .isrideo .icon .icon-content {
        width: 19rpx;
        height: 19rpx;
        background-color: #818181;
        border-radius: 50%;
    }

    .work-order-from .isrideo .on {
        border: 2rpx solid #D81E06;
    }

    .work-order-from .isrideo .on .icon-content {
        background-color: #D81E06
    }
</style>
