<template>
  <div class="app-container">
    <el-card>
      <div slot="header" class="clearfix">
        <span>我的报送任务</span>
      </div>
      <div>
        <el-select
          v-model="pageForm.org"
          placeholder="报送部门"
          @change="handleFilter"
          clearable
        >
          <el-option
            v-for="item in orgData"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          />
        </el-select>
      </div>
      <el-table
        v-loading="listLoading"
        :data="taskList.results"
        border
        fit
        stripe
        highlight-current-row
        :height="topHeight"
        @row-click="clickRow"
      >
        <el-table-column type="index" width="50"/>
        <el-table-column label="任务名称">
          <template #default="scope">
            <span v-if="scope.row.qtask_">{{scope.row.qtask_.name}}</span>
          </template>
        </el-table-column>
        <el-table-column label="任务状态">
          <template #default="scope">
            <span v-if="scope.row.qtask_">{{scope.row.qtask_.state}}</span>
          </template>
        </el-table-column>
        <el-table-column label="截止日期">
          <template #default="scope">
            <span v-if="scope.row.qtask_">{{scope.row.qtask_.end_date}}</span>
          </template>
        </el-table-column>
        <el-table-column label="报送部门">
          <template #default="scope">
            <span v-if="scope.row.org_">{{scope.row.org_.name}}</span>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        :total="taskList.count"
        :page.sync="pageForm.page"
        :limit.sync="pageForm.page_size"
        @pagination="getrecordlist"
      />
    </el-card>
    <el-card style="margin-top:6px">
      <div slot="header" class="clearfix">
        <span v-if="qtaskName!==''" style="display: inline-block;line-height: 40px">【{{qtaskName}}】</span>
        <span style="display: inline-block;line-height: 40px">记录详情</span>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right"
          @click="serviceUpdate()"
        >
          更新服务
        </el-button>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right;margin-right: 10px"
          @click="qualiUpdate()"
        >
          编辑资质
        </el-button>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right;margin-right: 10px"
          @click="qualiCreate()"
        >
          新增资质
        </el-button>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right"
          @click="noChange('1')"
        >
          资质无新增
        </el-button>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right;margin-right: 10px"
          @click="abilityCreate()"
        >
          新增能力
        </el-button>
        <el-button
          v-if="buttonsShow&&checkPermission(['qaction_create'])"
          type="primary"
          style="float: right"
          @click="noChange('2')"
        >
          能力无新增
        </el-button>
      </div>
      <el-table
        style="margin-top: 6px"
        v-loading="listLoading"
        :data="recordList.results"
        border
        fit
        stripe
        highlight-current-row
        :height="bottomHeight"
      >
        <el-table-column type="index" width="50"/>

        <el-table-column width="150px" label="任务标题">
          <template>{{qtaskName}}</template>
        </el-table-column>
        <el-table-column label="操作类型">
          <template slot-scope="scope">
            <span v-if="scope.row.action==='ablity:create'">新增能力</span>
            <span v-else-if="scope.row.action==='service:update'">更新服务</span>
            <span v-else-if="scope.row.action==='quali:update'">更新资质</span>
            <span v-else-if="scope.row.action==='quali:create'">新增资质</span>
            <span v-else-if="scope.row.action==='ability:nochange'">能力无新增</span>
            <span v-else-if="scope.row.action==='quali:nochange'">资质无新增</span>
          </template>
        </el-table-column>
        <el-table-column label="确认情况">
          <template slot-scope="scope">
            <el-tag v-if="scope.row.confirmed" effect="plain">已确认</el-tag>
            <el-tag type="danger" effect="plain" v-else>未确认</el-tag>
          </template>
        </el-table-column>
        <el-table-column label="文件">
          <template slot-scope="scope">
            <el-link v-if="scope.row.file_" :href="scope.row.file_.file" target="_blank" type="primary">
              {{scope.row.file_.name}}
            </el-link>
            <span v-if="scope.row.value1">
               <el-link v-if="scope.row.value1.file_" :href="scope.row.value1.file_.file" target="_blank" type="primary">
                {{scope.row.value1.file_.name}}
               </el-link>
            </span>
          </template>
        </el-table-column>
        <el-table-column label="操作人">
          <template slot-scope="scope">
            <span v-if="scope.row.create_by_"> {{ scope.row.create_by_.name }}</span>
          </template>
        </el-table-column>
        <el-table-column label="操作时间">
          <template slot-scope="scope">{{ scope.row.update_time.substring(0, 16) }}</template>
        </el-table-column>

        <el-table-column
          align="center"
          label="操作"
          fixed="right"
        >
          <template slot-scope="scope">
            <el-link
              type="primary"
              size="small"
              @click="handleDetail( 'view',scope.row )"
            >操作记录
            </el-link>
            <el-link
              v-if="!scope.row.confirmed"
              type="danger"
              size="small"
              @click="handleDelete( scope.row.id )"
            >删除
            </el-link>
          </template>

        </el-table-column>
      </el-table>
      <pagination
        :total="recordList.count"
        :page.sync="listQuery.page"
        :limit.sync="listQuery.page_size"
        @pagination="getList"
      />
    </el-card>
    <el-dialog
      :visible.sync="dialogVisibleAbility"
      title="新增能力"
    >
      <el-form
        ref="abilityForm"
        :model="abilityForm"
        label-width="120px"
        label-position="right"
        :rules="rule"
      >
        <el-form-item label="能力类型" prop="atype">
          <el-select
            style="width: 100%;"
            v-model="abilityForm.atype"
            placeholder="能力类型"
          >
            <el-option
              v-for="item in atypeOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="能力领域" prop="afield">
          <el-select
            style="width: 100%;"
            v-model="abilityForm.afield"
            placeholder="能力领域"
          >
            <el-option
              v-for="item in afieldOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="能力文件" prop="file">
          <el-upload
            ref="upload"
            :action="upUrl"
            :on-success="handleUpSuccess"
            :on-remove="handleRemove"
            :headers="upHeaders"
            :file-list="fileLista"
            :limit="1"
            accept=".xls,.xlsx"
          >
            <el-button size="small" type="primary">上传文件</el-button>
          </el-upload>
        </el-form-item>
        <el-row>
          <el-col :span="12">
            <el-form-item label="对象数量">
            <el-input-number v-model="abilityForm.num" :min="1" label="新增对象数量"></el-input-number>
          </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="方法标准数量">
              <el-input-number v-model="abilityForm.num3" :min="1" label="新增方法标准数量"></el-input-number>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="12">
            <el-form-item label="参数数量">
              <el-input-number v-model="abilityForm.num2" :min="1" label="新增参数数量"></el-input-number>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="产品标准数量">
              <el-input-number v-model="abilityForm.num4" :min="1" label="新增产品标准数量"></el-input-number>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div style="text-align: right">
        <el-button type="danger" @click="dialogVisibleAbility = false">取消</el-button>
        <el-button type="primary" @click="confirmAbility('abilityForm')">
          确认
        </el-button>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="dialogVisible"
      title="新增资质"
    >
      <el-form
        ref="Form"
        :model="qualiForm"
        label-width="80px"
        label-position="right"
        :rules="rule"
      >
        <el-form-item label="资质认定" prop="type">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.type"
            placeholder="资质认定"
            @change="qualiTypeChange"
          >
            <el-option
              v-for="item in typeOptions"
              :key="item"
              :label="item"
              :value="item"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质名称" prop="name" v-if="qualiForm.type==='OTHER'">
          <el-input v-model="qualiForm.name" placeholder="资质名称"/>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='CMA'">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.grade"
            placeholder="资质类型"
          >
            <el-option
              v-for="item in gradeOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='CNAS'">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.grade"
            placeholder="资质类型"
          >
            <el-option
              v-for="item in gradeOptions1"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='OTHER'">
          <el-input v-model="qualiForm.level" placeholder="资质类型"/>
        </el-form-item>
        <el-form-item label="有效期">
          <el-date-picker
            v-model="qualiForm.end_date"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="选择有效期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="资质范围">
          <el-input
            type="textarea"
            :rows="4"
            v-model="qualiForm.scope"
          ></el-input>
        </el-form-item>
        <el-form-item label="描述">
          <el-input
            type="textarea"
            :rows="4"
            v-model="qualiForm.description"
            placeholder="描述"
          ></el-input>
        </el-form-item>
        <el-form-item label="备案城市" v-if="qualiForm.type==='OTHER'">
          <el-select
            v-model="qualiForm.citys"
            placeholder="备案城市"
            style="width: 100%;"
            filterable
            remote
            multiple
            reserve-keyword
            :remote-method="searchCity"
            :loading="loading"
            @change="getCheckCity"
          >
            <el-option
              v-for="item in cityOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="所在省" v-if="qualiForm.grade===20">
          <el-select
            v-model="qualiForm.province"
            placeholder="省份"
            clearable
            style="width: 100%"
            @change="getCites(qualiForm.province)"
          >
            <el-option
              v-for="item in proviceOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="所在市" v-if="qualiForm.grade===30">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.city"
            placeholder="所在市"
            filterable
            remote
            reserve-keyword
            :remote-method="searchCity"
            :loading="loading"
          >
            <el-option
              v-for="item in cityOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质文件" prop="file">
          <el-upload
            ref="upload"
            :action="upUrl"
            accept=".zip,.pdf,.jpg"
            :on-success="handleUpSuccessQuality"
            :on-remove="handleRemoveQuality"
            :headers="upHeaders"
            :file-list="fileLista"
            :limit="1"
          >
            <el-button size="small" type="primary">上传文件</el-button>
            <span class="el-upload__tip">
              可上传压缩包.zip,图片.jpg、.png等文件
            </span>
          </el-upload>
        </el-form-item>
        <!--<el-form-item label="资质文件">
          <el-upload
            ref="upload"
            :action="upUrl"
            :before-upload="beforeUpload"
            :on-success="handleUpSuccessQuality"
            :headers="upHeaders"
            :on-remove="handleRemoveQuality"
            :file-list="qualiForm.file"
             multiple
            :limit="1"
            accept=".ppt,.pdf,.word，.doc,.docx,.xls,.xlsx"
          >
            <el-button size="small" type="primary">上传文件</el-button>
            <span class="el-upload__tip">
              可上传多个pdf,word,ppt,excel,图片文件,单文件大小不超过50M
            </span>
          </el-upload>
        </el-form-item>-->
      </el-form>
      <div style="text-align: right">
        <el-button type="danger" @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="confirm('Form')">确认</el-button>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="dialogVisibleQuliEdit"
      title="编辑资质"
    >
      <el-table
        v-if="!showForm"
        :data="quliList"
        fit
        stripe
        highlight-current-row
      >
        <el-table-column label="我的资质" prop="name">
        </el-table-column>
        <el-table-column
          align="center"
          label="操作"
        >
          <template #default="scope">
            <el-link
              type="primary"
              size="small"
              @click="handleEdit(scope.row)"
            >编辑
            </el-link>
          </template>
        </el-table-column>
      </el-table>
      <el-form
        v-if="showForm"
        ref="Form"
        :model="qualiForm"
        label-width="80px"
        label-position="right"
        :rules="rule"
      >
        <el-form-item label="资质认定" prop="type">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.type"
            placeholder="资质认定"
            @change="qualiTypeChange"
          >
            <el-option
              v-for="item in typeOptions"
              :key="item"
              :label="item"
              :value="item"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质名称" prop="name" v-if="qualiForm.type==='OTHER'">
          <el-input v-model="qualiForm.name" placeholder="资质名称"/>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='CMA'">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.grade"
            placeholder="资质类型"
          >
            <el-option
              v-for="item in gradeOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='CNAS'">
          <el-select
            style="width: 100%;"
            v-model="qualiForm.grade"
            placeholder="资质类型"
          >
            <el-option
              v-for="item in gradeOptions1"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="资质类型" v-if="qualiForm.type==='OTHER'">
          <el-input v-model="qualiForm.level" placeholder="资质类型"/>
        </el-form-item>
        <el-form-item label="有效期">
          <el-date-picker
            v-model="qualiForm.end_date"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="选择有效期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="资质范围">
          <el-input
            type="textarea"
            :rows="4"
            v-model="qualiForm.scope"
          ></el-input>
        </el-form-item>
        <el-form-item label="描述">
          <el-input
            type="textarea"
            :rows="4"
            v-model="qualiForm.description"
            placeholder="描述"
          ></el-input>
        </el-form-item>
        <el-form-item label="备案城市" v-if="qualiForm.type==='OTHER'">
          <el-input v-model="citysName" disabled placeholder="备案城市"/>
          <!--<span v-for="item in qualiForm.citys" :key="item.id">{{item.name}}</span>-->
        </el-form-item>
        <el-form-item label="所在省" v-if="qualiForm.grade===20">
          <el-input v-model="province_name" disabled placeholder="所在省"/>
          <!--{{ formData.province_name }}-->
        </el-form-item>
        <el-form-item label="所在市" v-if="qualiForm.grade===30">
          <el-input v-model="city_name" disabled placeholder="所在市"/>
          <!--{{ formData.city_name }}-->
        </el-form-item>
        <el-form-item label="资质文件" prop="file">
          <el-upload
            ref="upload"
            :action="upUrl"
            accept=".zip,.pdf,.jpg"
            :on-success="handleUpSuccessQuality"
            :on-remove="handleRemoveQuality"
            :headers="upHeaders"
            :file-list="fileLista"
            :limit="1"
          >
            <el-button size="small" type="primary">上传文件</el-button>
            <span class="el-upload__tip">
              可上传压缩包.zip,图片.jpg、.png等文件
            </span>
          </el-upload>
        </el-form-item>
      </el-form>
      <div style="text-align: right">
        <el-button type="danger" @click="dialogVisibleQuliEdit = false">取消</el-button>
        <el-button v-if="showForm" type="primary" @click="confirm('Form')">确认</el-button>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="dialogVisibleSever"
      title="编辑服务"
    >
      <el-form
        ref="severForm"
        :model="severForm"
        label-width="80px"
        label-position="right"
        :rules="rule"
      >
        <el-form-item label="服务内容" prop="value2">
          <el-input
            type="textarea"
            :rows="4"
            v-model="severForm.value2"
            placeholder="服务内容"
          ></el-input>
        </el-form-item>
      </el-form>
      <div style="text-align: right">
        <el-button type="danger" @click="dialogVisibleSever = false">取消</el-button>
        <el-button type="primary" @click="submitEditSever('severForm')">确认</el-button>
      </div>
    </el-dialog>
    <el-drawer
      title="记录"
      :visible.sync="drawer"
      :with-header="false"
      size="40%"
    >
      <div
        v-if="showData.type==='service:update'"
        style="padding: 10px 20px;position: relative"
      >
        <p style="font-size: 20px;font-weight: bold;">更新服务</p>
        <p><span style="display: inline-block;width: 100px;font-weight: bold;">原始内容：</span>{{showData.data.value1}}</p>
        <p><span style="display: inline-block;width: 100px;font-weight: bold;">更新内容：</span>{{showData.data.value2}}</p>
        <el-divider></el-divider>
        <el-button
          v-if="actionType==='confirm'"
          style="position: absolute;right:40px;margin-top: 20px"
          type="primary"
          @click="confirmClick"
        >
          确认
        </el-button>
      </div>
      <div
        v-if="showData.type==='quali:nochange'"
        style="padding: 10px 20px;position: relative"
      >
        <p style="font-size: 20px;font-weight: bold;">资质无新增</p>
        <el-button
          v-if="actionType==='confirm'"
          style="position: absolute;right:40px;margin-top: 20px"
          type="primary"
          @click="confirmClick"
        >
          确认
        </el-button>
      </div>
      <div
        v-if="showData.type==='ability:nochange'"
        style="padding: 10px 20px;position: relative"
      >
        <p style="font-size: 20px;font-weight: bold;">能力无新增</p>
        <el-button
          v-if="actionType==='confirm'"
          style="position: absolute;right:40px;margin-top: 20px"
          type="primary"
          @click="confirmClick"
        >
          确认
        </el-button>
      </div>
      <div
        v-if="showData.type==='ablity:create'"
        style="padding: 10px 20px;position: relative"
      >
        <p style="font-size: 20px;font-weight: bold;">新增能力</p>
        <p><span style="display: inline-block;width: 100px;font-weight: bold;">能力类型 ：</span>{{showData.data.atype_name}}</p>
        <p><span style="display: inline-block;width: 100px;font-weight: bold;">能力领域：</span>{{showData.data.afield_name}}</p>
        <p v-if="showData.data.file_"><span style="display: inline-block;width: 100px;font-weight: bold;">上传文件：</span>{{showData.data.file_.name}}</p>
        <el-link v-if="showData.data.file_" :href="showData.data.file_.file" target="_blank" type="primary">{{showData.data.file_.name}}</el-link>
        <el-divider></el-divider>
        <el-button
          v-if="actionType==='confirm'"
          style="position: absolute;right:40px;margin-top: 20px"
          type="primary"
          @click="confirmClick"
        >
          确认
        </el-button>
      </div>
      <quliShow
        v-if="drawer&&showData.type==='quali:create'"
        ref="quliShow"
        :showData="showData"
        @handleDo="handleDo"
      ></quliShow>
      <quliShow
        v-if="drawer&&showData.type==='quali:update'"
        ref="quliShow"
        :showData="showData"
        :fieldList2="fieldList2"
        @handleDo="handleDo"
      ></quliShow>
    </el-drawer>
  </div>
