Browse Source

一系列改造适配

wanger 7 tháng trước cách đây
mục cha
commit
42da16cf4c

+ 44 - 0
manager/src/api/system/scmx.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询规划成果审查模型配置列表
+export function listScmx(query) {
+  return request({
+    url: '/system/scmx/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询规划成果审查模型配置详细
+export function getScmx(id) {
+  return request({
+    url: '/system/scmx/' + id,
+    method: 'get'
+  })
+}
+
+// 新增规划成果审查模型配置
+export function addScmx(data) {
+  return request({
+    url: '/system/scmx',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改规划成果审查模型配置
+export function updateScmx(data) {
+  return request({
+    url: '/system/scmx',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除规划成果审查模型配置
+export function delScmx(id) {
+  return request({
+    url: '/system/scmx/' + id,
+    method: 'delete'
+  })
+}

+ 368 - 0
manager/src/views/system/scmx/index.vue

@@ -0,0 +1,368 @@
+<template>
+  <div class="app-container">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+      label-width="68px"
+    >
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="审批用户" prop="users">
+        <el-select v-model="queryParams.users" placeholder="审批用户" clearable>
+          <el-option
+            v-for="dict in userlist"
+            :key="dict.userName"
+            :label="dict.nickName"
+            :value="dict.userName"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:scmx:add']"
+          >新增</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:scmx:edit']"
+          >修改</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:scmx:remove']"
+          >删除</el-button
+        >
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:scmx:export']"
+          >导出</el-button
+        >
+      </el-col>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="scmxList"
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="名称" align="center" prop="name">
+        <!-- <template slot-scope="scope">
+          <dict-tag :value="scope.row.name" />
+        </template> -->
+      </el-table-column>
+      <el-table-column
+        label="审批用户集合,有先后顺序"
+        align="center"
+        prop="users"
+      >
+        <!-- <template slot-scope="scope">
+          <dict-tag :value="scope.row.users" />
+        </template> -->
+      </el-table-column>
+      <el-table-column label="说明" align="center" prop="remark">
+        <!-- <template slot-scope="scope">
+          <dict-tag :value="scope.row.remark" />
+        </template> -->
+      </el-table-column>
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:scmx:edit']"
+            >修改</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:scmx:remove']"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改规划成果审查模型配置对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="主键id" prop="id">
+          <el-input v-model="form.id" placeholder="请输入主键id" disabled />
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="审批用户集合,有先后顺序" prop="users">
+          <el-select
+            v-model="form.users"
+            placeholder="请选择审批用户集合,有先后顺序"
+            multiple
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="dict in userlist"
+              :key="dict.userName"
+              :label="dict.nickName"
+              :value="dict.userName"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="说明" prop="remark">
+          <el-input v-model="form.remark" placeholder="请输入说明" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listScmx,
+  getScmx,
+  delScmx,
+  addScmx,
+  updateScmx,
+} from "@/api/system/scmx";
+
+import { listUser } from "@/api/system/user";
+
+export default {
+  name: "Scmx",
+  data() {
+    return {
+      userlist: [],
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 规划成果审查模型配置表格数据
+      scmxList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        name: null,
+        users: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
+        remark: [{ required: true, message: "说明不能为空", trigger: "blur" }],
+      },
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询规划成果审查模型配置列表 */
+    getList() {
+      this.loading = true;
+      listScmx(this.queryParams).then((response) => {
+        this.scmxList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+      listUser({
+        pageNum: 1,
+        pageSize: 10000,
+      }).then((response) => {
+        this.userlist = response.rows;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        name: null,
+        users: null,
+        remark: null,
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.id);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加规划成果审查模型配置";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids;
+      getScmx(id).then((response) => {
+        if (response.data.users) {
+          response.data.users = response.data.users.split(",");
+        } else {
+          response.data.users = [];
+        }
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改规划成果审查模型配置";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      debugger;
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          console.log(this.form.users);
+          if (this.form.users.length == 0) {
+            this.form.users = "";
+          } else {
+            this.form.users = this.form.users.join();
+          }
+          if (this.form.id != null) {
+            updateScmx(this.form).then((response) => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addScmx(this.form).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal
+        .confirm(
+          '是否确认删除规划成果审查模型配置编号为"' + ids + '"的数据项?'
+        )
+        .then(function () {
+          return delScmx(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download(
+        "system/scmx/export",
+        {
+          ...this.queryParams,
+        },
+        `scmx_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
+};
+</script>

+ 35 - 0
website/src/api/ghcgysc/cggl.js

@@ -127,4 +127,39 @@ export function alllist(parameter) {
             'Content-Type': 'application/json;charset=UTF-8'
         }
     })
+}
+//获取人工审查模型列表
+export function scmxlist(parameter) {
+    return request({
+        url: '/apply/cggl/scmx',
+        method: 'get',
+        params: parameter,
+        headers: {
+            'Content-Type': 'application/json;charset=UTF-8'
+        }
+    })
+}
+
+//发起总体规划成果审查
+export function startcgsc(parameter) {
+    return request({
+        url: '/apply/cggl/startcgsc',
+        method: 'post',
+        data: parameter,
+        headers: {
+            'Content-Type': 'application/json;charset=UTF-8'
+        }
+    })
+}
+
+//发起村庄规划成果审查
+export function startczghcgsc(parameter) {
+    return request({
+        url: '/apply/xzczghcgsb/startcgsc',
+        method: 'post',
+        data: parameter,
+        headers: {
+            'Content-Type': 'application/json;charset=UTF-8'
+        }
+    })
 }

+ 446 - 455
website/src/components/ghcgscygl/cgsh/shenHeRule.vue

@@ -1,185 +1,189 @@
 <template>
-    <div
-        style="width: 100%; height: calc(100% - 10px); display: flex; flex-direction: column;overflow: auto;"
+  <div
+    style="
+      width: 100%;
+      height: calc(100% - 10px);
+      display: flex;
+      flex-direction: column;
+      overflow: auto;
+    "
+  >
+    <table
+      v-if="JQTbData.length > 0"
+      class="table-auto"
+      border="0"
+      cellspacing="0"
+      cellpadding="0"
+      style="border-collapse: collapse"
+      width="100%"
     >
-        <table
-            v-if="JQTbData.length>0"
-            class="table-auto"
-            border="0"
-            cellspacing="0"
-            cellpadding="0"
-            style="border-collapse: collapse"
-            width="100%"
-        >
-            <thead>
-                <tr class="thead-content">
-                    <td colspan="2">自动审查</td>
-                </tr>
-            </thead>
-            <tbody v-for="item in JQTbData" :key="item.id">
-                <tr>
-                    <td colspan="1" class="tb-head-title">
-                        {{ item.rulename }}
-                    </td>
-                    <td class="field">
-                        <el-button
-                            type="primary"
-                            link
-                            @click="viewAutoDetail(item.children,item.rulename)"
-                            >详情</el-button
-                        >
-                    </td>
-                </tr>
-                <tr v-for="option in item.children" :key="option.id">
-                    <td valign="center" class="tb-title">
-                        {{ option.rulename }}
-                    </td>
-                    <td valign="center" class="field">
-                        {{ option.taskresult !== "正在审查" ? option.taskresult : "无数据" }}
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-        <table
-            v-if="RGTbData.length>0"
-            class="table-auto"
-            border="0"
-            cellspacing="0"
-            cellpadding="0"
-            style="border-collapse: collapse"
-            width="100%"
-        >
-            <thead>
-                <tr class="thead-content">
-                    <td colspan="2">人工审查</td>
-                </tr>
-            </thead>
-            <tbody v-for="item in RGTbData" :key="item.id">
-                <tr>
-                    <td colspan="2" class="tb-head-title">
-                        {{ item.rulename }}
-                    </td>
-                </tr>
-                <tr v-for="option in item.children" :key="option.id">
-                    <td valign="center" class="tb-title">
-                        {{ option.rulename }}
-                    </td>
-                    <td valign="center" class="field">
-                        <el-radio-group
-                            v-model="option.bz"
-                            class="ml-4"
-                            :disabled="!canSC"
-                        >
-                            <el-radio label="是" size="small">是</el-radio>
-                            <el-radio label="否" size="small">否</el-radio>
-                        </el-radio-group>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-        <table
-            class="table-auto"
-            border="0"
-            cellspacing="0"
-            cellpadding="0"
-            style="flex: 1; border-collapse: collapse"
-            width="100%"
-        >
-            <thead>
-                <tr class="thead-content">
-                    <td colspan="2">审查意见(必填)</td>
-                </tr>
-            </thead>
-            <tbody>
-                <tr>
-                    <td
-                        style="padding: 0; border: none"
-                        rowspan="5"
-                        colspan="1"
-                        valign="center"
-                        class="field"
-                        name="problemDescription"
-                        @click="clickIpt($event)"
-                    >
-                        <el-input
-                            :disabled="!canSC"
-                            resize="none"
-                            ref="inputRef"
-                            @blur="canedit = false"
-                            v-model="scyj"
-                            :autosize="{ minRows: 7, maxRows: 7 }"
-                            type="textarea"
-                        ></el-input>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-        <div
-            style="
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                height: 50px;
-                margin-top:10px
-            "
-        >
-            <el-button
-                :disabled="!canSC"
-                @click="save"
-                type="primary"
-                size="small"
-                style="width: 80px"
-                >保存</el-button
-            >
+      <thead>
+        <tr class="thead-content">
+          <td colspan="2">自动审查</td>
+        </tr>
+      </thead>
+      <tbody v-for="item in JQTbData" :key="item.id">
+        <tr>
+          <td colspan="1" class="tb-head-title">
+            {{ item.rulename }}
+          </td>
+          <td class="field">
             <el-button
-                :disabled="!canSC"
-                @click="complete"
-                type="primary"
-                size="small"
-                style="width: 80px"
-                >完结</el-button
+              type="primary"
+              link
+              @click="viewAutoDetail(item.children, item.rulename)"
+              >详情</el-button
             >
-            <el-button
-                :disabled="!canSC"
-                @click="reback"
-                type="primary"
-                size="small"
-                style="width: 80px"
-                >退回</el-button
-            >
-        </div>
-        <kjyzxDialog
-            v-if="showDialog === '空间一致性'"
-            v-model:showDialog="showDialog"
-            :data="detailData"
-            style="z-index: 99999"
-        >
-        </kjyzxDialog>
-        <kjzrDialog
-            v-if="showDialog === '空间准入'"
-            v-model:showDialog="showDialog"
-            :data="detailData"
-            style="z-index: 99999"
-            v-model:cg_option_item="cg_option_item"
-        >
-        </kjzrDialog>
-        <zbfhxDialog
-            v-if="showDialog === '指标符合性'"
-            v-model:showDialog="showDialog"
-            :data="detailData"
-            style="z-index: 99999"
-        >
-        </zbfhxDialog>
+          </td>
+        </tr>
+        <tr v-for="option in item.children" :key="option.id">
+          <td valign="center" class="tb-title">
+            {{ option.rulename }}
+          </td>
+          <td valign="center" class="field">
+            {{
+              option.taskresult !== "正在审查" ? option.taskresult : "无数据"
+            }}
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <table
+      v-if="RGTbData.length > 0"
+      class="table-auto"
+      border="0"
+      cellspacing="0"
+      cellpadding="0"
+      style="border-collapse: collapse"
+      width="100%"
+    >
+      <thead>
+        <tr class="thead-content">
+          <td colspan="2">人工审查</td>
+        </tr>
+      </thead>
+      <tbody v-for="item in RGTbData" :key="item.id">
+        <tr>
+          <td colspan="2" class="tb-head-title">
+            {{ item.rulename }}
+          </td>
+        </tr>
+        <tr v-for="option in item.children" :key="option.id">
+          <td valign="center" class="tb-title">
+            {{ option.rulename }}
+          </td>
+          <td valign="center" class="field">
+            <el-radio-group v-model="option.bz" class="ml-4" :disabled="!canSC">
+              <el-radio label="是" size="small">是</el-radio>
+              <el-radio label="否" size="small">否</el-radio>
+            </el-radio-group>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <table
+      class="table-auto"
+      border="0"
+      cellspacing="0"
+      cellpadding="0"
+      style="flex: 1; border-collapse: collapse"
+      width="100%"
+    >
+      <thead>
+        <tr class="thead-content">
+          <td colspan="2">审查意见(必填)</td>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td
+            style="padding: 0; border: none"
+            rowspan="5"
+            colspan="1"
+            valign="center"
+            class="field"
+            name="problemDescription"
+            @click="clickIpt($event)"
+          >
+            <el-input
+              :disabled="!canSC"
+              resize="none"
+              ref="inputRef"
+              @blur="canedit = false"
+              v-model="scyj"
+              :autosize="{ minRows: 7, maxRows: 7 }"
+              type="textarea"
+            ></el-input>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <div
+      style="
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        height: 50px;
+        margin-top: 10px;
+      "
+    >
+      <el-button
+        :disabled="!canSC"
+        @click="save"
+        type="primary"
+        size="small"
+        style="width: 80px"
+        >通过</el-button
+      >
+      <!-- <el-button
+        :disabled="!canSC"
+        @click="complete"
+        type="primary"
+        size="small"
+        style="width: 80px"
+        >完结</el-button
+      > -->
+      <el-button
+        :disabled="!canSC"
+        @click="reback"
+        type="primary"
+        size="small"
+        style="width: 80px"
+        >退回</el-button
+      >
     </div>
+    <kjyzxDialog
+      v-if="showDialog === '空间一致性'"
+      v-model:showDialog="showDialog"
+      :data="detailData"
+      style="z-index: 99999"
+    >
+    </kjyzxDialog>
+    <kjzrDialog
+      v-if="showDialog === '空间准入'"
+      v-model:showDialog="showDialog"
+      :data="detailData"
+      style="z-index: 99999"
+      v-model:cg_option_item="cg_option_item"
+    >
+    </kjzrDialog>
+    <zbfhxDialog
+      v-if="showDialog === '指标符合性'"
+      v-model:showDialog="showDialog"
+      :data="detailData"
+      style="z-index: 99999"
+    >
+    </zbfhxDialog>
+  </div>
 </template>
-  
+
 <script>
 import { reactive, toRefs } from "@vue/reactivity";
 import {
-    onMounted,
-    watch,
-    getCurrentInstance,
-    onBeforeUnmount,
+  onMounted,
+  watch,
+  getCurrentInstance,
+  onBeforeUnmount,
 } from "@vue/runtime-core";
 import { useStore } from "vuex";
 import { ref, nextTick } from "vue";
@@ -191,312 +195,299 @@ import { useRouter } from "vue-router";
 import { jqlist, rjlist, getzjy, saveandend } from "@/api/ghcgysc/cggl.js";
 
 export default {
-    components: {
-        kjyzxDialog,
-        kjzrDialog,
-        zbfhxDialog,
+  components: {
+    kjyzxDialog,
+    kjzrDialog,
+    zbfhxDialog,
+  },
+  props: {
+    fileView: {
+      type: Boolean,
     },
-    props: {
-        fileView: {
-            type: Boolean,
-        },
-        cg_option_item: {
-            type: Object,
-        },
+    cg_option_item: {
+      type: Object,
     },
-    setup(prop, context) {
-        const parent = { ...context };
-        const { proxy } = getCurrentInstance();
-        const router = useRouter();
-        const shenHeRule = reactive({
-            canSC: false, // 完结/退回不可编辑,待审/审查中可编辑
-            showDialog: "", // 自动审查的审查详情弹窗
-            detailData: {}, // 自动审查详情某项弹窗数据
-            RGTbData: [], // 人工审查规则项
-            JQTbData: [], // 机器审查规则项
-            scyj: "", // 审查意见内容
-            RGSCDatas_origin: [], // 人工审查原始数据
-            canedit: false, // 审查意见输入框状态
-            timer: null, // 定时器,实时获取自动审查数据
-            // 点击了审查意见输入框
-            clickIpt(e) {
-                if (shenHeRule.canSC) {
-                    shenHeRule.canedit = true;
-                    nextTick(() => {
-                        proxy.$refs.inputRef.focus();
-                    });
-                }
-            },
-            // 自动审查详情
-            viewAutoDetail(data,type) {
-                shenHeRule.showDialog = type;
-                shenHeRule.detailData = data;
-            },
-            // 保存 --- 临时保存接口  ,保存人工审查和审查意见
-            save() {
-                if (!shenHeRule.scyj) {
-                    ElMessage.warning("请填写审查意见");
-                    return;
-                }
-                let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map((item) => {
-                    let obj = shenHeRule.getObjById(
-                        shenHeRule.RGTbData,
-                        item.id
-                    );
-                    item.bz = obj.bz;
-                    item.taskresult = '保存';
-                    return item;
-                });
-                let params = {
-                    lists: JSON.stringify(RGSCDatas_new),
-                    scyj: shenHeRule.scyj,
-                    sczt: "保存",
-                    gcid:prop.cg_option_item.id
-                };
-                saveandend(params)
-                    .then((res) => {
-                        if (res.success) {
-                            ElMessage.success(res.message);
-                        } else {
-                            ElMessage.warning(res.message);
-                        }
-                    })
-                    .catch((e) => {
-                        ElMessage.warning(e);
-                    });
-            },
-            // 完结
-            complete() {
-                ElMessageBox.confirm(
-                    "该操作将保存审查内容,且无法修改审查内容,确定要完结审查吗?",
-                    "提示",
-                    {
-                        confirmButtonText: "确定",
-                        cancelButtonText: "取消",
-                        type: "warning",
-                    }
-                )
-                    .then(() => {
-                        if (!shenHeRule.scyj) {
-                            ElMessage.warning("请填写审查意见");
-                            return;
-                        }
-                        let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map(
-                            (item) => {
-                                let obj = shenHeRule.getObjById(
-                                    shenHeRule.RGTbData,
-                                    item.id
-                                );
-                                item.bz = obj.bz;
-                                item.taskresult = '完结';
-                                return item;
-                            }
-                        );
-                        let params = {
-                            lists: JSON.stringify(RGSCDatas_new),
-                            scyj: shenHeRule.scyj,
-                            sczt: "完结",
-                            gcid:prop.cg_option_item.id
-                        };
-                        saveandend(params).then((res) => {
-                            if (res.success) {
-                                ElMessage.success(res.message);
-                                router.push("/ghcgscygl/cgsc/cgwj");
-                            } else {
-                                ElMessage.warning(res.message);
-                            }
-                        });
-                    })
-                    .catch((e) => {
-                        ElMessage.warning(e);
-                    });
-            },
-            // 退回
-            reback() {
-                ElMessageBox.confirm(
-                    "该操作将规划成果退回至提交方,确定要退回吗?",
-                    "提示",
-                    {
-                        confirmButtonText: "确定",
-                        cancelButtonText: "取消",
-                        type: "warning",
-                    }
-                )
-                    .then(() => {
-                        if (!shenHeRule.scyj) {
-                            ElMessage.warning("请填写审查意见");
-                            return;
-                        }
-                        let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map(
-                            (item) => {
-                                item.taskresult = '退回';
-                                return item;
-                            }
-                        );
-                        let params = {
-                            lists: JSON.stringify(RGSCDatas_new),
-                            scyj: shenHeRule.scyj,
-                            sczt: "退回",
-                            gcid:prop.cg_option_item.id
-                        };
-                        saveandend(params).then((res) => {
-                            if (res.success) {
-                                ElMessage.success(res.message);
-                                router.push("/ghcgscygl/cgsc/cgth");
-                            } else {
-                                ElMessage.warning(res.message);
-                            }
-                        });
-                    })
-                    .catch((e) => {
-                        ElMessage.warning(e);
-                    });
-            },
-            // 实时获取机器审查数据
-            getJQList() {
-                jqlist({ gcid: prop.cg_option_item.id }).then((res) => {
-                    shenHeRule.JQTbData = shenHeRule.toTree(res.data);
-                });
-                if( ['待审','审查中'].indexOf(prop.cg_option_item.sczt) > -1)
-                shenHeRule.timer = setInterval(() => {
-                    // 机器审查结果
-                    jqlist({ gcid: prop.cg_option_item.id }).then((res) => {
-                        shenHeRule.JQTbData = shenHeRule.toTree(res.data);
-                    });
-                }, 20000);
-            },
-            // 获取自动、人工、审查意见,调用三个接口  TODO还有左侧成果包列表一个接口
-            initSCGZ() {
-                shenHeRule.getJQList();
-                // 人机审查结果
-                rjlist({ gcid: prop.cg_option_item.id }).then((res) => {
-                    shenHeRule.RGSCDatas_origin = res.data;
-                    shenHeRule.RGTbData = shenHeRule.toTree(res.data);
-                });
-                // 总体审查意见
-                getzjy({ gcid: prop.cg_option_item.id }).then((res) => {
-                    if (res.success) {
-                        shenHeRule.scyj = res.data;
-                    }
-                });
-            },
-            // 生成树
-            toTree(data) {
-                let result = [];
-                if (!Array.isArray(data)) {
-                    return result;
-                }
-                let map = {};
-                data.forEach((item) => {
-                    if (!item.bz) {
-                        item.bz = "是";
-                    }
-                    map[item.id] = item;
-                });
-                data.forEach((item) => {
-                    let parent = map[item.pid];
-                    if (parent) {
-                        (parent.children || (parent.children = [])).push(item);
-                    } else {
-                        result.push(item);
-                    }
-                });
-                return result;
-            },
-            /**
-             * 根据树形唯一value获取对应节点
-             * @param {*} list
-             * @param {*} value
-             * @returns
-             */
-            getObjById(list, value) {
-                //判断list是否是数组
-                if (!list instanceof Array) {
-                    return null;
-                }
-                //遍历数组
-                for (let i in list) {
-                    let item = list[i];
-                    if (item.id === value) {
-                        return item;
-                    } else {
-                        //查不到继续遍历
-                        if (item.children) {
-                            let value1 = shenHeRule.getObjById(
-                                item.children,
-                                value
-                            );
-                            //查询到直接返回
-                            if (value1) {
-                                return value1;
-                            }
-                        }
-                    }
-                }
-            },
+  },
+  setup(prop, context) {
+    const parent = { ...context };
+    const { proxy } = getCurrentInstance();
+    const router = useRouter();
+    const shenHeRule = reactive({
+      canSC: false, // 完结/退回不可编辑,待审/审查中可编辑
+      showDialog: "", // 自动审查的审查详情弹窗
+      detailData: {}, // 自动审查详情某项弹窗数据
+      RGTbData: [], // 人工审查规则项
+      JQTbData: [], // 机器审查规则项
+      scyj: "", // 审查意见内容
+      RGSCDatas_origin: [], // 人工审查原始数据
+      canedit: false, // 审查意见输入框状态
+      timer: null, // 定时器,实时获取自动审查数据
+      // 点击了审查意见输入框
+      clickIpt(e) {
+        if (shenHeRule.canSC) {
+          shenHeRule.canedit = true;
+          nextTick(() => {
+            proxy.$refs.inputRef.focus();
+          });
+        }
+      },
+      // 自动审查详情
+      viewAutoDetail(data, type) {
+        shenHeRule.showDialog = type;
+        shenHeRule.detailData = data;
+      },
+      // 保存 --- 临时保存接口  ,保存人工审查和审查意见
+      save() {
+        if (!shenHeRule.scyj) {
+          ElMessage.warning("请填写审查意见");
+          return;
+        }
+        let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map((item) => {
+          let obj = shenHeRule.getObjById(shenHeRule.RGTbData, item.id);
+          item.bz = obj.bz;
+          item.taskresult = "保存";
+          return item;
         });
-        watch(
-            () => prop.fileView,
-            (count) => {
-                nextTick(() => {});
-            }
-        );
-        onMounted(() => {
-            if (["完结", "退回"].indexOf(prop.cg_option_item.sczt) > -1) {
-                shenHeRule.canSC = false;
+        let params = {
+          lists: JSON.stringify(RGSCDatas_new),
+          scyj: shenHeRule.scyj,
+          sczt: "保存",
+          gcid: prop.cg_option_item.id,
+        };
+        saveandend(params)
+          .then((res) => {
+            if (res.success) {
+              ElMessage.success(res.message);
             } else {
-                shenHeRule.canSC = true;
+              ElMessage.warning(res.message);
             }
-            shenHeRule.initSCGZ();
+          })
+          .catch((e) => {
+            ElMessage.warning(e);
+          });
+      },
+      // 完结
+      complete() {
+        ElMessageBox.confirm(
+          "该操作将保存审查内容,且无法修改审查内容,确定要完结审查吗?",
+          "提示",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          },
+        )
+          .then(() => {
+            if (!shenHeRule.scyj) {
+              ElMessage.warning("请填写审查意见");
+              return;
+            }
+            let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map((item) => {
+              let obj = shenHeRule.getObjById(shenHeRule.RGTbData, item.id);
+              item.bz = obj.bz;
+              item.taskresult = "完结";
+              return item;
+            });
+            let params = {
+              lists: JSON.stringify(RGSCDatas_new),
+              scyj: shenHeRule.scyj,
+              sczt: "完结",
+              gcid: prop.cg_option_item.id,
+            };
+            saveandend(params).then((res) => {
+              if (res.success) {
+                ElMessage.success(res.message);
+                router.push("/ghcgscygl/cgsc/cgwj");
+              } else {
+                ElMessage.warning(res.message);
+              }
+            });
+          })
+          .catch((e) => {
+            ElMessage.warning(e);
+          });
+      },
+      // 退回
+      reback() {
+        ElMessageBox.confirm(
+          "该操作将规划成果退回至提交方,确定要退回吗?",
+          "提示",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+          },
+        )
+          .then(() => {
+            if (!shenHeRule.scyj) {
+              ElMessage.warning("请填写审查意见");
+              return;
+            }
+            let RGSCDatas_new = shenHeRule.RGSCDatas_origin.map((item) => {
+              item.taskresult = "退回";
+              return item;
+            });
+            let params = {
+              lists: JSON.stringify(RGSCDatas_new),
+              scyj: shenHeRule.scyj,
+              sczt: "退回",
+              gcid: prop.cg_option_item.id,
+            };
+            saveandend(params).then((res) => {
+              if (res.success) {
+                ElMessage.success(res.message);
+                router.push("/ghcgscygl/cgsc/cgth");
+              } else {
+                ElMessage.warning(res.message);
+              }
+            });
+          })
+          .catch((e) => {
+            ElMessage.warning(e);
+          });
+      },
+      // 实时获取机器审查数据
+      getJQList() {
+        jqlist({ gcid: prop.cg_option_item.id }).then((res) => {
+          shenHeRule.JQTbData = shenHeRule.toTree(res.data);
         });
-        // 页面销毁之前清除定时器
-        onBeforeUnmount(() => {
-            clearInterval(shenHeRule.timer);
-            shenHeRule.timer = null;
+        if (["待审", "审查中"].indexOf(prop.cg_option_item.sczt) > -1)
+          shenHeRule.timer = setInterval(() => {
+            // 机器审查结果
+            jqlist({ gcid: prop.cg_option_item.id }).then((res) => {
+              shenHeRule.JQTbData = shenHeRule.toTree(res.data);
+            });
+          }, 20000);
+      },
+      // 获取自动、人工、审查意见,调用三个接口  TODO还有左侧成果包列表一个接口
+      initSCGZ() {
+        shenHeRule.getJQList();
+        // 人机审查结果
+        rjlist({ gcid: prop.cg_option_item.id }).then((res) => {
+          shenHeRule.RGSCDatas_origin = res.data;
+          shenHeRule.RGTbData = shenHeRule.toTree(res.data);
         });
-        return { ...toRefs(shenHeRule) };
-    },
+        // 总体审查意见
+        getzjy({ gcid: prop.cg_option_item.id }).then((res) => {
+          if (res.success) {
+            shenHeRule.scyj = res.data;
+          }
+        });
+      },
+      // 生成树
+      toTree(data) {
+        let result = [];
+        if (!Array.isArray(data)) {
+          return result;
+        }
+        let map = {};
+        data.forEach((item) => {
+          if (!item.bz) {
+            item.bz = "是";
+          }
+          map[item.id] = item;
+        });
+        data.forEach((item) => {
+          let parent = map[item.pid];
+          if (parent) {
+            (parent.children || (parent.children = [])).push(item);
+          } else {
+            result.push(item);
+          }
+        });
+        return result;
+      },
+      /**
+       * 根据树形唯一value获取对应节点
+       * @param {*} list
+       * @param {*} value
+       * @returns
+       */
+      getObjById(list, value) {
+        //判断list是否是数组
+        if (!list instanceof Array) {
+          return null;
+        }
+        //遍历数组
+        for (let i in list) {
+          let item = list[i];
+          if (item.id === value) {
+            return item;
+          } else {
+            //查不到继续遍历
+            if (item.children) {
+              let value1 = shenHeRule.getObjById(item.children, value);
+              //查询到直接返回
+              if (value1) {
+                return value1;
+              }
+            }
+          }
+        }
+      },
+    });
+    watch(
+      () => prop.fileView,
+      (count) => {
+        nextTick(() => {});
+      },
+    );
+    onMounted(() => {
+      if (["完结", "退回"].indexOf(prop.cg_option_item.sczt) > -1) {
+        shenHeRule.canSC = false;
+      } else {
+        shenHeRule.canSC = true;
+      }
+      shenHeRule.initSCGZ();
+    });
+    // 页面销毁之前清除定时器
+    onBeforeUnmount(() => {
+      clearInterval(shenHeRule.timer);
+      shenHeRule.timer = null;
+    });
+    return { ...toRefs(shenHeRule) };
+  },
 };
 </script>
-  
+
 <style lang="less" scoped>
 .table-auto tr {
-    min-height: 30px;
+  min-height: 30px;
 }
 
 .table-auto tr:hover {
-    background-color: #f5f7fb;
+  background-color: #f5f7fb;
 }
 
 .table-auto .thead-content {
-    background-color: #f8f8f8;
-    text-align: center;
-    font-size: 14px;
-    font-weight: 600;
-    // height: 35px;
+  background-color: #f8f8f8;
+  text-align: center;
+  font-size: 14px;
+  font-weight: 600;
+  // height: 35px;
 }
 
 .table-auto .tb-head-title {
-    font-size: 14px;
-    text-align: left;
-    border: solid #ccc 1px;
-    padding-left: 5px;
+  font-size: 14px;
+  text-align: left;
+  border: solid #ccc 1px;
+  padding-left: 5px;
 }
 
 .table-auto .tb-title {
-    padding-left: 40px;
-    text-align: left;
-    border: solid #ccc 1px;
-    white-space: normal;
-    word-break: break-all;
-    width: 75%;
+  padding-left: 40px;
+  text-align: left;
+  border: solid #ccc 1px;
+  white-space: normal;
+  word-break: break-all;
+  width: 75%;
 }
 
 .table-auto .field {
-    font-size: 14px;
-    text-align: center;
-    border: solid #ccc 1px;
-    padding: 0 10px;
-    width: 30%;
+  font-size: 14px;
+  text-align: center;
+  border: solid #ccc 1px;
+  padding: 0 10px;
+  width: 30%;
 }
-</style>
+</style>

+ 26 - 4
website/src/components/ghcgscygl/ghcgsb/xxgh/czgh/Qxyh/czghcgDialog.vue

@@ -117,6 +117,19 @@
             />
           </el-form-item>
         </el-col>
+        <!-- <el-col style="padding-top: 20px">
+          <el-form-item label="审查模型:">
+            <el-select
+              v-model="formData.scmodel"
+              placeholder="请选择"
+              style="width: 370px"
+            >
+              <el-option
+                v-for="item in scmxList"
+                :label="item.name"
+                :value="item.id"
+              ></el-option> </el-select></el-form-item
+        ></el-col> -->
         <el-col style="padding-top: 20px">
           <el-form-item label="流程主键:" v-show="formData.instid != ''">
             <el-input
@@ -160,6 +173,7 @@
 import store from "@/store";
 import { reactive, toRefs, ref, unref } from "@vue/reactivity";
 import { GetXzq } from "@/api/homeApi.js";
+import { scmxlist } from "@/api/ghcgysc/cggl.js";
 import { UploadXzczghcgsbFile, Insert } from "@/api/ghcgysc/czghApi.js";
 import { ElMessage, ElLoading } from "element-plus";
 export default {
@@ -181,10 +195,10 @@ export default {
       ruleForm: ref(null),
       yearLx: "年月日", // 时间类型
       formData: {
-        cglevel: 0,
+        cglevel: 1,
         filePath: "",
         fileName: "",
-        status: 11,
+        status: 10,
         uploadStatus: 2,
         county: "", // 所在旗县
         town: "", // 所在乡镇
@@ -193,7 +207,9 @@ export default {
         xzqName: "", // 行政区名称
         year: "", // 规划成果时间
         instid: "",
+        scmodel: "",
       },
+      scmxList: [],
       fileList: [],
       fileType: ["zip"], // 文件类型
       xzoptions: [],
@@ -219,12 +235,17 @@ export default {
           });
           if (!isTypeOk) {
             ElMessage.error(
-              `文件格式不正确, 请上传${addDialog.fileType.join("/")}格式文件!`
+              `文件格式不正确, 请上传${addDialog.fileType.join("/")}格式文件!`,
             );
             return false;
           }
         }
       },
+      getScmxlist() {
+        scmxlist().then((res) => {
+          addDialog.scmxList = res.data;
+        });
+      },
       // 获取行政区
       getXzq() {
         GetXzq({ city: true }).then((res) => {
@@ -299,7 +320,7 @@ export default {
                 parent.emit("update:ghcgscDialog", false);
                 if (addDialog.formData.instid) {
                   ElMessage.success(
-                    "成果包上传成功,请等待市级上报,请勿重复上传!"
+                    "成果包上传成功,请等待市级上报,请勿重复上传!",
                   );
                 } else {
                   ElMessage.success("成果包上传成功");
@@ -323,6 +344,7 @@ export default {
     onMounted(() => {
       addDialog.formData.instid = props.instid || "";
       addDialog.getXzq();
+      addDialog.getScmxlist();
     });
     return { ...toRefs(addDialog) };
   },

+ 24 - 2
website/src/components/ghcgscygl/ghcgsb/xxgh/xxgh/Qxyh/czghcgDialog.vue

@@ -117,6 +117,19 @@
             />
           </el-form-item>
         </el-col>
+        <!-- <el-col style="padding-top: 20px">
+          <el-form-item label="审查模型:">
+            <el-select
+              v-model="formData.scmodel"
+              placeholder="请选择"
+              style="width: 370px"
+            >
+              <el-option
+                v-for="item in scmxList"
+                :label="item.name"
+                :value="item.id"
+              ></el-option> </el-select></el-form-item
+        ></el-col> -->
         <el-col style="padding-top: 20px">
           <el-form-item label="流程主键:" v-show="formData.instid != ''">
             <el-input
@@ -160,6 +173,7 @@
 import store from "@/store";
 import { reactive, toRefs, ref, unref } from "@vue/reactivity";
 import { GetXzq } from "@/api/homeApi.js";
+import { scmxlist } from "@/api/ghcgysc/cggl.js";
 import { UploadXxghcgsbFile, Insert } from "@/api/ghcgysc/xxghApi.js";
 import { ElMessage, ElLoading } from "element-plus";
 export default {
@@ -193,7 +207,9 @@ export default {
         xzqName: "", // 行政区名称
         year: "", // 规划成果时间
         instid: "",
+        scmodel: "",
       },
+      scmxList: [],
       fileList: [],
       fileType: ["zip"], // 文件类型
       xzoptions: [],
@@ -219,12 +235,17 @@ export default {
           });
           if (!isTypeOk) {
             ElMessage.error(
-              `文件格式不正确, 请上传${addDialog.fileType.join("/")}格式文件!`
+              `文件格式不正确, 请上传${addDialog.fileType.join("/")}格式文件!`,
             );
             return false;
           }
         }
       },
+      getScmxlist() {
+        scmxlist().then((res) => {
+          addDialog.scmxList = res.data;
+        });
+      },
       // 获取行政区
       getXzq() {
         GetXzq({ city: true }).then((res) => {
@@ -299,7 +320,7 @@ export default {
                 parent.emit("update:xxghcgscDialog", false);
                 if (addDialog.formData.instid) {
                   ElMessage.success(
-                    "成果包上传成功,请等待市级上报,请勿重复上传!"
+                    "成果包上传成功,请等待市级上报,请勿重复上传!",
                   );
                 } else {
                   ElMessage.success("成果包上传成功");
@@ -323,6 +344,7 @@ export default {
     onMounted(() => {
       addDialog.formData.instid = props.instid || "";
       addDialog.getXzq();
+      addDialog.getScmxlist();
     });
     return { ...toRefs(addDialog) };
   },

+ 76 - 4
website/src/components/ghcgscygl/ghcgsb/ztgh/ghcgDialog.vue

@@ -12,6 +12,22 @@
       label-width="150px"
     >
       <el-row>
+        <el-col>
+          <el-form-item label="规划类型:" prop="plantype">
+            <el-select
+              v-model="formData.plantype"
+              placeholder="请选择规划类型"
+              style="width: 368px"
+            >
+              <el-option
+                v-for="item in plantypeoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select> </el-form-item
+        ></el-col>
         <el-col>
           <el-form-item label="成果名称:" prop="name">
             <el-input
@@ -88,7 +104,7 @@
               :http-request="addFileToFormData"
               v-model:file-list="fileList"
             >
-            <!-- // 去掉边框// 去掉点击按钮后的边框 -->
+              <!-- // 去掉边框// 去掉点击按钮后的边框 -->
               <el-button
                 slot="trigger"
                 type="primary"
@@ -100,8 +116,8 @@
                   right: 45px;
                   background-color: #fff;
                   color: #169bd5;
-                  border: none; 
-                  outline: none; 
+                  border: none;
+                  outline: none;
                 "
                 @click="upload"
                 >选择</el-button
@@ -137,6 +153,19 @@
             ></el-input>
           </el-form-item>
         </el-col>
+        <!-- <el-col style="padding-top: 20px">
+          <el-form-item label="审查模型:">
+            <el-select
+              v-model="formData.scmodel"
+              placeholder="请选择"
+              style="width: 370px"
+            >
+              <el-option
+                v-for="item in scmxList"
+                :label="item.name"
+                :value="item.id"
+              ></el-option> </el-select></el-form-item
+        ></el-col> -->
         <el-col style="padding-top: 20px">
           <el-form-item label="流程主键:" v-show="formData.instid != ''">
             <el-input
@@ -162,6 +191,7 @@ import store from "@/store";
 import { reactive, toRefs, ref, unref } from "@vue/reactivity";
 import { GetXzqList } from "@/api/homeApi.js";
 import { uploadCgFile, uploadCgInfo } from "@/api/ghcgysc/cgsbApi.js";
+import { scmxlist } from "@/api/ghcgysc/cggl.js";
 import { ElMessage, ElLoading } from "element-plus";
 export default {
   props: {
@@ -190,7 +220,43 @@ export default {
         cglevel: prop.isCity ? "2" : "1",
         lxr: "",
         lxdh: "",
+        scmodel: "",
       },
+      plantypeoptions: [
+        {
+          value: "1",
+          label: "评估成果",
+        },
+        {
+          value: "2",
+          label: "规划成果",
+        },
+        {
+          value: "3",
+          label: "总体规划",
+        },
+        {
+          value: "4",
+          label: "详细规划",
+        },
+        {
+          value: "5",
+          label: "专项规划",
+        },
+        {
+          value: "6",
+          label: "报批项目",
+        },
+        {
+          value: "7",
+          label: "苏木乡镇规划",
+        },
+        {
+          value: "8",
+          label: "城市更新",
+        },
+      ],
+      scmxList: [],
       xzqList: [],
       fileList: [],
       fileFormData: [],
@@ -203,10 +269,15 @@ export default {
         },
       },
       loading: {},
+      getScmxlist() {
+        scmxlist().then((res) => {
+          ghcgDialog.scmxList = res.data;
+        });
+      },
       getXzqdm() {
         GetXzqList().then((res) => {
           ghcgDialog.xzqList = res.data;
-          console.log(ghcgDialog.xzqList,'xzqList');
+          console.log(ghcgDialog.xzqList, "xzqList");
           if (!prop.isCity) {
             const xzq = ghcgDialog.xzqList.find(
               (item) => item.label === store.getters.user.dept.deptName,
@@ -300,6 +371,7 @@ export default {
     });
     onMounted(() => {
       ghcgDialog.getXzqdm();
+      ghcgDialog.getScmxlist();
       // ghcgDialog.formData.lxr = store.getters.user.userName;
       ghcgDialog.formData.lxr = store.getters.user.nickName;
       ghcgDialog.formData.lxdh = store.getters.user.phonenumber;

+ 1 - 1
website/src/views/ghcgscygl/cggl/Cgrk.vue

@@ -97,7 +97,7 @@
               <template #default="scope">
                 <div>
                   <el-button
-                    v-if="['待审'].indexOf(scope.row.sczt) < 0"
+                    v-if="scope.row.sczt == '6' || scope.row.sczt == '7'"
                     type="primary"
                     link
                     class="caozuo"

+ 6 - 5
website/src/views/ghcgscygl/cgsc/Cgdb.vue

@@ -32,11 +32,12 @@ export default {
   setup() {
     const store = useStore();
     onMounted(() => {
-      if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
-        cgdb.scztValue = "0";
-      } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
-        cgdb.scztValue = "4";
-      }
+      cgdb.scztValue = "4";
+      // if (store.getters.roles.indexOf("qixian") > -1) {
+      //   cgdb.scztValue = "0";
+      // } else if (store.getters.roles.indexOf("shiji") > -1) {
+      //   cgdb.scztValue = "4";
+      // }
     });
     const cgdb = reactive({
       scztValue: "",

+ 6 - 5
website/src/views/ghcgscygl/cgsc/Cgth.vue

@@ -54,11 +54,12 @@ export default {
   setup() {
     const store = useStore();
     onMounted(() => {
-      if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
-        cgth.scztValue = "3";
-      } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
-        cgth.scztValue = "7";
-      }
+      // if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
+      //   cgth.scztValue = "3";
+      // } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
+      //   cgth.scztValue = "7";
+      // }
+      cgth.scztValue = "7";
       if (store.getters.roles.join(",").indexOf("shiji") > -1) {
         cgth.showTypeInfo.type = "shiji";
         cgth.act_tab = "sj";

+ 6 - 5
website/src/views/ghcgscygl/cgsc/Cgwj.vue

@@ -65,11 +65,12 @@ export default {
       },
     });
     onMounted(() => {
-      if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
-        cgwj.scztValue = "2";
-      } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
-        cgwj.scztValue = "6";
-      }
+      // if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
+      //   cgwj.scztValue = "2";
+      // } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
+      //   cgwj.scztValue = "6";
+      // }
+      cgwj.scztValue = "6";
       // if (Object.keys(store.state.cgll.xmscwjViewInfo).length > 0 && store.state.cgll.xmscwjViewInfo.open) {
       //     store.commit('SET_XMSCWJVIEWINFO',Object.assign({...store.state.cgll.xmscwjViewInfo},{open:false}));
       //     cgwj.cg_option_item = store.state.cgll.xmscwjViewInfo;

+ 6 - 5
website/src/views/ghcgscygl/cgsc/Cgyb.vue

@@ -49,11 +49,12 @@ export default {
       },
     });
     onMounted(() => {
-      if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
-        cgyb.scztValue = "1";
-      } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
-        cgyb.scztValue = "5";
-      }
+      // if (store.getters.roles.indexOf("qixian_shenpi") > -1) {
+      //   cgyb.scztValue = "1";
+      // } else if (store.getters.roles.indexOf("shiji_shenpi") > -1) {
+      //   cgyb.scztValue = "5";
+      // }
+      cgyb.scztValue = "5";
       if (router.currentRoute.value.query.open) {
         if (Object.keys(store.state.cgll.xmscViewInfo).length > 0) {
           cgyb.cg_option_item = store.state.cgll.xmscViewInfo;

+ 17 - 37
website/src/views/ghcgscygl/common.vue

@@ -7,11 +7,10 @@
       <div class="header flex-box align-center box-sizing">
         <div class="header-left">
           <el-form :inline="true" :model="formInline" class="demo-form-inline">
-            <el-form-item
-              v-if="$store.getters.roles.join(',').indexOf('shiji') > -1"
-              label="所属行政区"
-              prop="xzqdm"
-            >
+            <el-form-item label="成果名称">
+              <el-input v-model="formInline.xmmc" placeholder=""></el-input>
+            </el-form-item>
+            <el-form-item label="所属行政区" prop="xzqdm">
               <el-cascader
                 :options="options"
                 :props="{
@@ -25,20 +24,19 @@
                 size="mini"
                 :filterable="true"
                 :show-all-levels="false"
-                @change="setXzqdm"
               ></el-cascader
             ></el-form-item>
-            <el-form-item label="成果名称">
-              <el-input v-model="formInline.xmmc" placeholder=""></el-input>
-            </el-form-item>
             <el-form-item label="规划类型">
               <el-select v-model="formInline.ghlx" placeholder="请选择规划类型">
-                <el-option label="全部" value="">全部</el-option>
                 <el-option label="评估成果" value="1"></el-option>
                 <el-option label="规划成果" value="2"></el-option>
                 <el-option label="总体规划" value="3"></el-option>
+                <el-option label="村庄规划" value="9"></el-option>
                 <el-option label="详细规划" value="4"></el-option>
                 <el-option label="专项规划" value="5"></el-option>
+                <el-option label="报批项目" value="6"></el-option>
+                <el-option label="苏木乡镇规划" value="7"></el-option>
+                <el-option label="城市更新" value="8"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item>
@@ -85,18 +83,7 @@
               <template #default="scope">
                 <div class="max-width">
                   <el-button
-                    v-if="
-                      ($store.getters.roles.indexOf('qixian_shenpi') > -1 &&
-                        ['待审(旗县)', '审查中(旗县)'].indexOf(scope.row.sczt) >
-                          -1) ||
-                      ($store.getters.roles.indexOf('shiji_shenpi') > -1 &&
-                        [
-                          '待审(旗县)',
-                          '审查中(旗县)',
-                          '待审(市级)',
-                          '审查中(市级)',
-                        ].indexOf(scope.row.sczt) > -1)
-                    "
+                    v-if="['待审', '审查中'].indexOf(scope.row.sczt) > -1"
                     type="primary"
                     link
                     class="caozuo"
@@ -105,19 +92,7 @@
                   >
 
                   <el-button
-                    v-if="
-                      ($store.getters.roles.indexOf('qixian_shenpi') > -1 &&
-                        ['待审(旗县)', '审查中(旗县)'].indexOf(
-                          scope.row.sczt,
-                        ) === -1) ||
-                      ($store.getters.roles.indexOf('shiji_shenpi') > -1 &&
-                        [
-                          '完结(旗县)',
-                          '退回(旗县)',
-                          '完结(市级)',
-                          '退回(市级)',
-                        ].indexOf(scope.row.sczt) > -1)
-                    "
+                    v-if="scope.row.sczt == '6' || scope.row.sczt == '7'"
                     type="primary"
                     link
                     class="caozuo"
@@ -240,7 +215,7 @@ export default {
       active_name: "",
       formInline: {
         xmmc: "",
-        ghlx: "",
+        ghlx: "3",
         xzqdm: "",
         page: 1,
         limit: 20,
@@ -285,7 +260,12 @@ export default {
                 cgdb.loading = false;
               });
           } else {
-            ElMessage.warning("请先联系管理员配置审查模型,再进行审查!");
+            store.commit("SET_XMSCVIEWINFO", row);
+            router.push({
+              path: "/ghcgscygl/cgsc/cgyb",
+              query: { open: true },
+            });
+            // ElMessage.warning("请先联系管理员配置审查模型,再进行审查!");
           }
         } else {
           // 打开项目审查页面(弃用)

+ 116 - 28
website/src/views/ghcgscygl/ghcgsb/xxgh/Czgh/Qxyh.vue

@@ -3,6 +3,9 @@
     <div class="header flex-box align-center box-sizing">
       <div class="header-left">
         <el-form :inline="true" :model="formInline">
+          <el-form-item label="成果包名称:">
+            <el-input v-model="formInline.fileName" type="text"></el-input>
+          </el-form-item>
           <el-form-item label="行政区:" style="width: 280px">
             <el-cascader
               :options="xzoptions"
@@ -17,30 +20,18 @@
               class="cascader-style"
               popper-class="popper-cascader"
               :filterable="true"
-              @change="setXzqdm"
               :show-all-levels="false"
             ></el-cascader>
           </el-form-item>
           <el-form-item label="上报状态:">
-            <el-select
-              v-model="formInline.status"
-              placeholder="全部"
-              @change="changeForm"
-            >
+            <el-select v-model="formInline.status" placeholder="全部" clearable>
               <el-option label="" value="">全部</el-option>
+              <el-option label="待审" value="10"></el-option>
               <el-option label="未上报" value="11"></el-option>
-              <el-option label="已上报市" value="12"></el-option>
-              <el-option label="已上报自治区" value="22"></el-option>
+              <el-option label="已上报" value="12"></el-option>
               <!-- <el-option label="退回" value="14"></el-option> -->
             </el-select>
           </el-form-item>
-          <el-form-item label="成果包名称:">
-            <el-input
-              v-model="formInline.fileName"
-              type="text"
-              @change="changeForm"
-            ></el-input>
-          </el-form-item>
           <el-button type="primary" @click="onSearch" style="margin-left: 20px"
             >查询</el-button
           >
@@ -50,7 +41,7 @@
         <el-button type="primary" @click="ghcgscDialog = true"
           >上传村庄规划成果包</el-button
         >
-        <el-button type="primary" @click="pushPlus()">批量上报至市</el-button>
+        <!-- <el-button type="primary" @click="pushPlus()">批量上报至市</el-button> -->
       </div>
     </div>
     <div class="table-layout flex-box column height-100-60">
@@ -164,24 +155,31 @@
                       !(
                         uploadStatus1(scope.row.uploadStatus) ===
                           ('上传成功' || '上传失败') &&
-                        uploadStatus(scope.row.status) === ('未上报' || '退回')
+                        uploadStatus(scope.row.status) === ('待审' || '未上报')
                       )
                     "
                     >编辑</el-button
                   >
                 </slot>
+                <slot name="startjqsc" :item="scope.row">
+                  <el-button
+                    type="text"
+                    class="caozuo"
+                    v-if="scope.row.status == '10' && !scope.row.msg"
+                    @click="startscmodel(scope.row)"
+                    >发起审查</el-button
+                  >
+                </slot>
                 <slot name="sbzzzq">
                   <el-button
                     type="text"
                     class="caozuo"
                     @click="showDialog(scope.row, 1, scope.$index)"
-                    :disabled="
-                      !(
-                        uploadStatus1(scope.row.uploadStatus) === '上传成功' &&
-                        uploadStatus(scope.row.status) === ('未上报' || '退回')
-                      )
+                    v-if="
+                      uploadStatus1(scope.row.uploadStatus) === '上传成功' &&
+                      uploadStatus(scope.row.status) === '未上报'
                     "
-                    >上报至
+                    >上报至自治区
                   </el-button>
                 </slot>
                 <slot name="xz">
@@ -253,6 +251,52 @@
         </span>
       </template>
     </el-dialog>
+    <el-dialog title="发起审查" v-model="startjqscVisible" style="width: 360px">
+      <el-form :model="jqscform" ref="jqscformModel" :rules="formrule">
+        <el-form-item
+          prop="cgid"
+          label="成果编号"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-input
+            v-model="jqscform.cgid"
+            placeholder="请输入成果编号"
+            disabled
+          ></el-input>
+        </el-form-item>
+        <el-form-item
+          prop="jqscmodel"
+          label="机器审查模型"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-select v-model="jqscform.jqscmodel" placeholder="请选择审查模型">
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          prop="scmodel"
+          class="margin-item"
+          label="人工审查模型"
+          :label-width="formLabelWidth"
+        >
+          <el-select v-model="jqscform.scmodel" placeholder="请选择审查模型">
+            <el-option
+              v-for="item in scmxList"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" style="text-align: center">
+        <el-button type="primary" @click="startsc()">审 查</el-button>
+        <el-button @click="startjqscVisible = false">取 消</el-button>
+        <!-- <el-button type="primary" @click="startjqscVisible = false"
+          >跳过机审</el-button
+        > -->
+      </div>
+    </el-dialog>
     <XqDialog
       v-model:ckxqDialog="ckxqDialog"
       v-model:cgDetail="activeCg"
@@ -277,6 +321,7 @@
 import { reactive, toRefs, ref } from "@vue/reactivity";
 import { getCurrentInstance, onMounted, watch } from "@vue/runtime-core";
 import { GetXzq } from "@/api/homeApi.js";
+import { scmxlist, startczghcgsc } from "@/api/ghcgysc/cggl.js";
 import { Getlist, ReportSubmit, Delete } from "@/api/ghcgysc/czghApi.js";
 import XqDialog from "@/components/ghcgscygl/ghcgsb/xxgh/czgh/Qxyh/xqDialog.vue";
 import CzghcgDialog from "@/components/ghcgscygl/ghcgsb/xxgh/czgh/Qxyh/czghcgDialog.vue";
@@ -305,6 +350,20 @@ export default {
         limit: 20,
         total: 0,
       },
+      startjqscVisible: false,
+      formLabelWidth: "120px",
+      jqscform: {
+        scmodel: "",
+        jqscmodel: "",
+        cgid: "",
+      },
+      formrule: {
+        scmodel: [
+          { required: true, message: "请选择审查模型", trigger: "blur" },
+        ],
+        cgid: [{ required: true, message: "请输入成果编号", trigger: "blur" }],
+      },
+      scmxList: [],
       xzoptions: [],
       cascader: ref(null),
       multipleTable: ref(null),
@@ -394,17 +453,42 @@ export default {
       },
       // 上报状态
       uploadStatus(status) {
-        let arr = ["未上报", "已上报市", "已上报自治区", "退回"];
-        if (status == 22) {
-          return arr[2];
-        }
-        return arr[status - 11];
+        let arr = ["待审", "未上报", "已上报"];
+        return arr[status - 10];
       },
       // 上传状态
       uploadStatus1(status) {
         let arr = ["未上传", "上传中", "上传成功", "上传失败"];
         return arr[status];
       },
+      startscmodel(row) {
+        qxyh.startjqscVisible = true;
+        qxyh.jqscform.cgid = row.uuid;
+      },
+      startsc() {
+        this.$refs.jqscformModel.validate(function (valid, msg) {
+          if (valid) {
+            console.log("表单校验成功");
+            startczghcgsc(qxyh.jqscform).then((res) => {
+              if (res.success) {
+                qxyh.startjqscVisible = false;
+                qxyh.getlist();
+                ElMessage.success(res.message);
+              } else {
+                ElMessage.error(res.message);
+              }
+            });
+          } else {
+            console.log("表单校验失败");
+            return false;
+          }
+        });
+      },
+      getScmxlist() {
+        scmxlist().then((res) => {
+          qxyh.scmxList = res.data;
+        });
+      },
       // 获取行政区
       getXzq() {
         GetXzq({ city: true }).then((res) => {
@@ -500,6 +584,7 @@ export default {
     onMounted(() => {
       qxyh.getlist();
       qxyh.getXzq();
+      qxyh.getScmxlist();
     });
     watch(
       () => qxyh.formInline.xzqCode,
@@ -552,4 +637,7 @@ export default {
   position: absolute;
   right: -40px;
 }
+.margin-item {
+  margin-bottom: 20px !important;
+}
 </style>

+ 186 - 28
website/src/views/ghcgscygl/ghcgsb/ztgh/Qxjghcg/Qxyh.vue

@@ -3,6 +3,47 @@
     <div class="header flex-box align-center box-sizing">
       <div class="header-left">
         <el-form :inline="true" :model="formInline">
+          <el-form-item label="成果包名称:">
+            <el-input
+              v-model="formInline.name"
+              type="text"
+              clearable
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="规划类型:">
+            <el-select
+              v-model="formInline.plantype"
+              placeholder="请选择规划类型"
+              style="width: 368px"
+              clearable
+            >
+              <el-option
+                v-for="item in plantypeoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="行政区:">
+            <el-cascader
+              :options="xzoptions"
+              :props="{
+                ...props,
+                checkStrictly: true,
+                expandTrigger: 'hover',
+              }"
+              v-model="formInline.xzqCode"
+              clearable
+              ref="cascader"
+              class="cascader-style"
+              popper-class="popper-cascader"
+              :filterable="true"
+              @change="setXzqdm"
+              :show-all-levels="false"
+            ></el-cascader>
+          </el-form-item>
           <el-form-item label="年份:">
             <el-select v-model="formInline.year" placeholder="全部" clearable>
               <el-option label="" value="">全部</el-option>
@@ -38,31 +79,7 @@
               <el-option label="撤回" value="6"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="行政区:" style="width: 280px">
-            <el-cascader
-              :options="xzoptions"
-              :props="{
-                ...props,
-                checkStrictly: true,
-                expandTrigger: 'hover',
-              }"
-              v-model="formInline.xzqCode"
-              clearable
-              ref="cascader"
-              class="cascader-style"
-              popper-class="popper-cascader"
-              :filterable="true"
-              @change="setXzqdm"
-              :show-all-levels="false"
-            ></el-cascader>
-          </el-form-item>
-          <el-form-item label="成果包名称:">
-            <el-input
-              v-model="formInline.name"
-              type="text"
-              clearable
-            ></el-input>
-          </el-form-item>
+
           <el-button type="primary" @click="getlist" style="margin-left: 20px"
             >查询</el-button
           >
@@ -179,6 +196,16 @@
                     >详情</el-button
                   >
                 </slot>
+                <slot name="startjqsc" :item="scope.row">
+                  <el-button
+                    type="text"
+                    class="caozuo"
+                    v-if="scope.row.fileupload == '9'"
+                    @click="startscmodel(scope.row)"
+                    :disabled="scope.row.fileupload != '9'"
+                    >发起审查</el-button
+                  >
+                </slot>
                 <!-- scope.row.fileupload ===  '1' && -->
                 <slot name="sbzzzq">
                   <el-button
@@ -195,7 +222,8 @@
                     class="caozuo"
                     @click="showDialog(scope.row, 3)"
                     :disabled="
-                      uploadStatus(scope.row.uploadstatus) == '已上报至区'
+                      uploadStatus(scope.row.uploadstatus) == '已上报至区' ||
+                      scope.row.sczt != '6'
                     "
                     >上报至自治区
                   </el-button>
@@ -205,7 +233,7 @@
                     type="text"
                     class="caozuo"
                     @click="viewSCJG(scope.row)"
-                    :disabled="['0', '1'].includes(scope.row.sczt)"
+                    :disabled="scope.row.sczt != '6' && scope.row.sczt != '7'"
                     >查看审查结果</el-button
                   >
                 </slot>
@@ -333,6 +361,52 @@
         </span>
       </template>
     </el-dialog>
+    <el-dialog title="发起审查" v-model="startjqscVisible" style="width: 360px">
+      <el-form :model="jqscform" ref="jqscformModel" :rules="formrule">
+        <el-form-item
+          prop="cgid"
+          label="成果编号"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-input
+            v-model="jqscform.cgid"
+            placeholder="请输入成果编号"
+            disabled
+          ></el-input>
+        </el-form-item>
+        <el-form-item
+          prop="jqscmodel"
+          label="机器审查模型"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-select v-model="jqscform.jqscmodel" placeholder="请选择审查模型">
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          prop="scmodel"
+          class="margin-item"
+          label="人工审查模型"
+          :label-width="formLabelWidth"
+        >
+          <el-select v-model="jqscform.scmodel" placeholder="请选择审查模型">
+            <el-option
+              v-for="item in scmxList"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" style="text-align: center">
+        <el-button type="primary" @click="startsc()">审 查</el-button>
+        <el-button @click="startjqscVisible = false">取 消</el-button>
+        <!-- <el-button type="primary" @click="startjqscVisible = false"
+          >跳过机审</el-button
+        > -->
+      </div>
+    </el-dialog>
     <GhcgDialog
       v-if="ghcgscDialog"
       v-model:ghcgscDialog="ghcgscDialog"
@@ -379,6 +453,7 @@ import ChDialog from "@/components/ghcgscygl/ghcgsb/ztgh/chDialog.vue";
 import SbjdDialog from "@/components/ghcgscygl/ghcgsb/ztgh/sbjdDialog.vue";
 import request from "@/utils/request.js";
 import { GetXzqList, GetXzq } from "@/api/homeApi.js";
+import { scmxlist, startcgsc } from "@/api/ghcgysc/cggl.js";
 import { cgInfoList, cgDelete, updateCgInfo } from "@/api/ghcgysc/cgsbApi.js";
 import errorLog from "@/components/ghfxpj/wtsbztyy/errorLog.vue";
 import { ElMessage } from "element-plus";
@@ -409,6 +484,54 @@ export default {
     );
     const qxyh = reactive({
       cascader: ref(null),
+      startjqscVisible: false,
+      formLabelWidth: "120px",
+      jqscform: {
+        scmodel: "",
+        jqscmodel: "",
+        cgid: "",
+      },
+      plantypeoptions: [
+        {
+          value: "1",
+          label: "评估成果",
+        },
+        {
+          value: "2",
+          label: "规划成果",
+        },
+        {
+          value: "3",
+          label: "总体规划",
+        },
+        {
+          value: "4",
+          label: "详细规划",
+        },
+        {
+          value: "5",
+          label: "专项规划",
+        },
+        {
+          value: "6",
+          label: "报批项目",
+        },
+        {
+          value: "7",
+          label: "苏木乡镇规划",
+        },
+        {
+          value: "8",
+          label: "城市更新",
+        },
+      ],
+      formrule: {
+        scmodel: [
+          { required: true, message: "请选择审查模型", trigger: "blur" },
+        ],
+        cgid: [{ required: true, message: "请输入成果编号", trigger: "blur" }],
+      },
+      scmxList: [],
       dialogLog: false, // 上传失败日志弹窗
       logData: "", // 错误日志信息
       logName: "", // 错误数据名称
@@ -421,7 +544,7 @@ export default {
         uploadstatus: "", // 上报状态
         username: "", // 用户名
         cglevel: 1, // 1 旗县 2 市级
-        plantype: 3, // 1 评估 2 规划 3 总体规划 4 详细规划 5 专项规划
+        plantype: "3", // 1 评估 2 规划 3 总体规划 4 详细规划 5 专项规划
         page: 1,
         limit: 20,
         total: 0,
@@ -470,6 +593,34 @@ export default {
         qxyh.formInline.page = val;
         qxyh.getlist();
       },
+      startscmodel(row) {
+        qxyh.startjqscVisible = true;
+        qxyh.jqscform.cgid = row.id;
+      },
+      startsc() {
+        this.$refs.jqscformModel.validate(function (valid, msg) {
+          if (valid) {
+            console.log("表单校验成功");
+            startcgsc(qxyh.jqscform).then((res) => {
+              if (res.success) {
+                qxyh.startjqscVisible = false;
+                qxyh.getlist();
+                ElMessage.success(res.message);
+              } else {
+                ElMessage.error(res.message);
+              }
+            });
+          } else {
+            console.log("表单校验失败");
+            return false;
+          }
+        });
+      },
+      getScmxlist() {
+        scmxlist().then((res) => {
+          qxyh.scmxList = res.data;
+        });
+      },
       // 获取行政区
       getXzq() {
         GetXzq({ city: true }).then((res) => {
@@ -655,6 +806,7 @@ export default {
       // qxyh.getlist();
       qxyh.getXzqdm();
       qxyh.getXzq();
+      qxyh.getScmxlist();
     });
     return { ...toRefs(qxyh) };
   },
@@ -696,4 +848,10 @@ export default {
     height: inherit;
   }
 }
+.margin-item {
+  margin-bottom: 20px !important;
+}
+.el-form-item--default .el-form-item__content {
+  width: 120px;
+}
 </style>

+ 187 - 28
website/src/views/ghcgscygl/ghcgsb/ztgh/Sjghcg.vue

@@ -6,6 +6,47 @@
     <div class="header flex-box align-center box-sizing">
       <div class="header-left">
         <el-form :inline="true" :model="formInline">
+          <el-form-item label="成果包名称:">
+            <el-input
+              v-model="formInline.name"
+              type="text"
+              clearable
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="规划类型:">
+            <el-select
+              v-model="formInline.plantype"
+              placeholder="请选择规划类型"
+              clearable
+            >
+              <el-option
+                v-for="item in plantypeoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="行政区:">
+            <el-cascader
+              :options="xzoptions"
+              :props="{
+                ...props,
+                checkStrictly: true,
+                expandTrigger: 'hover',
+              }"
+              v-model="formInline.xzqCode"
+              clearable
+              ref="cascader"
+              class="cascader-style"
+              popper-class="popper-cascader"
+              :filterable="true"
+              @change="setXzqdm"
+              :show-all-levels="false"
+            ></el-cascader>
+          </el-form-item>
           <el-form-item label="年份:">
             <el-select v-model="formInline.year" placeholder="全部" clearable>
               <el-option label="" value="">全部</el-option>
@@ -37,31 +78,6 @@
               <el-option label="撤回" value="6"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="行政区:" style="width: 280px">
-            <el-cascader
-              :options="xzoptions"
-              :props="{
-                ...props,
-                checkStrictly: true,
-                expandTrigger: 'hover',
-              }"
-              v-model="formInline.xzqCode"
-              clearable
-              ref="cascader"
-              class="cascader-style"
-              popper-class="popper-cascader"
-              :filterable="true"
-              @change="setXzqdm"
-              :show-all-levels="false"
-            ></el-cascader>
-          </el-form-item>
-          <el-form-item label="成果包名称:">
-            <el-input
-              v-model="formInline.name"
-              type="text"
-              clearable
-            ></el-input>
-          </el-form-item>
           <el-button type="primary" @click="getlist" style="margin-left: 20px"
             >查询</el-button
           >
@@ -173,6 +189,16 @@
                     >详情</el-button
                   >
                 </slot>
+                <slot name="startjqsc" :item="scope.row">
+                  <el-button
+                    type="text"
+                    class="caozuo"
+                    v-if="scope.row.fileupload == '9'"
+                    @click="startscmodel(scope.row)"
+                    :disabled="scope.row.fileupload != '9'"
+                    >发起审查</el-button
+                  >
+                </slot>
                 <!-- scope.row.fileupload ===  '1' && -->
                 <slot name="sbzzzq">
                   <el-button
@@ -180,7 +206,10 @@
                     type="text"
                     class="caozuo"
                     @click="showDialog(scope.row, 1)"
-                    :disabled="uploadStatus(scope.row.uploadstatus) == '已上报'"
+                    :disabled="
+                      uploadStatus(scope.row.uploadstatus) == '已上报' ||
+                      scope.row.sczt != '6'
+                    "
                     >上报至自治区</el-button
                   >
                 </slot>
@@ -189,7 +218,7 @@
                     type="text"
                     class="caozuo"
                     @click="viewSCJG(scope.row)"
-                    :disabled="['4', '5'].includes(scope.row.sczt)"
+                    :disabled="scope.row.sczt != '6' && scope.row.sczt != '7'"
                     >查看审查结果</el-button
                   >
                 </slot>
@@ -314,6 +343,52 @@
         </span>
       </template>
     </el-dialog>
+    <el-dialog title="发起审查" v-model="startjqscVisible" style="width: 360px">
+      <el-form :model="jqscform" ref="jqscformModel" :rules="formrule">
+        <el-form-item
+          prop="cgid"
+          label="成果编号"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-input
+            v-model="jqscform.cgid"
+            placeholder="请输入成果编号"
+            disabled
+          ></el-input>
+        </el-form-item>
+        <el-form-item
+          prop="jqscmodel"
+          label="机器审查模型"
+          :label-width="formLabelWidth"
+          class="margin-item"
+        >
+          <el-select v-model="jqscform.jqscmodel" placeholder="请选择审查模型">
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          prop="scmodel"
+          class="margin-item"
+          label="人工审查模型"
+          :label-width="formLabelWidth"
+        >
+          <el-select v-model="jqscform.scmodel" placeholder="请选择审查模型">
+            <el-option
+              v-for="item in scmxList"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" style="text-align: center">
+        <el-button type="primary" @click="startsc()">审 查</el-button>
+        <el-button @click="startjqscVisible = false">取 消</el-button>
+        <!-- <el-button type="primary" @click="startjqscVisible = false"
+          >跳过机审</el-button
+        > -->
+      </div>
+    </el-dialog>
     <GhcgDialog
       v-if="ghcgscDialog"
       v-model:ghcgscDialog="ghcgscDialog"
@@ -372,6 +447,7 @@ import ChDialog from "@/components/ghcgscygl/ghcgsb/ztgh/chDialog.vue";
 import SbjdDialog from "@/components/ghcgscygl/ghcgsb/ztgh/sbjdDialog.vue";
 import RkDialog from "@/components/ghcgscygl/ghcgsb/ztgh/rkDialog.vue";
 import request from "@/utils/request.js";
+import { scmxlist, startcgsc } from "@/api/ghcgysc/cggl.js";
 import { GetXzqList, GetXzq } from "@/api/homeApi.js";
 import { cgInfoList, cgDelete, updateCgInfo } from "@/api/ghcgysc/cgsbApi.js";
 import { ElMessage, ElMessageBox, ElLoading } from "element-plus";
@@ -395,6 +471,53 @@ export default {
 
     const sjghcg = reactive({
       cascader: ref(null),
+      startjqscVisible: false,
+      formLabelWidth: "120px",
+      jqscform: {
+        scmodel: "",
+        jqscmodel: "",
+        cgid: "",
+      },
+      plantypeoptions: [
+        {
+          value: "1",
+          label: "评估成果",
+        },
+        {
+          value: "2",
+          label: "规划成果",
+        },
+        {
+          value: "3",
+          label: "总体规划",
+        },
+        {
+          value: "4",
+          label: "详细规划",
+        },
+        {
+          value: "5",
+          label: "专项规划",
+        },
+        {
+          value: "6",
+          label: "报批项目",
+        },
+        {
+          value: "7",
+          label: "苏木乡镇规划",
+        },
+        {
+          value: "8",
+          label: "城市更新",
+        },
+      ],
+      formrule: {
+        scmodel: [
+          { required: true, message: "请选择审查模型", trigger: "blur" },
+        ],
+        cgid: [{ required: true, message: "请输入成果编号", trigger: "blur" }],
+      },
       xzoptions: [],
       showTypeInfo: { type: "shiji" }, // shiji\scjg
       dialogLog: false, // 上传失败日志弹窗
@@ -409,11 +532,12 @@ export default {
         uploadstatus: "", // 上报状态
         username: "", // 用户名
         cglevel: 2, // 1 旗县 2 城镇
-        plantype: 3, // 1 评估 2 规划 3 总体规划 4 详细规划 5 专项规划
+        plantype: "3", // 1 评估 2 规划 3 总体规划 4 详细规划 5 专项规划
         page: 1,
         limit: 20,
         total: 0,
       },
+      scmxList: [],
       sbjdText: "0/0",
       sbjdPercentage: 0,
       sbjdProgress: false,
@@ -456,6 +580,34 @@ export default {
         sjghcg.formInline.page = val;
         sjghcg.getlist();
       },
+      startscmodel(row) {
+        sjghcg.startjqscVisible = true;
+        sjghcg.jqscform.cgid = row.id;
+      },
+      startsc() {
+        this.$refs.jqscformModel.validate(function (valid, msg) {
+          if (valid) {
+            console.log("表单校验成功");
+            startcgsc(sjghcg.jqscform).then((res) => {
+              if (res.success) {
+                sjghcg.startjqscVisible = false;
+                sjghcg.getlist();
+                ElMessage.success(res.message);
+              } else {
+                ElMessage.error(res.message);
+              }
+            });
+          } else {
+            console.log("表单校验失败");
+            return false;
+          }
+        });
+      },
+      getScmxlist() {
+        scmxlist().then((res) => {
+          sjghcg.scmxList = res.data;
+        });
+      },
       // 获取行政区数据
       setXzqdm(bsm) {
         if (typeof sjghcg.cascader.getCheckedNodes()[0] !== "undefined") {
@@ -677,6 +829,7 @@ export default {
     onMounted(() => {
       sjghcg.getXzq();
       sjghcg.getlist();
+      sjghcg.getScmxlist();
       // sjghcg.getXzqdm();
     });
     watch(
@@ -720,4 +873,10 @@ export default {
     height: inherit;
   }
 }
+.margin-item {
+  margin-bottom: 20px !important;
+}
+.el-form-item--default .el-form-item__content {
+  width: 120px;
+}
 </style>