cuiqian2004
4 天以前 2af5f043b60c1f7ac38ecccc8f5bf44743134325
pages/task/update.vue
@@ -1,64 +1,67 @@
<template>
   <view class="pages-task-update">
      <uni-nav-bar :fixed="true" status-bar right-text="" left-text="" leftWidth="72rpx" rightWidth="72rpx"
         :title="navigationBarTitle">
      <uni-nav-bar :fixed="true" status-bar :title="navigationBarTitle" @clickLeft="clickCancel"
         @clickRight="clickSave">
         <view class="uni-navbar-container-inner">
            <text class="uni-nav-bar-text">{{navigationBarTitle }}</text>
         </view>
         <template v-slot:right>
            <view class="uni-navbar-btn-text" @click="clickSave">
            <view class="uni-navbar-btn-text">
               <a class="uni-nav-bar-right-text">
                  保存
                  {{translate('save')}}
               </a>
            </view>
         </template>
         <template v-slot:left>
            <view class="uni-navbar-btn-text">
               <a @click="clickCancel" class="uni-nav-bar-left-text">
                  取消
               <a class="uni-nav-bar-left-text">
                  {{translate('cancel')}}
               </a>
            </view>
         </template>
      </uni-nav-bar>
      <view class="content">
         <view class="header">任务属性</view>
         <view class="header">{{translate("task_properties")}}</view>
         <view class="group">
            <view class="item">
               <view>名称:</view>
               <input class="right-input" placeholder="输入任务名称" v-model="form.taskGroupName" />
               <view>{{translate("name")}}</view>
               <input class="right-input" :placeholder="translate('input_task_name')"
                  v-model="form.taskGroupName" />
            </view>
            <view class="item">
               <view>属性:</view>
               <view class="right" v-if="form.tasktype > 0">{{form.tasktype ==1 ? '固定':'临时'}}</view>
               <view class="right" v-else>选择属性</view>
               <view>{{translate("properties")}}</view>
               <view class="right" v-if="form.tasktype > 0">
                  {{form.tasktype ==1 ? translate("fixed"):translate("temporary")}}
               </view>
               <view class="right" v-else>{{translate("select_properties")}}</view>
               <a @click="clickType">
                  <uni-icons class="icon" type="right" size="20"></uni-icons>
               </a>
            </view>
            <view class="item" v-if="form.tasktype == 1">
               <view>重复次数:</view>
               <view>{{translate("number_repetitions")}}</view>
               <input class="right-input" type="number" :value="form.cycleTime" :maxlength="4"
                  @input="onInputCycleTime" />
            </view>
            <view class="item">
               <view>按钮号:</view>
               <view class="right">{{form.taskButton ?form.taskButton:""}}</view>
               <view>{{translate("button_number")}}</view>
               <view class="right">{{form.taskButton ?form.taskButton:translate("select_button_number")}}</view>
               <a @click="clickTaskButton">
                  <uni-icons class="icon" type="right" size="20"></uni-icons>
               </a>
            </view>
         </view>
         <view class="header">任务路线</view>
         <view class="header">{{translate("task_route")}}</view>
         <view class="group">
            <view class="list">
               <view class="list-item" v-for="(item,index) in pathwayList" :key="index" :auto-close="true">
                  <view class="item">
                     <view>目标点{{index+1}}:</view>
                     <view>{{translate("target_point") + " "}}{{index+1}}:</view>
                     <view class="right"></view>
                     <a @click.stop="(e)=>{ this.clickPathwayPoint(e,index,'stationID')}">
                        {{item.dest?.stationID ?item.dest?.name : "目标点"}}
                        {{item.dest?.stationID ?item.dest?.name : translate("target_point")}}
                     </a>
                     <a @click.stop="(e)=>{ clickPathwayPoint(e,index,'actionType')}">
@@ -66,12 +69,12 @@
                     </a>
                     <template class="time" v-if="item.actionType === 3">
                        <a @click.stop="()=>{item.wait = 0}" v-if="item.wait===undefined">
                           等待时间
                           {{translate("wait_time")}}
                        </a>
                        <input v-else class="input" type="number" v-model="item.wait" :maxlength="4" />
                     </template>
                     <span v-if="item.actionType === 3 && item.wait!==undefined">
                        秒
                        {{translate("second")}}
                     </span>
                  </view>
               </view>
@@ -123,7 +126,7 @@
         return {
            indicatorStyle: `height: 75rpx;`,
            ip: '',
            navigationBarTitle: '更新任务',
            navigationBarTitle: this.translate("update_task"),
            info: {
            },
@@ -132,7 +135,7 @@
               taskGroupName: "",
               cycleTime: 1,
               taskButton: 0,
               tasktype: 0,
               tasktype: 1,
               taskList: []
            },
            pathwayList: [],