</template>

<script>
  import {
    getQtaskMy,
    getQtask,
    qactionMy,
    getQualityMy,
    createQuali,
    qactionDelete,
    updateQuali,
    createAbility,
    updateService,
    provinceLists,
    cityLists,
    qactionItem,
    qualiNoChange,
    abilityNoChange
  } from "@/api/ability";
  import {getDictList} from "@/api/dict";
  import {genTree} from "@/utils";
  import {getOrgList} from "@/api/org";
  import {getCMAGroup} from "@/api/cma";
  import checkPermission from "@/utils/permission";
  import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
  import Treeselect from "@riophae/vue-treeselect";
  import quliShow from "@/views/ability/quliShow";
  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  import {upUrl, upHeaders} from "@/api/file";

  export default {
    components: {Pagination, Treeselect,quliShow},
    name: "mQualityTask",
    data() {
      return {
        upHeaders: upHeaders(),
        upUrl: upUrl(),
        qtask: null,
        checkedItem: null,
        pageForm: {
          page: 1,
          page_size: 10,
          org: '',
        },
        listQuery: {
          page: 1,
          page_size: 10,
          task: null,
        },
        showData:{},
        quliList: [],
        orgData: [],
        fileList: [],
        cityOptions: [],
        proviceOptions: [],
        fileLista: [],
        updateId: null,
        taskList: {count: 0,},
        recordList: {count: 0,},
        drawer: false,
        loading: false,
        showForm: false,
        multiple: true,
        listLoading: false,
        dialogVisible: false,
        dialogVisibleSever: false,
        dialogVisibleAbility: false,
        dialogVisibleQuliEdit: false,
        dialogType: "new",
        severForm: {
          qtask: null,
          value2: '',
        },
        qualiForm: {
          name: "",
          type: "CMA",
          grade: "",
          scope: "",
          level: "",
          province: "",
          city: "",
          description: "",
          end_date: "",
          citys: [],
        },
        citysName:'',
        city_name:'',
        province_name:'',
        abilityForm: {
          atype: '',
          afield: '',
          file: '',
          num: '',
          num2: '',
          num3: '',
          num4: '',
          qtask: '',
        },
        rule: {
          name: [{required: true, message: "请输入名称", trigger: "blur"}],
          orgs: [{required: true, message: "请选择上报公司", trigger: "blur"}],
          atype: [{required: true, message: "请选择类型", trigger: "blur"}],
          afield: [{required: true, message: "请选择能力领域", trigger: "blur"}],
          value2: [{required: true, message: "请填写更新内容", trigger: "blur"}],
        },
        stateOptions: [
          '待发布',
          '进行中',
          '已关闭',
        ],
        typeOptions: [
          'CMA',
          'CNAS',
          'OTHER'
        ],
        fieldList2: [],
        atypeOptions: [],
        afieldOptions: [],//领域
        gradeOptions: [{id: 10, name: '国家级'}, {id: 20, name: '省级'}, {id: 30, name: '市级'}],//等级
        gradeOptions1: [{id: 40, name: '实验室'}, {id: 50, name: '检验机构'}],//等级
        qtaskName: "",
        atype_name: "",
        afield_name: "",
        actionType: "",
        filterOrgText: "",
        treeLoding: false,
        buttonsShow: false,
        topHeight: null,
        bottomHeight: null,
      }
    },
    mounted() {
      let height1 = document.getElementsByClassName('app-main')[0].clientHeight / 2;
      let height2 = document.getElementsByClassName('pagination-container')[0].clientHeight;
      this.topHeight = height1 - height2 - 95;
      this.bottomHeight = height1 - height2 - 80;
      this.getTableList();
      this.getGroup();
      //领域类型
      this.atypeOptions = [];
      this.afieldOptions = [];
      this.getOptions();
      this.getProvince();
    },

    methods: {
      noChange(index){
        let that = this;
        if(index==='1'){//资质无新增
          that.$confirm("是否确定本月无新增资质？", "提示")
            .then(async () => {
              qualiNoChange({qtask:this.qtask}).then(res=>{
                if (res.code >= 200 && res.code < 400) {
                  that.getList();
                  that.$message.success("成功");
                }
              })
            })
            .catch((err) => {
              console.error(err);
            });

        }else{//能力无新增
          that.$confirm("是否确定本月无新增能力？", "提示")
            .then(async () => {
              abilityNoChange({qtask:this.qtask}).then(res=>{
                if (res.code >= 200 && res.code < 400) {
                  that.getList();
                  that.$message.success("成功");
                }
              })
            })
            .catch((err) => {
              console.error(err);
            });
        }

      },
      getOptions() {
        getDictList({type__code: "field_type", is_used: true}).then((res) => {
          this.afieldOptions = genTree(res.data);
        });
        getDictList({type__code: "quality_type", is_used: true}).then((res1) => {
          this.atypeOptions = genTree(res1.data);
        });
      },
      getProvince() {
        provinceLists({page: 1, page_size: 60}).then(res => {
          this.proviceOptions = res.data.results;
        });
        cityLists().then(res => {
          this.cityOptions = res.data.results;
        })
      },
      searchCity(query) {
        if (query !== '') {
          this.loading = true;
          cityLists({search: query}).then(res => {
            this.cityOptions = res.data.results;
            this.loading = false;
          })
        } else {
          this.cityOptions = [];
        }
      },
      getCheckCity(data) {
        debugger;
        console.log(data);
        this.qualiForm.citys = data;
      },
      getCites(province) {
        this.qualiForm.city = '';
        cityLists({parent: province, page: 1, page_size: 100}).then(res => {
          this.cityOptions = res.data.results;
        })
      },
      handleUpSuccess(res, file, filelist) {
        this.abilityForm.file = res.data.id;
      },
      handleRemove(file, filelist) {
        this.abilityForm.file = null;
      },

      handleUpSuccessQuality(res, file, filelist) {
        this.qualiForm.file = res.data.id;
      },
      //删除资质文件
      handleRemoveQuality(file, filelist) {
        this.qualiForm.file = null;
      },
      checkPermission,
      getTableList() {
        this.listLoading = true;
        getQtaskMy(this.pageForm).then((response) => {
          if (response.data) {
            debugger;
            this.taskList = response.data;
            this.buttonsShow = false;
            this.qtaskName = '';
            this.recordList={count: 0,};
          }
          this.listLoading = false;
        });
      },
      getGroup() {
        getOrgList({can_supervision: true}).then((res) => {
          this.orgData = res.data;
        });
      },
      getrecordlist() {
        this.getTableList();
      },
      handleFilter() {
        this.getTableList();
      },
      clickRow(obj) {
        this.checkedItem = obj;
        this.qtask = obj.qtask;
        this.qtaskName = obj.qtask_.name;
        this.buttonsShow = true;
        this.listQuery.qtask = obj.qtask;
        qactionMy(this.listQuery).then((res) => {
          this.recordList = res.data;
        })
      },

      ///////
      getList() {
        qactionMy(this.listQuery).then((res) => {
          this.recordList = res.data;
        })
      },
      //更新服务
      serviceUpdate() {
        this.dialogVisibleSever = true;
      },
      //更新服务提交
      submitEditSever(form) {
        let that = this;
        this.$refs[form].validate((valid) => {
          if (valid) {
            that.severForm.qtask = this.qtask;
            updateService(this.severForm).then((res) => {
              if (res.code >= 200) {
                that.getList();
                that.dialogVisibleSever = false;
                that.$message.success("成功");
              }
            });
          } else {
            return false;
          }
        });
      },
      //新增资质
      qualiCreate() {
        this.dialogType = 'new';
        this.dialogVisible = true;
      },
      //编辑资质
      qualiUpdate() {
        this.dialogType = 'edit';
        this.showForm = false;
        this.dialogVisibleQuliEdit = true;
        this.getQuliList();
      },
      getQuliList() {
        getQualityMy().then(res => {
          this.quliList = res.data.results;
        })
      },
      //更改资质类型
      qualiTypeChange() {
        this.qualiForm.grade = '';
        this.qualiForm.level = '';
        if (this.qualiForm.type === 'OTHER') {
          this.qualiForm.city = '';
          this.qualiForm.province = '';
        }else{
          this.citys=[];
        }
      },
      //编辑资质
      handleEdit(row) {
        this.city_name = '';
        this.province_name = '';
        this.citysName = '';
        this.showForm = true;
        this.qualiForm.id =row.id?row.id:'';
        this.qualiForm.name = row.name?row.name:'';
        this.qualiForm.type = row.type?row.type:'';
        this.qualiForm.grade = row.grade?row.grade:'';
        this.qualiForm.scope = row.scope?row.scope:'';
        this.qualiForm.level = row.level?row.level:'';
        this.qualiForm.province = row.province?row.province:'';
        this.qualiForm.end_date = row.end_date?row.end_date:'';
        this.province_name = row.province_name?row.province_name:'';
        this.qualiForm.city = row.city?row.city:'';
        this.qualiForm.file = row.file?row.file:'';
        this.city_name = row.city_name?row.city_name:'';
        this.qualiForm.description = row.description?row.description:'';
        this.qualiForm.citys = row.citys?row.citys:[];
        if(row.citys_&&row.citys_.length>0){
          let citys = '';
          row.citys_.forEach(item=>{
            citys = citys+item.name;
          });
          this.citysName = citys;
        }
      },
      //新增能力
      abilityCreate() {
        this.dialogVisibleAbility = true;
      },
      //提交资质
      async confirm(form) {
        let that = this;
        that.$refs[form].validate((valid) => {
          if (valid) {
            let obj = new Object();
            obj.qtask = that.qtask;

            let value2 = new Object();
            for (let [key, value] of Object.entries(that.qualiForm)) {
              console.log(key,value);
              if(value!==''&&value!==null&&value!==undefined){
                value2[key]  = value;
              }
            }
            value2.citys.forEach((item,index)=>{
              value2.citys[index] = parseInt(item);
            });
            obj.value2 = value2;
            debugger;
            console.log(obj);
            console.log(obj.value2);
            console.log(obj.value2.citys);
            debugger;

            const isEdit = that.dialogType === "edit";
            if (isEdit) {
              updateQuali(obj).then((res) => {
                if (res.code >= 200 && res.code < 400) {
                  that.getList();
                  that.dialogVisibleQuliEdit = false;
                  that.$message.success("成功");
                }
              });
            } else {
              debugger;
              console.log(obj);
              createQuali(obj).then((res) => {
                if (res.code >= 200 && res.code < 400) {
                  that.getList();
                  that.dialogVisible = false;
                  that.$message.success("成功");
                }
              });
            }
          } else {
            return false;
          }
        });
      },
      //提交服务更新
      async confirmAbility(form) {
        let that = this;
        that.$refs[form].validate((valid) => {
          if (valid) {
            that.abilityForm.qtask = that.qtask;
            createAbility(that.abilityForm).then((res) => {
              if (res.code >= 200 && res.code < 400) {
                that.getList();
                that.dialogVisibleAbility = false;
                that.$message.success("成功");
              }
            });
          } else {
            return false;
          }
        });
      },
      handleDetail(type,item){
        let that = this;
        that.drawer = true;
        this.showData.id = item.id;
        this.showData.data = item;
        this.showData.type = item.action;
        this.showData.action = type;
        this.actionType = type;
        this.fieldList2 =[];
      if(item.action==='ablity:create'||item.action==='service:update'){
      }else{
        qactionItem(item.id).then(res=>{
          if (res.code>=200) {
            let updateDetail = res.data.update_detail;//更改字段
            updateDetail.forEach(item=>{
              this.fieldList2.push(item.field);//所有字段
            });
            this.drawer = true;
          }
          console.log(this.fieldList2)
        })
      }
      },
      //删除操作
      handleDelete(id) {
        let that = this;
        that.$confirm("确认删除该操作吗?", "提示")
          .then(async () => {
            await qactionDelete(id).then(res => {
              if (res.code >= 200 && res.code < 400) {
                that.getList();
                that.$message.success("成功");
              }
            });
          })
          .catch((err) => {
            console.error(err);
          });
      },
    },
  }
</script>

<style scoped>

</style>
