Jelajahi Sumber

修改被拒列表广告语方式

zhuxinbo 5 tahun lalu
induk
melakukan
c61b53fa5e

+ 10 - 0
src/api/appium.js

@@ -17,3 +17,13 @@ export function appiumTaskItemList(parameter) {
       data: parameter
     })
 }
+
+// http://127.0.0.1:8080/jeecg-boot/appium/appiumTask/run?taskId=1&deviceId=2
+// 群控管理,任务列表,开始任务
+export function appiumTaskRun(parameter) {
+    return axios({
+      url: "/appium/appiumTask/run",
+      method: 'get',
+      params: parameter
+    })
+}

+ 2 - 1
src/mixins/JeecgListMixin.js

@@ -74,7 +74,7 @@ export const JeecgListMixin = {
                             }
                         })
                         console.log(record.innerData)
-                        this.$forceUpdate();
+                        record.innerData = transformTozTreeFormat( record.innerData)
                     }
                     if (res.code === 510) {
                       this.$message.warning(res.message)
@@ -87,6 +87,7 @@ export const JeecgListMixin = {
         }
     },
     async loadData(arg) {
+      this.dataSource = []
       if (!this.url.list) {
         this.$message.error("请设置url.list属性!")
         return

+ 1 - 1
src/utils/util.js

@@ -251,7 +251,7 @@ export const transformTozTreeFormat = (sNodes, setting={}) => {
     var i, l,
         key = setting.idKey || 'id',
         parentKey = setting.parentKey || 'parentId',
-        childKey = setting.childKey || 'childrens';
+        childKey = setting.childKey || 'children';
     if (!key || key == "" || !sNodes) return [];
 
     if (isArray(sNodes)) {

+ 58 - 23
src/views/modules/Statistics/refuseData.vue

@@ -96,15 +96,40 @@ th div {
               <img :src="coverUrl" controls="controls" style="height:200px;width:112.5px" />
             </div>
             <template slot="creativeName" slot-scope="text, record">
-              <editable-cell :text="text" @change="onCellChange(record, 'creativeName', $event)" />
+              <!-- <editable-cell :text="text" @change="onCellChange(record, 'creativeName', $event)" /> -->
+              <div>
+                {{text}}
+                <a-icon
+                  type="edit"
+                  style="cursor: pointer;"
+                  @click="onCellChange(record, 'creativeName')"
+                />
+              </div>
             </template>
             <template slot="description" slot-scope="text, record">
-              <editable-cell :text="text" @change="onCellChange(record, 'description', $event)" />
+              <!-- <editable-cell :text="text" @change="onCellChange(record, 'description', $event)" /> -->
+              <div>
+                {{text}}
+                <a-icon
+                  type="edit"
+                  style="cursor: pointer;"
+                  @click="onCellChange(record, 'description')"
+                />
+              </div>
             </template>
           </a-table>
         </a-card>
       </a-col>
     </a-row>
+    <a-modal
+      :title="editTitle"
+      :visible="visible"
+      @ok="handleOk"
+      :confirmLoading="confirmLoading"
+      @cancel="handleCancel"
+    >
+      <a-textarea v-model="editWord" autosize />
+    </a-modal>
   </div>
 </template>
 
@@ -191,36 +216,46 @@ export default {
       loading: false,
       columns,
       dataList: [],
-      keyWord: ''
+      keyWord: '',
+      editTitle: '',
+      confirmLoading: false,
+      visible: false,
+      editWord: '',
+      nowData: null
     }
   },
   filters: {},
   methods: {
-    onCellChange(item, dataIndex, value) {
-      //   const dataSource = [...this.dataSource]
-      //   const target = dataSource.find(item => item.key === key)
-      //   if (target) {
-      //     target[dataIndex] = value
-      //     this.dataSource = dataSource
-      //   }
-      console.log(value)
-
-      item[dataIndex] = value
+    handleOk(e) {
+      this.confirmLoading = true
       var params = {}
-      params.accountId = item.accountId
-      params.campaignId = item.campaignId
-      params.unitId = item.unitId
-      params.creativeId = item.creativeId
-      params.creativeName = item.creativeName
-      params.description = item.description
+      params.accountId = this.nowData.accountId
+      params.campaignId = this.nowData.campaignId
+      params.unitId = this.nowData.unitId
+      params.creativeId = this.nowData.creativeId
+      params.creativeName = this.editTitle == '创意名称修改' ? this.editWord : this.nowData.creativeName
+      params.description = this.editTitle == '广告语修改' ? this.editWord : this.nowData.description
       updateCreative(params).then(res => {
-        if(res.code == 0){
-            this.addUser()
-        }else{
-            this.$message.error(res.message)
+        if (res.code == 0) {
+          this.addUser()
+          this.visible = false
+          this.confirmLoading = false
+        } else {
+          this.$message.error(res.message)
+          this.visible = false
+          this.confirmLoading = false
         }
       })
     },
+    handleCancel(e) {
+      this.visible = false
+    },
+    onCellChange(item, dataIndex) {
+      this.editWord = item[dataIndex]
+      this.editTitle = dataIndex == 'creativeName' ? '创意名称修改' : '广告语修改'
+      this.nowData = item
+      this.visible = true
+    },
     moment,
     ...mapGetters(['nickname', 'avatar', 'userInfo']),
     addUser() {

+ 78 - 36
src/views/modules/appium/AppiumTaskList.vue

@@ -99,6 +99,9 @@
             </a>
             <a-menu slot="overlay">
               <a-menu-item>
+                <span @click="start(record)">开始执行</span>
+              </a-menu-item>
+              <a-menu-item>
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
@@ -114,26 +117,33 @@
           :pagination="false"
         >
           <span slot="action" slot-scope="text,record" class="table-operation">
-            <a href="javascript:;" @click="lookDetail(record)">查看详情</a>
-            <a-dropdown>
-              <a-menu slot="overlay">
-                <a-menu-item>查看 1</a-menu-item>
-                <a-menu-item>查看 2</a-menu-item>
-              </a-menu>
-              <a href="javascript:;">
-                查看
-                <a-icon type="down" />
-              </a>
-            </a-dropdown>
+            <a href="javascript:;" @click="lookDetail(record)">查看</a>
           </span>
         </a-table>
       </a-table>
     </div>
     <!-- table区域-end -->
-
+    <a-modal title="执行设备" :visible="visible" @ok="handleOk" @cancel="handleCancel">
+      <!-- dataList -->
+      <a-select
+        showSearch
+        style="width:100%"
+        placeholder="请选择设备"
+        optionFilterProp="children"
+        @change="handleChange"
+        :filterOption="filterOption"
+        v-model="value"
+      >
+        <a-select-option
+          :value="item.id"
+          v-for="(item,index) of dataList"
+          :key="index"
+        >{{item.ip}}:{{item.port}}</a-select-option>
+      </a-select>
+    </a-modal>
     <!-- 表单区域 -->
     <appiumTask-modal ref="modalForm" @ok="modalFormOk"></appiumTask-modal>
-    <appiumTask-item-modal ref="modalItemForm"></appiumTask-item-modal>
+    <appiumTask-item-modal ref="modalItemForm" @ok="modalFormOk"></appiumTask-item-modal>
   </a-card>
 </template>
 
@@ -141,7 +151,7 @@
 import AppiumTaskModal from './modules/AppiumTaskModal'
 import AppiumTaskItemModal from './modules/AppiumTaskItemModal'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import { appiumTaskList, appiumTaskItemList } from '@api/appium.js'
+import { getAction, postAction } from '@/api/manage'
 import { transformTozTreeFormat } from '@/utils/util.js'
 const innerColumns = [
   //   {
@@ -249,6 +259,8 @@ export default {
       description: '任务表管理页面',
       // 表头
       innerColumns,
+      visible: false,
+      detail: null,
       columns: [
         {
           title: '#',
@@ -289,7 +301,11 @@ export default {
         deleteBatch: '/appium/appiumTask/deleteBatch',
         exportXlsUrl: 'appium/appiumTask/exportXls',
         importExcelUrl: 'appium/appiumTask/importExcel'
-      }
+      },
+      run: '/appium/appiumTask/run',
+      appiumDevice: '/appium/appiumDevice/list',
+      dataList: [],
+      value: null
     }
   },
   computed: {
@@ -299,33 +315,59 @@ export default {
   },
   methods: {
     lookDetail(item) {
-        console.log(item)
       this.$refs.modalItemForm.edit(item)
       this.$refs.modalItemForm.title = '编辑'
       this.$refs.modalItemForm.disableSubmit = false
+    },
+    handleOk() {
+      this.visible = false
+      var params = {}
+      params.deviceId = this.value
+      params.taskId = this.detail.id
+      if (this.value) {
+        postAction(this.run, params).then(res => {
+          console.log(res.result.records)
+          if (res.code == 0) {
+            this.handleCancel()
+          }
+        })
+      }else{
+          this.visible = true
+          this.$message.error('请选择设备')
+          return
+      }
+    },
+    handleCancel() {
+      this.value = null
+      this.detail = null
+      this.visible = false
+    },
+    start(item) {
+      this.visible = true
+      this.detail = item
+      this.value = null
+      var param = {}
+      param.pageNo = 1
+      param.pageSize = 100
+
+      getAction(this.appiumDevice, param).then(res => {
+        console.log(res.result.records)
+        if (res.code == 0) {
+          this.dataList = res.result.records.filter(item => {
+            return item.status == 1
+          })
+        }
+      })
+    },
+    handleChange(value) {
+      //   this.value = value
+    },
+    filterOption(input, option) {
+      return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
     }
   },
   mounted() {
-    this.$nextTick(() => {
-      var params = {
-        _t: 1573006568,
-        column: 'createTime',
-        order: 'desc',
-        field: 'id,,,taskName,appPackage,appActivity,action',
-        pageNo: 1,
-        pageSize: 20
-      }
-      var data = []
-      appiumTaskList(params).then(res => {
-        data.push(...res.result.records)
-        appiumTaskItemList(params).then(res => {
-          console.log(res, 12321312)
-          data.push(...res.result.records)
-          var dataElse = transformTozTreeFormat(data)
-          console.log(dataElse)
-        })
-      })
-    })
+    this.$nextTick(() => {})
   }
 }
 </script>

+ 182 - 209
src/views/modules/appium/modules/AppiumTaskItemModal.vue

@@ -6,26 +6,19 @@
     :confirmLoading="confirmLoading"
     @ok="handleOk"
     @cancel="handleCancel"
-    cancelText="关闭">
-    
+    cancelText="关闭"
+  >
     <a-spin :spinning="confirmLoading">
       <a-form :form="form">
-      
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="任务ID">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="任务ID">
           <a-input placeholder="请输入任务ID" v-decorator="['taskId', validatorRules.taskId ]" />
           <!-- <a-select
              v-decorator="['taskId', validatorRules.taskId ]"
             placeholder="请选择任务ID"
           >
-          </a-select> -->
+          </a-select>-->
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="父ID">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="父ID">
           <!-- <a-input placeholder="请输入父ID" v-decorator="['parentId', {}]" /> -->
           <a-tree-select
             style="width:100%"
@@ -33,30 +26,17 @@
             :treeData="treeData"
             v-decorator="['parentId', {}]"
             placeholder="请选择父级菜单"
-          >
-          </a-tree-select>
+          ></a-tree-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="名字">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="名字">
           <a-input placeholder="请输入名称" v-decorator="['name', {}]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="顺序">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="顺序">
           <a-input-number v-decorator="[ 'seq', validatorRules.seq ]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="查找类型">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="查找类型">
           <!-- <a-input placeholder="请输入查找类型" v-decorator="['findType', validatorRules.findType ]" /> -->
-          <a-select
-            v-decorator="['findType', validatorRules.findType ]"
-            placeholder="请选择查找类型"
-          >
+          <a-select v-decorator="['findType', validatorRules.findType ]" placeholder="请选择查找类型">
             <a-select-option value="id">id</a-select-option>
             <a-select-option value="no">no</a-select-option>
             <a-select-option value="class">class</a-select-option>
@@ -64,244 +44,237 @@
             <a-select-option value="loop">loop</a-select-option>
           </a-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="查找关键字">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="查找关键字">
           <a-input placeholder="请输入查找关键字" v-decorator="['findKey', {}]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="点击类型">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="点击类型">
           <!-- <a-input placeholder="请输入点击类型" v-decorator="['clickType', {}]" /> -->
-          <a-select
-            v-decorator="['clickType', {} ]"
-            placeholder="请选择点击类型"
-          >
+          <a-select v-decorator="['clickType', {} ]" placeholder="请选择点击类型">
             <a-select-option value="element">element</a-select-option>
             <a-select-option value="point">point</a-select-option>
             <a-select-option value="no">no</a-select-option>
           </a-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="偏移量X">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="偏移量X">
           <a-input-number v-decorator="[ 'offsiteX', {}]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="偏移量Y">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="偏移量Y">
           <a-input-number v-decorator="[ 'offsiteY', {}]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="循环间隔">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="循环间隔">
           <!-- <a-input placeholder="请输入循环间隔" v-decorator="['loopRate', {}]" /> -->
-          <a-input  v-decorator="['loopRate',{}]" placeholder="请输入循环间隔">
+          <a-input v-decorator="['loopRate',{}]" placeholder="请输入循环间隔">
             <span slot="addonAfter">ms</span>
           </a-input>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="循环类型">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="循环类型">
           <!-- <a-input placeholder="请输入循环类型" v-decorator="['loopType', {}]" /> -->
-          {{model.isMust}}
-          <a-switch checkedChildren="loop" unCheckedChildren="noloop" v-decorator="['loopType', {}]" @change="switchShow"/>
+          <a-switch
+            checkedChildren="loop"
+            unCheckedChildren="noloop"
+            v-decorator="['loopType', {}]"
+            v-model="model.loopType"
+          />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="是否必经执行">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否必经执行">
           <!-- <a-input placeholder="请输入是否必经执行" v-decorator="['isMust', validatorRules.isMust ]" /> -->
-          <a-switch checkedChildren="是" unCheckedChildren="否" v-decorator="['isMust', validatorRules.isMust ]"  @change="switchShowTwo"/>
+          <a-switch
+            checkedChildren="是"
+            unCheckedChildren="否"
+            v-decorator="['isMust', validatorRules.isMust ]"
+            v-model="model.isMust"
+          />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="文本查找类型">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="文本查找类型">
           <!-- <a-input placeholder="请输入文本查找类型" v-decorator="['textEqualType', {}]" /> -->
-          <a-select
-            v-decorator="['textEqualType', {} ]"
-            placeholder="请选择文本查找类型"
-          >
+          <a-select v-decorator="['textEqualType', {} ]" placeholder="请选择文本查找类型">
             <a-select-option value="eq">eq</a-select-option>
             <a-select-option value="start">start</a-select-option>
             <a-select-option value="contain">contain</a-select-option>
           </a-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="文本查找关键字">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="文本查找关键字">
           <a-input placeholder="请输入文本查找关键字" v-decorator="['textEqualKey', {}]" />
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="滑动类型">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="滑动类型">
           <!-- <a-input placeholder="请输入滑动类型" v-decorator="['swapType', {}]" /> -->
-          <a-select
-            v-decorator="['swapType', {} ]"
-            placeholder="请选择滑动类型"
-          >
+          <a-select v-decorator="['swapType', {} ]" placeholder="请选择滑动类型">
             <a-select-option value="up">up</a-select-option>
             <a-select-option value="down">down</a-select-option>
             <a-select-option value="left">left</a-select-option>
             <a-select-option value="right">right</a-select-option>
           </a-select>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="延迟时长">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="延迟时长">
           <!-- <a-input placeholder="请输入延迟时长" v-decorator="['waitTime', {}]" /> -->
-          <a-input  v-decorator="['waitTime',{}]" placeholder="请输入延迟时长">
+          <a-input v-decorator="['waitTime',{}]" placeholder="请输入延迟时长">
             <span slot="addonAfter">ms</span>
           </a-input>
         </a-form-item>
-        <a-form-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="是否执行完关闭">
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="是否执行完关闭">
           <!-- <a-input placeholder="请输入是否执行完关闭" v-decorator="['isClose', {}]" /> -->
-          <a-switch checkedChildren="是" unCheckedChildren="否"  v-decorator="['isClose', {}]"  @change="switchShowClose"/>
+          <a-switch
+            checkedChildren="是"
+            unCheckedChildren="否"
+            v-decorator="['isClose', {}]"
+            v-model="model.isClose"
+          />
         </a-form-item>
-		
       </a-form>
     </a-spin>
   </a-modal>
 </template>
 
 <script>
-  import { httpAction } from '@/api/manage'
-  import pick from 'lodash.pick'
-  import moment from "moment"
-
-  export default {
-    name: "AppiumTaskItemModal",
-    data () {
-      return {
-        title:"操作",
-        visible: false,
-        model: {},
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
+import { httpAction } from '@/api/manage'
+import pick from 'lodash.pick'
+import moment from 'moment'
 
-        confirmLoading: false,
-        form: this.$form.createForm(this),
-        treeData:[],
-        validatorRules:{
-        taskId:{rules: [{ required: true, message: '请输入任务ID!' }]},
-        seq:{rules: [{ required: true, message: '请输入顺序!' }]},
-        findType:{rules: [{ required: true, message: '请输入查找类型!' }]},
-        isMust:{rules: [{ required: true, message: '请输入是否必经执行!' }]},
-        },
-        url: {
-          add: "/appium/appiumTaskItem/add",
-          edit: "/appium/appiumTaskItem/edit",
-        },
-      }
-    },
-    created () {
-    },
-    methods: {
-    switchShow(check){
-        if(check){
-            this.model.loopType = "loop"
-        }else{
-            this.model.loopType = "noloop"
-        }
-    },
-    switchShowTwo(check){
-        if(check){
-            this.model.isMust = 0
-        }else{
-            this.model.isMust = 1
-        }
-    },
-    switchShowClose(check){
-        if(check){
-            this.model.isClose = 0
-        }else{
-            this.model.isClose = 1
-        }
-    },
-      add () {
-        this.edit({findType:"id",clickType:"element",offsiteX:0,offsiteY:0,loopRate:1000,loopType:"noloop",isMust:0,waitTime:1000});
+export default {
+  name: 'AppiumTaskItemModal',
+  data() {
+    return {
+      title: '操作',
+      visible: false,
+      model: {},
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 5 }
       },
-      edit (record) {
-        // record.isMust = record.isMust == 1?false:true
-        // record.isClose = record.isClose == 1?false:true
-        // record.loopType = record.loopType == "loop"?false:true
-        this.form.resetFields();
-        this.model = Object.assign({}, record);
-        this.visible = true;
-        this.$nextTick(() => {
-          this.form.setFieldsValue(pick(this.model,'taskId','parentId','name','seq','findType','findKey','clickType','offsiteX','offsiteY','loopRate','loopType','isMust','textEqualType','textEqualKey','swapType','waitTime','isClose'))
-		  //时间格式化
-        });
-
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 16 }
       },
-      close () {
-        this.$emit('close');
-        this.visible = false;
+      confirmLoading: false,
+      form: this.$form.createForm(this),
+      treeData: [],
+      validatorRules: {
+        taskId: { rules: [{ required: true, message: '请输入任务ID!' }] },
+        seq: { rules: [{ required: true, message: '请输入顺序!' }] },
+        findType: { rules: [{ required: true, message: '请输入查找类型!' }] },
+        isMust: { rules: [{ required: true, message: '请输入是否必经执行!' }] }
       },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
-        this.form.validateFields((err, values) => {
-          if (!err) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-            let formData = Object.assign(this.model, values);
-            //时间格式化
-            
-            console.log(formData)
-            httpAction(httpurl,formData,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-
+      url: {
+        add: '/appium/appiumTaskItem/add',
+        edit: '/appium/appiumTaskItem/edit'
+      }
+    }
+  },
+  created() {},
+  methods: {
+    switchShow(check) {},
+    switchShowTwo(check) {},
+    switchShowClose(check) {},
+    add() {
+      this.edit({
+        findType: 'id',
+        clickType: 'element',
+        offsiteX: 0,
+        offsiteY: 0,
+        loopRate: 1000,
+        loopType: false,
+        isMust: true,
+        waitTime: 1000,
+        isClose: false
+      })
+    },
+    edit(record) {
+      this.form.resetFields()
+      this.model = Object.assign({}, record)
+      this.model.parentId = this.model.parentId + ''
+      if (this.model.isMust == 0) {
+        this.model.isMust = false
+      } else if (this.model.isMust == 1) {
+        this.model.isMust = true
+      }
 
+      if (this.model.isClose == 0) {
+        this.model.isClose = false
+      } else if (this.model.isClose == 1) {
+        this.model.isClose = true
+      }
 
+      if (this.model.loopType == 'noloop') {
+        this.model.loopType = false
+      } else if (this.model.loopType == 'loop') {
+        this.model.loopType = true
+      }
+      this.visible = true
+      this.$nextTick(() => {
+        this.form.setFieldsValue(
+          pick(
+            this.model,
+            'taskId',
+            'parentId',
+            'name',
+            'seq',
+            'findType',
+            'findKey',
+            'clickType',
+            'offsiteX',
+            'offsiteY',
+            'loopRate',
+            'loopType',
+            'isMust',
+            'textEqualType',
+            'textEqualKey',
+            'swapType',
+            'waitTime',
+            'isClose'
+          )
+        )
+        //时间格式化
+      })
+    },
+    close() {
+      this.$emit('close')
+      this.visible = false
+    },
+    handleOk() {
+      const that = this
+      // 触发表单验证
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          that.confirmLoading = true
+          let httpurl = ''
+          let method = ''
+          if (!this.model.id) {
+            httpurl += this.url.add
+            method = 'post'
+          } else {
+            httpurl += this.url.edit
+            method = 'put'
           }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
 
+          var params = { ...this.model }
+          params.isMust = params.isMust ? 1 : 0
+          params.isClose = params.isClose ? 1 : 0
+          params.loopType = params.loopType ? 'loop' : 'noloop'
+          //时间格式化
 
+          console.log(params, this.model)
+            httpAction(httpurl, params, method)
+              .then(res => {
+                if (res.success) {
+                  that.$message.success(res.message)
+                  that.$emit('ok')
+                } else {
+                  that.$message.warning(res.message)
+                }
+              })
+              .finally(() => {
+                that.confirmLoading = false
+                that.close()
+              })
+        }
+      })
+    },
+    handleCancel() {
+      this.close()
     }
   }
+}
 </script>
 
 <style lang="less" scoped>
-
 </style>