From d2a850a836524f7d400b92f41bbbb91f4832b4b5 Mon Sep 17 00:00:00 2001
From: xiaomiao <1158771342@qq.com>
Date: Wed, 7 Jun 2023 10:43:06 +0800
Subject: [PATCH] 登记簿补录功能开发

---
 src/views/djbBook/components/clxxDetailDialog.vue          | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/djbBook/components/djbdyeditDialog.vue           | 269 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 src/views/djbBook/components/djbeditDialog.vue             | 801 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------
 src/views/djbBook/components/tabsconcent/clxxAddDialog.vue |  80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/djbBook/components/tabsconcent/clxxUnify.vue     | 334 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/djbBook/components/tabsconcent/spyj.vue          | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/views/djbBook/jsydsyq.vue                              |   3 ++-
 src/views/djbworkflow/components/clxxUnify.vue             |   4 ++--
 src/views/djbworkflow/components/leftmenu/ordinaryMenu.vue |   5 ++++-
 9 files changed, 1659 insertions(+), 346 deletions(-)
 create mode 100644 src/views/djbBook/components/clxxDetailDialog.vue
 delete mode 100644 src/views/djbBook/components/djbdyeditDialog.vue
 create mode 100644 src/views/djbBook/components/tabsconcent/clxxAddDialog.vue
 create mode 100644 src/views/djbBook/components/tabsconcent/clxxUnify.vue
 create mode 100644 src/views/djbBook/components/tabsconcent/spyj.vue