@@ -146,18 +149,22 @@
            windowSize: {},
            isEditContent: false,
            actionList: [{
               name: "导航",
               type: 1,
            }, {
               name: "取货",
               type: 2,
            }, {
               name: "卸货",
               type: 3,
            }, {
               name: "人工",
               type: 4,
            }]
                  name: this.translate("navigation"),
                  type: 1,
               },
               // {
               //    name: "取货",
               //    type: 2,
               // },
               {
                  name: this.translate("auto_unload"),
                  type: 3,
               },
               // {
               //    name: "人工",
               //    type: 4,
               // },
            ],
         }
      },
      computed: {
@@ -167,7 +174,7 @@
      onLoad(option) {
         const _this = this
         this.navigationBarTitle = option.title || "更新任务"
         this.navigationBarTitle = option.title || this.translate("update_task")
         this.ip = option.ip || ""
         if (option.task) {
            const info = JSON.parse(option.task)
@@ -186,7 +193,7 @@
               this.pathwayList.push({
                  actionType: item.actionType,
                  dest: item.dest || {},
                  wait:  parseInt(item.wait) || 0,
                  wait: parseInt(item.wait) || 0,
                  taskID: item.taskID,
                  taskStartTimeStamp: item.taskStartTimeStamp,
               })
@@ -232,22 +239,22 @@
               const info = await stations(this.ip)
               this.stationList = info.station_list || []
            } catch (ex) {
               showError(ex)
               showError(ex, this.translate('error'))
            }
         },
         async clickSave() {
            try {
               const name = this.form.taskGroupName.trim()
               if (!name) {
                  showToast("未输入任务名称!")
                  showToast(this.translate("input_task_name"))
                  return
               }
               if (!this.form.tasktype) {
                  showToast("未选择任务属性!")
                  showToast(this.translate("select_task_properties"))
                  return
               }
               uni.showLoading({
                  title: "任务更新中"
                  title: this.translate("updating_task")
               })
               const task = {
                  taskGroupID: this.form.taskGroupID,
@@ -263,7 +270,7 @@
                  const item2 = this.info.taskList[i]
                  const item = this.pathwayList[i]
                  let flag = false
                  if (item?.actionType != item2.actionType) {
                     flag = true
                  } else if (item?.dest?.stationID != item2.dest?.stationID) {
@@ -305,7 +312,7 @@
                  delta: 1, //返回层数,2则上上页
               })
            } catch (ex) {
               showError(ex)
               showError(ex, this.translate('error'))
            } finally {
               uni.hideLoading()
            }
@@ -343,7 +350,13 @@
            if (flag) {
               showModal(`当前编辑的内容将不会被保存`, "确定要退出编辑吗?", true, "确定", "取消").then((res) => {
               showModal({
                  title: this.translate(
                     "ask_exit_task_edit"),
                  content: `${this.translate('current_edited_content_will_be_deleted')}`,
                  confirmText: this.translate('ok'),
                  cancelText: this.translate('cancel'),
               }).then((res) => {
                  if (res) {
                     uni.navigateBack({
                        delta: 1, //返回层数,2则上上页
@@ -396,10 +409,10 @@
               if (curIndex > -1) {
                  return this.actionList[curIndex].name
               } else {
                  return "操作"
                  return this.translate("task_action")
               }
            } else {
               return "操作"
               return this.translate("task_action")
            }
         },
@@ -471,10 +484,12 @@
            this.pickerView = {
               type: "type",
               list: [{
                  name: "固定"
               }, {
                  name: "临时"
               }],
                     name: this.translate("fixed")
                  },
                  // {
                  //    name: this.translate("temporary")
                  // },
               ],
               value: [this.form.tasktype - 1],
               top: e.target.offsetTop + 30,
               right: 0,
@@ -507,7 +522,7 @@
            try {
               if (this.pathwayList.length == 1) {
                  showToast("必须有一个目标点")
                  showToast(this.translate("at_least_one_target_point_added"))
                  return
               }
               if (item.taskID) {
@@ -528,7 +543,7 @@
               })
            } catch (ex) {
               showError(ex)
               showError(ex, this.translate('error'))
            }
         },
@@ -559,7 +574,10 @@
         closeMenu() {
            this.$refs.refPopupMenu.close()
         },
         translate(t) {
            if (typeof this.$t == "function") return this.$t(`page.${t}`)
            else return t;
         },
      }
   }
@@ -609,6 +627,7 @@
               padding-right: 5px;
            }
            .right-input {
               text-align: right;
               flex: 1;
@@ -628,11 +647,11 @@
               margin-left: 20rpx;
            }
               .input {
                           margin-left: 20rpx;
                           width: 75rpx;
                           margin-right: 10rpx;
                        }
            .input {
               margin-left: 20rpx;
               width: 75rpx;
               margin-right: 10rpx;
            }
         }
         .btn-del {