<template>
  <div class="detail-wrap">
    <el-form ref="editForm" :model="wfObjConfigItem">
      <div class="d-header clearfix">
        <div class="fl">
          <i class="el-icon-info"/>
          {{ dataId ? $t1('查看流程模版') : $t1('新增流程模版') }}
        </div>
        <div class="fr">
          <el-button type="primary" plain class="button-sty" @click="$baseReload()" icon="el-icon-refresh-right">{{$t1('重置')}}
          </el-button>
          <el-button type="primary" class="button-sty" icon="el-icon-check" @click="saveData">{{$t1('保存')}}</el-button>
        </div>
      </div>
      <div class="d-cont">
        <div class="d-item">
          <div class="title first"><b>{{ $t1('基本信息') }}</b></div>
          <table class="table-detail">
            <tbody>
            <tr>
              <th>
                <em class="f-red">*</em>
                流程模版名称
              </th>
              <td>
                <el-form-item prop="modelName" :rules="[{ required: true, trigger: 'blur' }]">
                  <el-input autocomplete="off" v-model="wfObjConfigItem.modelName" clearable/>
                </el-form-item>
              </td>
              <th>
                <em class="f-red">*</em>
                流程模版KEY
              </th>
              <td>
                <el-form-item prop="modelKey" :rules="[{ required: true, trigger: 'blur' }]" v-if="!dataId">
                  <el-input autocomplete="off" v-model="wfObjConfigItem.modelKey" clearable/>
                </el-form-item>
                <template v-else>{{ wfObjConfigItem.modelKey }}</template>
              </td>
              <th>
                <em class="f-red">*</em>
                单据类型编码
              </th>
              <td>
                {{ wfObjConfigItem.objTypeCode }}
              </td>
            </tr>
            <tr>
              <th>
                跳过相邻任务
              </th>
              <td>
                <el-form-item prop="skipAdjacentTask" :rules="[{ required: false, trigger: 'blur' }]">
                  <el-radio-group v-model="wfObjConfigItem.skipAdjacentTask">
                    <el-radio :label="true">是</el-radio>
                    <el-radio :label="false">否</el-radio>
                  </el-radio-group>
                </el-form-item>
              </td>
              <th>
                驳回后提交模式
              </th>
              <td colspan="3">
                <el-form-item prop="toRejectNode" :rules="[{ required: false, trigger: 'blur' }]">
                  <el-radio-group v-model="wfObjConfigItem.toRejectNode">
                    <el-radio :label="true">由提交人确定提交节点</el-radio>
                    <el-radio :label="false">由驳回人指定提交节点</el-radio>
                  </el-radio-group>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <th>
                流程启动处理
              </th>
              <td colspan="5">
                <el-form-item prop="startMode" :rules="[{ required: false, trigger: 'blur' }]">
                  <el-radio-group v-model="wfObjConfigItem.startMode">
                    <el-radio :label="1">节点无候选人，提示异常</el-radio>
                    <el-radio :label="2">节点无候选人，提示警告</el-radio>
                    <el-radio :label="3">节点无候选人，无提示</el-radio>
                  </el-radio-group>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <th>
                跨任务跳过
              </th>
              <td colspan="5">
                <el-form-item prop="skipSameUserTask" :rules="[{ required: false, trigger: 'blur' }]">
                  <el-radio-group v-model="wfObjConfigItem.skipSameUserTask">
                    <el-radio :label="true">是</el-radio>
                    <el-radio :label="false">否</el-radio>
                  </el-radio-group>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <th>
                任务action脚本<br/>
                <scriptDescriptionButton path="static/readme/Wf.txt"></scriptDescriptionButton>
                <scriptTestButton :script.sync="wfObjConfigItem.script"></scriptTestButton>
              </th>
              <td colspan="7">
                <el-form-item prop="script" :rules="[{ required: false, trigger: 'blur' }]">
                  <code-editor mode="java" :readonly="!1" v-model="wfObjConfigItem.script"
                               v-if="showCodeEditor"></code-editor>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <th class="no"></th>
              <td colspan="7">
                <span class="fl tips">注：流程任务执行过程中，每一次的action动作都会执行此脚本。</span>
              </td>
            </tr>
            <tr>
              <th>{{ $t1('创建人') }}</th>
              <td>{{ wfObjConfigItem.createBy }}</td>
              <th>{{ $t1('创建时间') }}</th>
              <td>{{ wfObjConfigItem.createDate }}</td>
              <th>{{ $t1('更新人') }}</th>
              <td>{{ wfObjConfigItem.modifyBy }}</td>
              <th>{{ $t1('更新时间') }}</th>
              <td>{{ wfObjConfigItem.modifyDate }}</td>
            </tr>
            </tbody>
          </table>
        </div>
      </div>
    </el-form>
  </div>
</template>

<script>
export default {
  name: 'wfObjConfigItemEdit',
  props: {
    _dataId: [String, Number],
    formTemplate: Object
  },
  components: {},
  data() {
    return {
      tabIndex: 0,
      isEdit: false,
      dataId: '',
      wfObjConfigItem: {
        skipFirstTask: true,
        skipAdjacentTask: false,
        toRejectNode: false,
        startMode: 3,
        skipSameUserTask: false
      },
      showWfObjConfigDialog: false,
      configServiceId: null,
      showCodeEditor: false
    };
  },
  computed: {
    current_prefix() {
      // return this.configServiceId ? ('/' + this.configServiceId) : ''
      return USER_PREFIX;
    },
  },
  created() {
    if (this._dataId && !isNaN(this._dataId)) {
      this.dataId = this._dataId;
    } else {
      this.wfObjConfigItem.objConfigId = this.formTemplate.id;
      this.wfObjConfigItem.objTypeCode = this.formTemplate.formCode;
    }
    this.configServiceId = this.serviceId || '';
  },
  mounted() {
    this.getData();
  },
  methods: {
    getData() {
      if (this.dataId && !isNaN(this.dataId)) {
        this.isEdit = true;
        this.$commonHttp({
          url: this.current_prefix + `/wf_obj_config_item/get`,
          method: `post`,
          data: {
            id: this.dataId
          },
          isLoading: true,
          modalStrictly: true,
          success: res => {
            this.wfObjConfigItem = res.objx || {};
            this.showCodeEditor = true;
          }
        });
      } else {
        this.showCodeEditor = true;
      }
    },
    saveData() {
      this.$refs.editForm.$baseValidate(valid => {
        if (valid) {
          this.$baseConfirm(this.$t1('您确定要保存吗？')).then(() => {
            var url = this.current_prefix + (this.isEdit ? `/wf_obj_config_item/update` : `/wf_obj_config_item/save`);
            this.$http({
              url: url,
              method: `post`,
              data: this.wfObjConfigItem,
              isLoading: true,
              success: res => {
                this.$message({
                  message: res.content,
                  type: 'success',
                  duration: 500,
                  onClose: t => {
                    if (this.isEdit) {
                      this.$baseReload();
                    } else {
                      this.$baseReload({
                        updateParam: {
                          _dataId: res.objx,
                          wfObjConfig: null
                        }
                      });
                    }
                  }
                });
              }
            });
          });
        }
      });
    }
  }
};
</script>