diff --git a/src/views/djbBook/components/clxxDetailDialog.vue b/src/views/djbBook/components/clxxDetailDialog.vue
new file mode 100644
index 0000000..b74c963
--- /dev/null
+++ b/src/views/djbBook/components/clxxDetailDialog.vue
@@ -0,0 +1,278 @@
+<!--
+ * @Description:
+ * @Autor: renchao
+ * @LastEditTime: 2023-05-17 10:39:57
+-->
+<template>
+  <div class="clmlmx-box">
+    <div class="title">申请材料目录</div>
+    <lb-table :column="column" :key="key" :heightNumSetting="true" :pagination="false" :data="formData.data">
+    </lb-table>
+    <div class="text-center">
+      <el-button @click="$popupCacel">取消</el-button>
+    </div>
+  </div>
+</template>
+<script>
+  import store from '@/store/index.js'
+  import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
+  export default {
+    props: {
+      formData: {
+        type: Object,
+        default: () => {
+          return {}
+        }
+      }
+    },
+    data () {
+      return {
+        column: [
+          {
+            width: "50",
+            label: '序号',
+            type: 'index'
+          },
+          {
+            prop: "isrequired",
+            label: "是否必选",
+            width: "80",
+            render: (h, scope) => {
+              if (scope.row.sfxjcl === "1") {
+                return (
+                  <div>
+                    <span>可选</span>
+                  </div>
+                );
+              }
+              else {
+                return (
+                  <div>
+                    <span>必选</span>
+                  </div>
+                );
+              }
+            },
+          },
+          {
+            prop: "sjmc",
+            label: "材料名称",
+          },
+          {
+            prop: "sjlx",
+            label: "材料类型",
+            width: "80",
+            render: (h, scope) => {
+              return (
+                <div>
+                  <span>{this.dicStatus(scope.row.sjlx, "A40")}</span>
+                </div>
+              );
+            },
+          },
+          {
+            prop: "sjsl",
+            label: "份数",
+            width: "50"
+          },
+          {
+            prop: "smzt",
+            label: "扫描状态",
+            width: "80",
+            render: (h, scope) => {
+              if (scope.row.children && scope.row.children.length > 0) {
+                return (
+                  <div>
+                    <span>已扫描</span>
+                  </div>
+                );
+              } else {
+                return (
+                  <div>
+                    <span>未扫描</span>
+                  </div>
+                );
+              }
+            },
+          },
+          {
+            label: "扫描页数",
+            width: "80",
+            render: (h, scope) => {
+              if (scope.row.children && scope.row.children.length > 0) {
+                return (
+                  <div>
+                    <span>{scope.row.children.length}</span>
+                  </div>
+                );
+              } else {
+                return (
+                  <div>
+                    <span>0</span>
+                  </div>
+                );
+              }
+            },
+          },
+          {
+            label: "操作",
+            width: "80",
+            render: (h, scope) => {
+              return (
+                <div>
+                  <el-button
+                    type="text"
+                    disabled={scope.$index == 0}
+                    onClick={() => {
+                      this.moveUpward(scope.$index, scope.row);
+                    }}
+                  >
+                    上移
+                  </el-button>
+                  <el-button
+                    type="text"
+                    disabled={scope.$index + 1 == this.tableData.length}
+                    onClick={() => {
+                      this.moveDown(scope.$index, scope.row);
+                    }}
+                  >
+                    下移
+                  </el-button>
+                </div>
+              );
+            },
+          },
+        ],
+        key: 0,
+        tableData: []
+      }
+    },
+    created () {
+      console.log(this.formData.data, 'formData');
+    },
+    methods: {
+      // 材料目录明细初始化
+      clmlInitList () {
+        return new Promise(resolve => {
+          this.unitData = this.$parent.unitData;
+          var formdata = new FormData();
+          formdata.append("bsmSldy", this.unitData[0]?.bsmSldy);
+          formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
+          InitClml(formdata).then((res) => {
+            if (res.code == 200) {
+              resolve(res.code)
+              if (res.result && res.result.length > 0) {
+                this.data = res.result;
+              } else {
+                this.data = []
+              }
+            } else {
+              this.$message.error(res.message)
+            }
+          })
+        })
+      },
+      // 上移
+      moveUpward (index, row) {
+        let obj = {
+          xh: row.xh,
+          bsmSlsq: row.bsmSlsq,
+          moveDirection: "UP",
+        };
+        // 接口待调
+        moveClml(obj).then(async (res) => {
+          if (res.code == 200) {
+            let res = await this.clmlInitList()
+            if (res == 200) {
+              this.$message({
+                message: '上移成功',
+                type: 'success'
+              })
+              this.$parent.setTableData(this.data)
+            }
+          } else {
+            this.$message.error(res.message);
+          }
+        })
+      },
+      // 下移
+      moveDown (index, row) {
+        let obj = {
+          xh: row.xh,
+          bsmSlsq: row.bsmSlsq,
+          moveDirection: "DOWN",
+        }
+        // 接口待调
+        moveClml(obj).then(async (res) => {
+          if (res.code == 200) {
+            let res = await this.clmlInitList()
+            if (res == 200) {
+              this.$message({
+                message: '下移成功',
+                type: 'success'
+              })
+            }
+          } else {
+            this.$message.error(res.message);
+          }
+        })
+      },
+      // 材料目录删除
+      handleDelete (index, row) {
+        let that = this
+        this.$confirm('此操作将永久删除该 是否继续?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          deleteSjClml({ sjBsm: row.bsmSj }).then(async (res) => {
+            if (res.code == 200) {
+              let res = await that.clmlInitList()
+              if (res == 200) {
+                that.$message({
+                  message: "删除成功",
+                  type: "success",
+                })
+                // this.$parent.setTableData(this.data)
+              }
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '已取消删除'
+          })
+        })
+      },
+      // 字典
+      dicStatus (val, code) {
+        let data = store.getters.dictData[code],
+          name = "暂无";
+        if (data) {
+          data.map((item) => {
+            if (item.dcode == val) {
+              name = item.dname;
+            }
+          });
+          return name;
+        }
+      }
+    }
+  }
+</script>
+<style scoped lang='scss'>
+  @import "~@/styles/mixin.scss";
+  .clmlmx-box {
+    margin: 0 auto;
+
+    .title {
+      text-align: center;
+      height: 60px;
+      line-height: 60px;
+      border: 1px solid #dfe6ec;
+      font-size: 20px;
+      background: #81d3f81a;
+      margin-bottom: -1px;
+    }
+  }
+</style>
diff --git a/src/views/djbBook/components/djbdyeditDialog.vue b/src/views/djbBook/components/djbdyeditDialog.vue
deleted file mode 100644
index 47fa43c..0000000
--- a/src/views/djbBook/components/djbdyeditDialog.vue
+++ /dev/null
@@ -1,269 +0,0 @@
-<template>
-  <div class="jtfccx-edit">
-    <div class="jtfccx-edit-con">
-      <el-form ref="form"  :model="form" label-width="160px">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="权属状态" label-width="140px">
-              <el-select v-model="form.qszt">
-                <el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value">
-              </el-option>
-            </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="权利类型" label-width="140px">
-              <el-input v-model="form.qllxmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="登记类型" label-width="140px">
-              <el-input v-model="form.djlxmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="上手业务号" label-width="140px">
-              <el-input v-model="form.ssywh" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="档案号" label-width="140px">
-              <el-input v-model="form.dah" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="业务号" label-width="140px">
-              <el-input v-model="form.ywh" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="不动产单元号" label-width="140px">
-              <el-input v-model="form.bdcdyh" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="坐落" label-width="140px">
-              <el-input v-model="form.zl" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="共有情况" label-width="140px">
-              <el-input v-model="form.gyqk" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="权利人类型" label-width="140px">
-              <el-input v-model="form.qlrlx" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="权利人" label-width="140px">
-              <el-input v-model="form.qlrmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="证件种类" label-width="140px">
-              <el-input v-model="form.qlrzjzl" ></el-input>
-            </el-form-item>
-          </el-col>
-            <el-col :span="8">
-            <el-form-item label="证件号" label-width="140px">
-              <el-input v-model="form.qlrzjhm" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="土地使用权人" label-width="140px">
-              <el-input v-model="form.tdsyqr" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="独用土地面积(m²)" label-width="140px">
-              <el-input v-model="form.dytdmj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="分摊土地面积(m²)" label-width="140px">
-              <el-input v-model="form.fttdmj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="使用权起止时间" label-width="140px">
-              <el-input v-model="form.syqqzsj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="土地使用期限" label-width="140px">
-              <el-input v-model="form.tdsyqx" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="房地产交易价格(万元)" label-width="140px">
-              <el-input v-model="form.fdcjyjg" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="规划用途" label-width="140px">
-              <el-input v-model="form.ytmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="房屋性质" label-width="140px">
-              <el-input v-model="form.fwxzmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="房屋结构" label-width="140px">
-              <el-input v-model="form.fwjgmc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="所在层" label-width="140px">
-              <el-input v-model="form.szc" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="总层数" label-width="140px">
-              <el-input v-model="form.fj" ></el-input>
-            </el-form-item>
-          </el-col>
-           <el-col :span="8">
-            <el-form-item label="建筑面积(m2)" label-width="140px">
-              <el-input v-model="form.mj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="专有建筑面积(m2)" label-width="140px">
-              <el-input v-model="form.zyjzmj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="分摊建筑面积(m2)" label-width="140px">
-              <el-input v-model="form.jgsj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="登记原因" label-width="140px">
-              <el-input v-model="form.djyy" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="不动产权证号" label-width="140px">
-              <el-input v-model="form.bdcqzh" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="登记时间" label-width="140px">
-              <el-input v-model="form.djsj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="登簿人" label-width="140px">
-              <el-input v-model="form.dbr" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="附记" label-width="140px">
-              <el-input v-model="form.fj" ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="总层数" label-width="140px">
-              <el-input v-model="form.fj" ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-            <el-form-item class="btn">
-      <el-button type="primary" @click="submitForm">保存</el-button>
-      <el-button @click="closeDialog">取消</el-button>
-    </el-form-item>
-      </el-form>
-
-    </div>
-
-  </div>
-</template>
-<script>
-export default {
-  props: {
-    formData: {
-      type: Object,
-      default: () => { },
-    },
-  },
-  data () {
-    return {
-      form:{},
-     qsztList: [
-        {
-          value: "0",
-          label: "临时",
-        },
-        {
-          value: "1",
-          label: "现势",
-        },
-        {
-          value: "2",
-          label: "历史",
-        },
-
-        ],
-       label:"",
-    };
-  },
-  mounted () {
-   if (this.formData.data) {
-          this.$nextTick(() => {
-            this.form = Object.assign({}, this.formData.data)
-            this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史"
-          })
-        }
-  },
-
-  methods: {
-       //新增常用意见
-      submitForm () {
-
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
-            //   if (res.code == 200) {
-            //     this.$message.success("新增成功")
-            //     this.closeaddDiglog();
-            //     this.getList()
-            //   } else {
-            //     this.$message.error(res.message)
-            //   }
-            // })
-          } else {
-            return false;
-          }
-        });
-      },
-      closeDialog () {
-      this.$popupCacel()
-      this.$refs['form'].resetFields();
-      // this.resetTableFields();
-    }
-  },
-};
-</script>
-<style scoped lang="scss">
-@import "~@/styles/mixin.scss";
-@import "~@/styles/public.scss";
-
-
-.jtfccx-edit {
-  @include flex;
-  flex-direction: column;
-  overflow-y: hidden;
-  max-height: 85vh;
-  padding: 0 2px;
-
-
- .btn{
-   text-align: center;
-
- }
-}
-</style>
diff --git a/src/views/djbBook/components/djbeditDialog.vue b/src/views/djbBook/components/djbeditDialog.vue
index 4c673ca..7ae9c2a 100644
--- a/src/views/djbBook/components/djbeditDialog.vue
+++ b/src/views/djbBook/components/djbeditDialog.vue
@@ -1,49 +1,267 @@
 <template>
-  <div class="jtfccx-edit">
-    <div class="jtfccx-edit-con">
-      <el-form ref="form"  :model="form" label-width="160px">
-        <el-row>
-          <el-col :span="8">
-            <el-form-item label="权属状态" label-width="140px">
-              <el-select v-model="form.qszt">
-                <el-option v-for="item in qsztList" :key="item.value" :label="item.label" :value="item.value">
-              </el-option>
-            </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="8" v-for="item in datalist" :key="item.bdcdyh">
-            <el-form-item :prop="item.prop" :label="item.label" label-width="140px">
-              <el-input v-model="form[item.prop]" ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-            <el-form-item class="btn">
-      <el-button type="primary" @click="submitForm">保存</el-button>
-      <el-button @click="closeDialog">取消</el-button>
-    </el-form-item>
-      </el-form>
+  <div class="from-clues">
+    <el-tabs type="card" v-model="activeName" @tab-click="handleTabClick">
+      <el-tab-pane label="受理信息" name="slxx"></el-tab-pane>
+      <el-tab-pane
+        :disabled="isshow"
+        label="审批意见"
+        name="spyj"
+      ></el-tab-pane>
+      <el-tab-pane
+        :disabled="isshow"
+        label="材料信息"
+        name="clxx"
+      ></el-tab-pane>
+    </el-tabs>
+    <div v-if="activeName == 'slxx'">
+      <div class="from-clues-header">
+        <el-form ref="form" :model="form" label-width="160px">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="权属状态" label-width="140px">
+                <el-select v-model="form.qszt">
+                  <el-option
+                    v-for="item in qsztList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-for="item in datalist" :key="item.bdcdyh">
+              <el-form-item
+                :prop="item.prop"
+                :label="item.label"
+                label-width="140px"
+              >
+                <el-input v-model="form[item.prop]"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+         <div class="btn">
+            <el-button type="primary" @click="slxxsubmitForm">保存</el-button>
+            <el-button @click="closeDialog">取消</el-button>
+          </div>
+      </div>
+    </div>
+    <div v-if="activeName == 'spyj'">
+      <div class="from-clues-header spyj">
+        <div class="box">
+          <b class="spyj_title">审批表</b>
+          <el-form
+            :model="ruleForm"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="120px"
+          >
+            <div class="spyj_form">
+              <div class="item_left">初审意见</div>
+              <div class="item_right">
+                <el-row>
+                  <el-col :span="24">
+                    <el-form-item
+                      label-width="0"
+                      class="opinion_item"
+                      prop="shyj"
+                    >
+                      <el-input
+                        type="textarea"
+                        :rows="4"
+                        class="opinion"
+                        placeholder="请输入审批意见"
+                        v-model="ruleForm.shyj"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="16">
+                    <el-form-item
+                      prop="shryxm"
+                      label="审查人"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shr"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-form-item
+                      label="审核时间"
+                      prop="shjssj"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shsj"></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+              </div>
+            </div>
+          </el-form>
+          <el-form
+            :model="ruleForm"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="120px"
+          >
+            <div class="spyj_form">
+              <div class="item_left">复审意见</div>
+              <div class="item_right">
+                <el-row>
+                  <el-col :span="24">
+                    <el-form-item
+                      label-width="0"
+                      class="opinion_item"
+                      prop="shyj"
+                    >
+                      <el-input
+                        type="textarea"
+                        :rows="4"
+                        class="opinion"
+                        placeholder="请输入审批意见"
+                        v-model="ruleForm.shyj"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="16">
+                    <el-form-item
+                      prop="shryxm"
+                      label="审查人"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shr"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-form-item
+                      label="审核时间"
+                      prop="shjssj"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shsj"></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+              </div>
+            </div>
+          </el-form>
+          <el-form
+            :model="ruleForm"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="120px"
+          >
+            <div class="spyj_form">
+              <div class="item_left">核定意见</div>
+              <div class="item_right">
+                <el-row>
+                  <el-col :span="24">
+                    <el-form-item
+                      label-width="0"
+                      class="opinion_item"
+                      prop="shyj"
+                    >
+                      <el-input
+                        type="textarea"
+                        :rows="4"
+                        class="opinion"
+                        placeholder="请输入审批意见"
+                        v-model="ruleForm.shyj"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row>
+                  <el-col :span="16">
+                    <el-form-item
+                      prop="shryxm"
+                      label="审查人"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shr"></el-input>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-form-item
+                      label="审核时间"
+                      prop="shjssj"
+                      label-width="90px"
+                    >
+                      <el-input v-model="ruleForm.shsj"></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+              </div>
+            </div>
+          </el-form>
 
+         </div>
+            <div class="btn">
+            <el-button type="primary" @click="spyjsubmitForm">保存</el-button>
+            <el-button @click="closeDialog">取消</el-button>
+           </div>
+      </div>
     </div>
+    <div v-if="activeName == 'clxx'">
+      <div class="from-clues-header">
+           <div class="clxx">
+              <div class="right">
+                <!-- 材料预览 -->
+                <div class="clyl-box">
+                  <div class="menu-tree">
+                    <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button>
+                    <div class="item">
+                      材料目录({{tableData.length}})
+                      <div style="margin-top:10px">
+                        <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div>
+                        <div v-for="(item,index) in tableData" :key="item.bsmSj"
+                          :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)">
+                          <span v-if="item.isrequired==1" class="required">必选</span>
+                          {{ item.sjmc }}
+                          <span class="cl_number">({{item.children ? item.children.length : 0}})</span>
+                        </div>
+                      </div>
+                    </div>
+                    <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()">新增</el-button>
+                  </div>
+                  <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview"
+                    @prevPriview="prevPriview" />
+                </div>
+              </div>
+             <clxxAddDialog v-model="isDialog" />
+           </div>
+          <div class="btn">
+            <el-button type="primary" @click="clxxsubmitForm">保存</el-button>
+            <el-button @click="closeDialog">取消</el-button>
+         </div>
 
+      </div>
+    </div>
   </div>
 </template>
 <script>
+ import { mapGetters } from "vuex";
+  import clxxAddDialog from "./tabsconcent/clxxAddDialog.vue";
+   import imagePreview from '@/views/components/imagePreview.vue'
+  import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
 export default {
+ components: { clxxAddDialog},
   props: {
     formData: {
       type: Object,
-      default: () => { },
+      default: () => {},
     },
   },
-  data () {
+  data() {
     return {
-      form:{},
-      datalist:[],
-     qsztList: [
-        {
-          value: "0",
-          label: "临时",
-        },
+      activeName: "slxx",
+      form: {},
+      datalist: [],
+      qsztList: [
         {
           value: "1",
           label: "现势",
@@ -52,51 +270,269 @@ export default {
           value: "2",
           label: "历史",
         },
+      ],
+      label: "",
+      isshow: true,
+
+      // 审批
+      bsmSlsq: "",
+      //刷新值
+      bestepid: "",
+      ruleForm: {},
+      rules: {
+        shyj: [{ required: true, message: "请输入审批意见", trigger: "blur" }],
+      },
 
-        ],
-       label:"",
+      // 材料
+      isDialog: false,
+      iclass: "",
+      tableData: [],
+      // 材料目录选中
+      treeCheckIndex: 0,
+      treeCheckId: "",
+      key: 0,
+      tableDatas: [],
+      previewImg: {
+        // 收件标识码
+        bsmSj: "",
+        bsmSlsq: this.$parent.bsmSlsq,
+        index: 0,
+        selectedIndex: 0,
+        imgList: [],
+      },
     };
   },
-  mounted () {
-   if (this.formData.data) {
-          this.$nextTick(() => {
-            this.form = Object.assign({}, this.formData.data)
-            // this.datalist = Object.assign([], this.formData.datalist)
-            this.form.qszt=this.form.qszt=='0'?"临时":this.form.qszt=='1'?"现势":"历史"
-          })
-        }
-      // this.datalist = this.formData.datalist
-      this.datalist = JSON.parse(JSON.stringify(this.formData.datalist));
-         this.datalist.shift()
-         this.datalist.shift()
+    computed: {
+      ...mapGetters(["dictData"])
+    },
+      created () {
+      this.clmlInitList(1)
+    },
+  mounted() {
+    if (this.formData.data) {
+      this.$nextTick(() => {
+        this.form = Object.assign({}, this.formData.data);
+        // this.datalist = Object.assign([], this.formData.datalist)
+        this.form.qszt =
+          this.form.qszt == "0"
+            ? "临时"
+            : this.form.qszt == "1"
+            ? "现势"
+            : "历史";
+      });
+    }
 
+    // this.datalist = this.formData.datalist
+    this.datalist = JSON.parse(JSON.stringify(this.formData.datalist));
+    this.datalist.shift();
+    this.datalist.shift();
+    console.log("this.datalist", this.datalist);
   },
 
   methods: {
-       //新增常用意见
-      submitForm () {
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
-            //   if (res.code == 200) {
-            //     this.$message.success("新增成功")
-            //     this.closeaddDiglog();
-            //     this.getList()
-            //   } else {
-            //     this.$message.error(res.message)
-            //   }
-            // })
-            this.$popupCacel()
-          } else {
-            return false;
+    //  受理信息保存
+    slxxsubmitForm() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          // addUserCommonOpinion({ commonOpinion: this.form.commonOpinion }).then(res => {
+          //   if (res.code == 200) {
+          //     this.$message.success("新增成功")
+          //     this.closeaddDiglog();
+          //     this.getList()
+          //   } else {
+          //     this.$message.error(res.message)
+          //   }
+          // })
+        } else {
+          return false;
+        }
+      });
+      this.isshow = false;
+    },
+    // 审批意见保存
+    spyjsubmitForm() {
+      console.log("this.ruleForm",this.ruleForm);
+      //     this.ruleForm.bsmSlsq = this.bsmSlsq
+      // this.ruleForm.bestepid = this.bestepid
+      // saveSpyjBySlsq(this.ruleForm).then(res => {
+      //   if (res.code === 200) {
+      //     this.$message.success("保存成功")
+      //     this.refresh += 1
+      //   } else {
+      //     this.$message.error(res.message)
+      //   }
+      // })
+    },
+
+    // 材料信息保存
+    clxxsubmitForm() {},
+    closeDialog() {
+      this.$alert("取消后填写内容将被清空", "提示", {
+        confirmButtonText: "确定",
+        callback: (action) => {
+          this.$message({
+            type: "info",
+            message: "已取消",
+          });
+          this.$popupCacel();
+          this.$refs["form"].resetFields();
+        },
+      });
+
+      // this.resetTableFields();
+    },
+    handleTabClick() {},
+
+    //使用常用意见
+    useOpinion(opinion) {
+      this.ruleForm.shyj = opinion;
+    },
+
+
+    // 材料上传
+     // 自动预览
+      nextPriview () {
+        if (this.treeCheckIndex < this.tableData.length) {
+          this.treeCheckIndex++
+          this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
+          this.previewImg.index = 0
+          this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
+          this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
+        }
+      },
+      prevPriview () {
+        if (this.treeCheckIndex >= 1) {
+          this.treeCheckIndex--
+          this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
+          this.previewImg.index = this.previewImg.imgList.length
+          this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
+          this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
+        }
+      },
+      // 材料目录明细初始化
+      clmlInitList (type) {
+        this.tableData = []
+        //type  1:列表初始化  2:新增材料
+        // return new Promise(resolve => {
+        //   this.unitData = this.$parent.unitData;
+        //   var formdata = new FormData();
+        //   formdata.append("bsmSldy", this.unitData[0]?.bsmSldy);
+        //   formdata.append("bsmSlsq", this.$parent.bsmSlsq);
+        //   InitClml(formdata).then((res) => {
+        //     if (res.code == 200) {
+        //       resolve(res.code)
+        //       if (res.result && res.result.length > 0) {
+
+        //         if (type == 1) {
+        //           this.treeClick(this.tableData[0], 0);
+        //         } else {
+        //           //新增材料后刷新列表焦点置于新增的对象上
+        //           this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1);
+        //         }
+        //       }
+        //     } else {
+        //       this.$message.error(res.message)
+        //     }
+        //   })
+        // })
+      },
+      setChecked (item) {
+        this.treeCheckId = item.bsmSj;
+        this.title = item.sjmc;
+        this.titleYs = 1;
+        this.titleNum = item.children.length;
+        this.previewImg.imgList = item.children;
+        this.previewImg.bsmSj = item.bsmSj;
+      },
+      updateList (val) {
+        let that = this
+        if (val != null) { //删除最后一张图片时 val=null
+          this.tableData.forEach(item => {
+            if (item.bsmSj === val.bsmSj) {
+              item.children = val.children
+            }
+          })
+          this.previewImg.imgList = _.cloneDeep(val.children)
+          if (this.previewImg.index == this.previewImg.imgList.length) {
+            this.previewImg.index = this.previewImg.index - 1
+          }
+        } else {
+          this.previewImg.imgList = []
+          this.tableData.forEach((item, index) => {
+            if (this.treeCheckId == item.bsmSj) {
+              item.children = []
+              that.treeCheckIndex = index
+            }
+          })
+        }
+
+      },
+      // 添加材料目录
+      handleAdd () {
+      console.log("新增");
+        this.isDialog = true;
+      },
+      // 新增弹窗保存
+      addSave (data) {
+        let obj = {
+          bsmSlsq: this.$parent.bsmSlsq,
+          isrequired: "1",
+          sjmc: data.clmc,
+          sjsl: 0,
+          smzt: '',
+          ys: 0,
+          sjlx: data.cllx,
+          sfxjcl: "1", // 是否必选
+        };
+        saveClml(obj).then(async (res) => {
+          if (res.code == 200) {
+            let res = await this.clmlInitList(2)
+            if (res == 200) this.$message({
+              message: "新增成功",
+              type: "success",
+            })
           }
         });
       },
-      closeDialog () {
-      this.$popupCacel()
-      this.$refs['form'].resetFields();
-      // this.resetTableFields();
-    }
+      // 材料目录点击选中
+      treeClick (item, index) {
+        this.previewImg.index = 0
+        this.treeCheckId = item?.bsmSj
+        this.treeCheckIndex = index
+        this.previewImg.imgList = item?.children
+        this.previewImg.bsmSj = item?.bsmSj
+      },
+      // 小图片点击
+      imgClick (item, index) {
+        this.showImg = item;
+        this.titleYs = index + 1;
+      },
+      // 字典
+      dicStatus (val, code) {
+        let data = this.$store.getters.dictData[code],
+          name = "暂无";
+        if (data) {
+          data.map((item) => {
+            if (item.dcode == val) {
+              name = item.dname
+            }
+          });
+          return name
+        }
+      },
+      //查看明细
+      viewDetail () {
+        console.log("查看明细");
+        this.$popupDialog("查看明细", "djbBook/components/clxxDetailDialog", {
+          data: this.tableData
+        }, "60%")
+      },
+      //设置tableData
+      setTableData (tableData) {
+        this.$nextTick(res => {
+          this.tableData = tableData;
+        })
+      },
   },
 };
 </script>
@@ -104,18 +540,237 @@ export default {
 @import "~@/styles/mixin.scss";
 @import "~@/styles/public.scss";
 
-
-.jtfccx-edit {
+.from-clues-header {
   @include flex;
   flex-direction: column;
   overflow-y: hidden;
-  max-height: 85vh;
+  height: 620px;
   padding: 0 2px;
 
+  .btn {
+    margin-top: 40px;
+    margin-bottom: 20px;
+    text-align: center;
+  }
+}
+
+// 审批意见样式
+
+.spyj {
+  .box {
+    overflow-x: auto;
+    width: 100%;
+    height: 95%;
+    background: #fff;
+    text-align: center;
+    padding: 4px;
+    overflow-y: scroll;
+    padding-top: 20px;
+    padding: 20px 40px;
+    /deep/.el-input__inner {
+      width: 200px;
+      border:none;
+    }
+  }
+  .spyj_title {
+    line-height: 68px;
+    border: 1px solid $borderColor;
+    text-align: center;
+    font-size: 22px;
+    font-weight: 400;
+    background-color: #eceef2;
+    display: block;
+    border-bottom: none;
+  }
+
+  /deep/.el-form-item {
+    margin-bottom: 0;
+  }
+
+  .bottom10 {
+    margin-bottom: 15px;
+  }
+
+  .spyj_form {
+    display: flex;
+    border: 1px solid $borderColor;
+
+    .item_left {
+      width: 150px;
+      background-color: #f8f8fa;
+      color: #606266;
+      display: flex;
+      font-size: 14px;
+      text-indent: 80px;
+      align-items: center;
+      border-right: 1px solid $borderColor;
+    }
+
+    .item_right {
+      flex: 1;
+      width: 100%;
+
+      /deep/.el-form-item__label {
+        background-color: #f8f8fa;
+      }
+      /deep/.el-form-item__content {
+        display: block;
+        text-align: left;
+        text-indent: 10px;
+      }
+      .opinion_item {
+        /deep/.el-form-item__error {
+          margin-top: -16px !important;
+          left: 3px;
+        }
+
+        border-bottom: 1px solid $borderColor;
+      }
+
+      .opinion {
+        position: relative;
+        font-size: 14px;
 
- .btn{
-   text-align: center;
+        /deep/.el-textarea__inner {
+          border: none;
+        }
+      }
 
- }
+      .opinion_btn {
+        position: absolute;
+        right: 15px;
+        bottom: 10px;
+      }
+    }
+  }
+
+  .submit_button {
+    text-align: center;
+    margin: 15px 0;
+  }
 }
+
+// 材料信息样式
+  .active {
+    background: $light-blue !important;
+    color: #fff;
+  }
+
+  .required {
+    font-size: 12px;
+    color: $pink;
+    float: left;
+  }
+
+  .cl_number {
+    float: right;
+  }
+
+  .clxx {
+    width: 100%;
+    display: flex;
+    padding-left: 5px;
+    height: calc(100vh - 125px);
+
+    .left {
+      display: flex;
+      flex-direction: column;
+      justify-content: space-between;
+
+      .item {
+        width: 28px;
+        height: 49%;
+        @include flex-center;
+        background-color: #e4e7ed;
+        border-bottom-right-radius: 10px;
+        padding: 5px;
+        cursor: pointer;
+        transition: all 0.3s;
+
+        &:hover {
+          @extend .active;
+        }
+      }
+    }
+
+    .right {
+      width: 100%;
+      height: 100%;
+
+      .clmlmx-box {
+        margin: 0 auto;
+
+        .title {
+          text-align: center;
+          height: 60px;
+          line-height: 60px;
+          border: 1px solid #dfe6ec;
+          font-size: 20px;
+          background: #81d3f81a;
+          margin-bottom: -1px;
+        }
+      }
+
+      .clyl-box {
+        width: 100%;
+        height: 100%;
+        display: flex;
+
+        .menu-tree {
+          width: 20%;
+          min-width: 160px;
+          height: 100%;
+          margin-right: 10px;
+          border-right: 1px dotted #d9d9d9;
+          padding: 0 15px;
+
+          .item {
+            line-height: 30px;
+            padding-top: 5px;
+            border-bottom: 1px solid #e8e8e8;
+            font-size: 16px;
+            text-align: center;
+            color: $light-blue;
+
+            .itemIcon {
+              float: right;
+              line-height: 60px;
+              cursor: pointer;
+            }
+
+            .child {
+              line-height: 32px;
+              border-bottom: 1px solid #e8e8e8;
+              padding-left: 10px;
+              color: #6b6b6b;
+              cursor: pointer;
+              box-sizing: border-box;
+              border-radius: 6px;
+              line-height: 20px;
+              transition: all 0.3s;
+              padding: 8px 0;
+            }
+
+            .child:hover {
+              color: $light-blue;
+              transform: scale(1.1);
+            }
+
+            .checked {
+              border: 1px solid $light-blue;
+              color: $light-blue;
+            }
+          }
+        }
+
+        .clyl-img {
+          width: 75%;
+          height: 100%;
+          background: #f3f4f7;
+          margin: 0 auto;
+          position: relative;
+        }
+      }
+    }
+  }
 </style>
diff --git a/src/views/djbBook/components/tabsconcent/clxxAddDialog.vue b/src/views/djbBook/components/tabsconcent/clxxAddDialog.vue
new file mode 100644
index 0000000..c66a854
--- /dev/null
+++ b/src/views/djbBook/components/tabsconcent/clxxAddDialog.vue
@@ -0,0 +1,80 @@
+<!--
+ * @Description:
+ * @Autor: renchao
+ * @LastEditTime: 2023-05-09 09:20:10
+-->
+<template>
+  <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
+    :isFullscreen="false">
+    <el-form :model="ruleForm" ref="ruleForm" label-width="70px">
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="材料类型">
+            <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
+              <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="20">
+        <el-col :span="24">
+          <el-form-item label="材料名称">
+            <el-input v-model="ruleForm.clmc"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </dialogBox>
+</template>
+
+<script>
+  import { mapGetters } from "vuex";
+  export default {
+    props: {
+      value: { type: Boolean, default: false },
+    },
+    data () {
+      return {
+        myValue: this.value,
+        ruleForm: {
+          cllx: "",
+          clmc: "",
+        },
+      };
+    },
+    computed: {
+      ...mapGetters(["dictData"]),
+    },
+    watch: {
+      value (val) {
+        this.myValue = val;
+      },
+    },
+    methods: {
+      closeDialog () {
+        this.$emit("input", false);
+        this.ruleForm = {
+          cllx: "",
+          clmc: "",
+        }
+      },
+      handleSubmit () {
+        this.$parent.addSave(this.ruleForm);
+        this.ruleForm = {
+          cllx: "",
+          clmc: "",
+        }
+        this.$emit("input", false);
+      },
+    },
+  };
+</script>
+<style scoped lang="scss">
+  .submit-button {
+    text-align: center;
+    height: 52px;
+    padding-top: 10px;
+    background-color: #fff;
+  }
+</style>
diff --git a/src/views/djbBook/components/tabsconcent/clxxUnify.vue b/src/views/djbBook/components/tabsconcent/clxxUnify.vue
new file mode 100644
index 0000000..bf96d96
--- /dev/null
+++ b/src/views/djbBook/components/tabsconcent/clxxUnify.vue
@@ -0,0 +1,334 @@
+<!--
+ * @Description:
+ * @Autor: renchao
+ * @LastEditTime: 2023-05-17 10:40:38
+-->
+<template>
+  <div class="clxx">
+    <div class="right">
+      <!-- 材料预览 -->
+      <div class="clyl-box">
+        <div class="menu-tree">
+          <el-button type="primary" native-type="submit" @click="viewDetail" style="width:100%;margin-top:10px;">查看明细</el-button>
+          <div class="item">
+            材料目录({{tableData.length}})
+            <div style="margin-top:10px">
+              <div style="text-align: center;line-height:20px;color:black;font-size:14px" v-if="tableData.length == 0">暂无数据</div>
+              <div v-for="(item,index) in tableData" :key="item.bsmSj"
+                :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']" @click="treeClick(item,index)">
+                <span v-if="item.isrequired==1" class="required">必选</span>
+                {{ item.sjmc }}
+                <span class="cl_number">({{item.children ? item.children.length : 0}})</span>
+              </div>
+            </div>
+          </div>
+          <el-button type="primary" native-type="submit" style="width:100%" @click="handleAdd()" v-if="!this.$route.query.viewtype">新增</el-button>
+        </div>
+        <image-preview ref='imageRef' :previewImg="previewImg" @updateList="updateList" @nextPriview="nextPriview"
+          @prevPriview="prevPriview" />
+      </div>
+    </div>
+    <clxxAddDialog v-model="isDialog" />
+  </div>
+</template>
+<script>
+  import { mapGetters } from "vuex";
+  import clxxAddDialog from "./clxxAddDialog.vue";
+  import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
+  export default {
+    components: { clxxAddDialog},
+    data () {
+      return {
+        isDialog: false,
+        iclass: "",
+        // 材料目录选中
+        treeCheckIndex: 0,
+        treeCheckId: "",
+        key: 0,
+        tableData: [],
+        previewImg: {
+          // 收件标识码
+          bsmSj: '',
+          bsmSlsq: this.$parent.bsmSlsq,
+          index: 0,
+          selectedIndex: 0,
+          imgList: []
+        }
+      }
+    },
+    computed: {
+      ...mapGetters(["dictData"])
+    },
+    created () {
+      this.clmlInitList(1)
+    },
+    methods: {
+      // 自动预览
+      nextPriview () {
+        if (this.treeCheckIndex < this.tableData.length) {
+          this.treeCheckIndex++
+          this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
+          this.previewImg.index = 0
+          this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
+          this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
+        }
+      },
+      prevPriview () {
+        if (this.treeCheckIndex >= 1) {
+          this.treeCheckIndex--
+          this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj
+          this.previewImg.index = this.previewImg.imgList.length
+          this.previewImg.imgList = this.tableData[this.treeCheckIndex].children
+          this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj
+        }
+      },
+      // 材料目录明细初始化
+      clmlInitList (type) {
+        //type  1:列表初始化  2:新增材料
+        return new Promise(resolve => {
+          this.unitData = this.$parent.unitData;
+          var formdata = new FormData();
+          formdata.append("bsmSldy", this.unitData[0]?.bsmSldy);
+          formdata.append("bsmSlsq", this.$parent.bsmSlsq);
+          InitClml(formdata).then((res) => {
+            if (res.code == 200) {
+              resolve(res.code)
+              if (res.result && res.result.length > 0) {
+                this.tableData = res.result;
+                if (type == 1) {
+                  this.treeClick(this.tableData[0], 0);
+                } else {
+                  //新增材料后刷新列表焦点置于新增的对象上
+                  this.treeClick(this.tableData[this.tableData.length - 1], this.tableData.length - 1);
+                }
+              }
+            } else {
+              this.$message.error(res.message)
+            }
+          })
+        })
+      },
+      setChecked (item) {
+        this.treeCheckId = item.bsmSj;
+        this.title = item.sjmc;
+        this.titleYs = 1;
+        this.titleNum = item.children.length;
+        this.previewImg.imgList = item.children;
+        this.previewImg.bsmSj = item.bsmSj;
+      },
+      updateList (val) {
+        let that = this
+        if (val != null) { //删除最后一张图片时 val=null
+          this.tableData.forEach(item => {
+            if (item.bsmSj === val.bsmSj) {
+              item.children = val.children
+            }
+          })
+          this.previewImg.imgList = _.cloneDeep(val.children)
+          if (this.previewImg.index == this.previewImg.imgList.length) {
+            this.previewImg.index = this.previewImg.index - 1
+          }
+        } else {
+          this.previewImg.imgList = []
+          this.tableData.forEach((item, index) => {
+            if (this.treeCheckId == item.bsmSj) {
+              item.children = []
+              that.treeCheckIndex = index
+            }
+          })
+        }
+
+      },
+      // 添加材料目录
+      handleAdd () {
+        this.isDialog = true;
+      },
+      // 新增弹窗保存
+      addSave (data) {
+        let obj = {
+          bsmSlsq: this.$parent.bsmSlsq,
+          isrequired: "1",
+          sjmc: data.clmc,
+          sjsl: 0,
+          smzt: '',
+          ys: 0,
+          sjlx: data.cllx,
+          sfxjcl: "1", // 是否必选
+        };
+        saveClml(obj).then(async (res) => {
+          if (res.code == 200) {
+            let res = await this.clmlInitList(2)
+            if (res == 200) this.$message({
+              message: "新增成功",
+              type: "success",
+            })
+          }
+        });
+      },
+      // 材料目录点击选中
+      treeClick (item, index) {
+        this.previewImg.index = 0
+        this.treeCheckId = item?.bsmSj
+        this.treeCheckIndex = index
+        this.previewImg.imgList = item?.children
+        this.previewImg.bsmSj = item?.bsmSj
+      },
+      // 小图片点击
+      imgClick (item, index) {
+        this.showImg = item;
+        this.titleYs = index + 1;
+      },
+      // 字典
+      dicStatus (val, code) {
+        let data = this.$store.getters.dictData[code],
+          name = "暂无";
+        if (data) {
+          data.map((item) => {
+            if (item.dcode == val) {
+              name = item.dname
+            }
+          });
+          return name
+        }
+      },
+      //查看明细
+      viewDetail () {
+        this.$popupDialog("查看明细", "workflow/components/dialog/clxxDetailDialog", {
+          data: this.tableData
+        }, "60%")
+      },
+      //设置tableData
+      setTableData (tableData) {
+        this.$nextTick(res => {
+          this.tableData = tableData;
+        })
+      },
+    },
+  };
+</script>
+<style scoped lang='scss'>
+  @import "~@/styles/mixin.scss";
+
+  .active {
+    background: $light-blue !important;
+    color: #fff;
+  }
+
+  .required {
+    font-size: 12px;
+    color: $pink;
+    float: left;
+  }
+
+  .cl_number {
+    float: right;
+  }
+
+  .clxx {
+    width: 100%;
+    display: flex;
+    padding-left: 5px;
+    height: calc(100vh - 125px);
+
+    .left {
+      display: flex;
+      flex-direction: column;
+      justify-content: space-between;
+
+      .item {
+        width: 28px;
+        height: 49%;
+        @include flex-center;
+        background-color: #e4e7ed;
+        border-bottom-right-radius: 10px;
+        padding: 5px;
+        cursor: pointer;
+        transition: all 0.3s;
+
+        &:hover {
+          @extend .active;
+        }
+      }
+    }
+
+    .right {
+      width: 100%;
+      height: 100%;
+
+      .clmlmx-box {
+        margin: 0 auto;
+
+        .title {
+          text-align: center;
+          height: 60px;
+          line-height: 60px;
+          border: 1px solid #dfe6ec;
+          font-size: 20px;
+          background: #81d3f81a;
+          margin-bottom: -1px;
+        }
+      }
+
+      .clyl-box {
+        width: 100%;
+        height: 100%;
+        display: flex;
+
+        .menu-tree {
+          width: 20%;
+          min-width: 160px;
+          height: 100%;
+          margin-right: 10px;
+          border-right: 1px dotted #d9d9d9;
+          padding: 0 15px;
+
+          .item {
+            line-height: 30px;
+            padding-top: 5px;
+            border-bottom: 1px solid #e8e8e8;
+            font-size: 16px;
+            text-align: center;
+            color: $light-blue;
+
+            .itemIcon {
+              float: right;
+              line-height: 60px;
+              cursor: pointer;
+            }
+
+            .child {
+              line-height: 32px;
+              border-bottom: 1px solid #e8e8e8;
+              padding-left: 10px;
+              color: #6b6b6b;
+              cursor: pointer;
+              box-sizing: border-box;
+              border-radius: 6px;
+              line-height: 20px;
+              transition: all 0.3s;
+              padding: 8px 0;
+            }
+
+            .child:hover {
+              color: $light-blue;
+              transform: scale(1.1);
+            }
+
+            .checked {
+              border: 1px solid $light-blue;
+              color: $light-blue;
+            }
+          }
+        }
+
+        .clyl-img {
+          width: 75%;
+          height: 100%;
+          background: #f3f4f7;
+          margin: 0 auto;
+          position: relative;
+        }
+      }
+    }
+  }
+</style>
diff --git a/src/views/djbBook/components/tabsconcent/spyj.vue b/src/views/djbBook/components/tabsconcent/spyj.vue
new file mode 100644
index 0000000..65f50a0
--- /dev/null
+++ b/src/views/djbBook/components/tabsconcent/spyj.vue
@@ -0,0 +1,231 @@
+<!--
+ * @Description: 功能:审批意见
+ * @Autor: renchao
+ * @LastEditTime: 2023-05-17 10:41:24
+-->
+<template>
+  <div class='spyj loadingtext'>
+    <div class="box">
+      <b class="spyj_title">审批表</b>
+      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
+        <div class="spyj_form" v-for="(item, index) in tableData" :key="index">
+          <div class="item_left">
+            {{ item.jdmc }}意见
+          </div>
+          <div class="item_right">
+            <el-row>
+              <el-col :span="24">
+                <el-form-item label-width="0" class="opinion_item" prop="shyj">
+                  <el-input type="textarea" :rows="4" class="opinion" placeholder="请输入审批意见"
+                    v-if="item.stepShjy == '1' && ableOperation" v-model="ruleForm.shyj"></el-input>
+                  <el-input type="textarea" :rows="4" class="opinion" v-model="item.shyj" v-else :disabled="true">
+                  </el-input>
+                  <el-button class="opinion_btn" @click="commonOpinion"
+                    v-if="item.stepShjy == '1' && ableOperation">常用意见</el-button>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="16">
+                <el-form-item label="审查人" prop="shryxm">
+                  {{ item.shryxm }}
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="审核时间" prop="shjssj" :key="refresh">
+                  {{ item.shjssj }}
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </div>
+        </div>
+        <div class="submit_button" v-if="ableOperation">
+          <el-button type="primary" @click="onSubmit">保存</el-button>
+        </div>
+      </el-form>
+    </div>
+    <el-empty v-if="isNoData" description="暂无数据"></el-empty>
+  </div>
+</template>
+<script>
+  import { getSpyjList, saveSpyj, saveSpyjBySlsq } from "@/api/fqsq.js";
+  import { mapGetters } from 'vuex'
+  export default {
+    computed: {
+      ...mapGetters(['userData', 'yjsqOptions'])
+    },
+    data () {
+      return {
+        isNoData: false,
+        bsmSlsq: '',
+        //刷新值
+        refresh: 10,
+        ableOperation: true,
+        bsmSlsq: this.$route.query.bsmSlsq,
+        bestepid: this.$route.query.bestepid,
+        ruleForm: {},
+        rules: {
+          shyj: [
+            { required: true, message: '请输入审批意见', trigger: 'blur' }
+          ],
+        },
+        tableData: [],
+        propsParam: {}
+      }
+    },
+    watch: {
+      yjsqOptions: {
+        handler (val) {
+          this.ruleForm.shyj = val
+        },
+        deep: true,
+        immediate: true
+      },
+    },
+    mounted () {
+      this.propsParam = this.$attrs;
+      if (this.$route.query.viewtype) {
+        this.ableOperation = false
+      }
+      this.list();
+    },
+    methods: {
+      //审批意见数据初始化
+      list () {
+        let that = this
+        this.$startLoading()
+        var formdata = new FormData();
+        formdata.append("bsmBusiness", this.propsParam.bsmBusiness);
+        formdata.append("bestepid", this.$route.query.bestepid);
+        formdata.append("ableOperation", this.ableOperation)
+        getSpyjList(formdata).then((res) => {
+          this.$endLoading()
+          if (res.code === 200 && res.result) {
+            this.tableData = res.result ? res.result : []
+            if (res.result.length == 0) {
+              that.isNoData = true
+            }
+            this.ruleForm = res.result[res.result.length - 1]
+          }
+        })
+      },
+      onSubmit () {
+        this.ruleForm.bsmSlsq = this.bsmSlsq
+        this.ruleForm.bestepid = this.bestepid
+        saveSpyjBySlsq(this.ruleForm).then(res => {
+          if (res.code === 200) {
+            this.$message.success("保存成功")
+            this.refresh += 1
+          } else {
+            this.$message.error(res.message)
+          }
+        })
+      },
+      //打开常用意见列表弹窗
+      commonOpinion () {
+        this.$popupDialog("常用意见", "workflow/components/dialog/commonOpinion", {}, "70%", true)
+      },
+      //使用常用意见
+      useOpinion (opinion) {
+        this.ruleForm.shyj = opinion
+      }
+    }
+  }
+</script>
+<style scoped lang='scss'>
+  @import "~@/styles/mixin.scss";
+
+  .spyj {
+    width: 100%;
+    height: 100%;
+    background-color: #f5f5f5;
+    padding: 5px;
+    .box {
+      overflow-x: auto;
+      width: 100%;
+      height: 95%;
+      background: #fff;
+      text-align: center;
+      padding: 4px;
+      overflow-y: scroll;
+      padding-top: 20px;
+      padding: 20px 40px;
+    }
+    .spyj_title {
+      line-height: 68px;
+      border: 1px solid $borderColor;
+      text-align: center;
+      font-size: 22px;
+      font-weight: 400;
+      background-color: #eceef2;
+      display: block;
+      border-bottom: none;
+    }
+
+    /deep/.el-form-item {
+      margin-bottom: 0;
+    }
+
+    .bottom10 {
+      margin-bottom: 15px;
+    }
+
+    .spyj_form {
+      display: flex;
+      border: 1px solid $borderColor;
+
+      .item_left {
+        width: 150px;
+        background-color: #f8f8fa;
+        color: #606266;
+        display: flex;
+        font-size: 14px;
+        text-indent: 80px;
+        align-items: center;
+        border-right: 1px solid $borderColor;
+      }
+
+      .item_right {
+        flex: 1;
+        width: 100%;
+
+        /deep/.el-form-item__label {
+          background-color: #f8f8fa;
+        }
+        /deep/.el-form-item__content {
+          display: block;
+          text-align: left;
+          text-indent: 10px;
+        }
+        .opinion_item {
+          /deep/.el-form-item__error {
+            margin-top: -16px !important;
+            left: 3px;
+          }
+
+          border-bottom: 1px solid $borderColor;
+        }
+
+        .opinion {
+          position: relative;
+          font-size: 14px;
+
+          /deep/.el-textarea__inner {
+            border: none;
+          }
+        }
+
+        .opinion_btn {
+          position: absolute;
+          right: 15px;
+          bottom: 10px;
+        }
+      }
+    }
+
+    .submit_button {
+      text-align: center;
+      margin: 15px 0;
+    }
+  }
+</style>
diff --git a/src/views/djbBook/jsydsyq.vue b/src/views/djbBook/jsydsyq.vue
index 7ee7fac..8ea8f1c 100644
--- a/src/views/djbBook/jsydsyq.vue
+++ b/src/views/djbBook/jsydsyq.vue
@@ -1,7 +1,7 @@
 <!--
  * @Description  :国有建设用地使用权
  * @Autor        : miaofang
- * @LastEditTime : 2023-06-02 17:11:35
+ * @LastEditTime : 2023-06-05 15:40:51
 -->
 <template>
   <div class="djxxTable">
@@ -78,6 +78,7 @@
     },
     methods: {
       loadData () {
+        console.log(" this.propsParam", this.propsParam);
         getJsydsyqList({
           bdcdyid: this.propsParam.bdcdyid,
           qllx: this.propsParam.qllx,
diff --git a/src/views/djbworkflow/components/clxxUnify.vue b/src/views/djbworkflow/components/clxxUnify.vue
index e3fdbae..dbe09e9 100644
--- a/src/views/djbworkflow/components/clxxUnify.vue
+++ b/src/views/djbworkflow/components/clxxUnify.vue
@@ -1,5 +1,5 @@
 <!--
- * @Description: 
+ * @Description:
  * @Autor: renchao
  * @LastEditTime: 2023-05-17 10:40:38
 -->
@@ -335,4 +335,4 @@
       }
     }
   }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/djbworkflow/components/leftmenu/ordinaryMenu.vue b/src/views/djbworkflow/components/leftmenu/ordinaryMenu.vue
index 83146e2..b38f129 100644
--- a/src/views/djbworkflow/components/leftmenu/ordinaryMenu.vue
+++ b/src/views/djbworkflow/components/leftmenu/ordinaryMenu.vue
@@ -7,7 +7,7 @@
   <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
     <div v-if="this.isShowdrawer">
       <div class="title">
-        登记簿列表
+        登记簿补录业务列表
       </div>
        <el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick"
         :default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]">
@@ -105,10 +105,13 @@ import { loadTreeData, getNode } from "./djbFrameData.js";
         bdcdyh: this.bdcdyh,
         qllx: this.qllx,
         bsmQlxx: this.bsmQlxx,
+        bestepid:this.bestepid
       };
       // this.$parent.stepForm();
     },
     handleNodeClick (data, node, elem) {
+      console.log("this.currentSelectProps",this.currentSelectProps);
+      console.log("data",data);
       this.$parent.loadComponent(this.currentSelectProps,data);
       this.$parent.tabset();
     },
--
libgit2 0.24.0