From 47e3a50f0abea3f854d42c3cb16a8e2a73e446e2 Mon Sep 17 00:00:00 2001
From: zhy <luhan1008611>
Date: 星期四, 26 十月 2023 15:54:59 +0800
Subject: [PATCH] feat: 添加全部路由菜单

---
 admin-web/src/views/stock/inventorycount/inventorytask/index.vue    |  272 ++
 admin-web/src/views/departmentitem/ledgerquy/itemQuy/edit.vue       |  111 
 admin-web/src/views/stock/ledger/inventoryQuery/edit.vue            |  111 
 admin-web/src/views/stock/ledger/ledgerQuery/edit.vue               |  111 
 admin-web/src/views/departmentitem/itemret/retDetails/edit.vue      |  111 
 admin-web/src/views/departmentitem/ledgerquy/ledQuy/edit.vue        |  111 
 admin-web/src/views/departmentitem/itemscr/scrappDetails/index.vue  |  280 ++
 admin-web/src/views/stock/ledger/inventoryAlert/index.vue           |  280 ++
 admin-web/src/views/departmentitem/itemscr/scrapping/index.vue      |  449 +++
 admin-web/src/views/stock/inventorycount/inventorytask/edit.vue     |  111 
 admin-web/src/views/departmentitem/itemret/retDetails/index.vue     |  280 ++
 admin-web/src/views/departmentitem/itemscr/scrappDetails/edit.vue   |  111 
 admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue      |  280 ++
 admin-web/src/views/stock/ledger/alertQuery/index.vue               |  280 ++
 admin-web/src/views/statisticalreport/itemReport/index.vue          |  280 ++
 admin-web/src/views/stock/ledger/inventoryQuery/index.vue           |  280 ++
 admin-web/src/views/departmentitem/itemret/returnNote/index.vue     |  449 +++
 admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue |  272 ++
 admin-web/src/views/stock/scrap/scrapDetails/edit.vue               |  111 
 admin-web/src/views/departmentitem/itemdis/disDetails/index.vue     |  280 ++
 admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue       |  280 ++
 admin-web/src/views/stock/ledger/ledgerQuery/index.vue              |  280 ++
 admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue      |  111 
 admin-web/src/views/stock/ledger/alertQuery/edit.vue                |  111 
 admin-web/src/views/stock/inventorycount/exceptionDetails/edit.vue  |  111 
 admin-web/src/views/stock/scrap/itemScrapping/index.vue             |  449 +++
 admin-web/src/views/stock/scrap/scrapDetails/index.vue              |  280 ++
 admin-web/src/views/stock/ledger/inventoryAlert/edit.vue            |  111 
 admin-web/src/views/departmentitem/itemdis/distribution/index.vue   |  449 +++
 admin-web/src/views/statisticalreport/itemReport/edit.vue           |  111 
 30 files changed, 6,863 insertions(+), 0 deletions(-)

diff --git a/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue b/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/departmentitem/itemdis/disDetails/index.vue b/admin-web/src/views/departmentitem/itemdis/disDetails/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemdis/disDetails/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/departmentitem/itemdis/distribution/index.vue b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue
new file mode 100644
index 0000000..ea1d5b0
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemdis/distribution/index.vue
@@ -0,0 +1,449 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-button name="鏂板" @click="addtable" site="form" />
+              <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}">
+                    <el-row class="card"
+                            :gutter="5">
+                        <el-col v-for="(item, index) in proData" :key="index" class="cm-item">
+                          <el-card class="card-data">
+                            <div class="card-container">
+                              <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div>
+                              <div class="one-hed">
+                                <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div>
+                              </div>
+                              <div class="card-end">
+                                <div v-for="(just, index) in item.data" class="two-end">
+                                  <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div>
+                                </div>
+                              </div>
+                            </div>
+                            <div class="card-but">
+                              <my-button name="鏌ョ湅璇︽儏"   site="form" />
+                              <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" />
+                            </div>
+                          </el-card>
+                        </el-col>
+                    </el-row>
+              </div>
+              <el-pagination
+                :small="false"
+                :current-page="1"
+                :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
+                :page-size="10"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="0"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+              />
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <el-dialog title="鏂板鍑哄簱"  :close-on-click-modal="false" :visible.sync="adddialog" width="60%" >
+            <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px">
+              <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="24">
+                    <el-form-item label="鍑哄簱鎵嬬画" prop="name">                      
+                      浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <div style="position: relative;">
+                  <div style="background-color: #F9F9F9;width: 90%;">
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-table :data="formData.tableData" height="100%"  :stripe="true">
+                    <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
+                    <el-table-column prop="time1" label="鍗曚綅"  align="center"> </el-table-column>
+                    <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column>
+                    <el-table-column prop="time2" label="鍑哄簱鏁伴噺"  align="center"> </el-table-column>
+                  </el-table>
+                  </div>
+                  <div style="position: absolute;right: 0;top: 152px;">
+                    <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/>
+                    <my-button name="鏂板鐗╁搧" site="form"/>
+                  </div>
+                </div>
+            </el-form>
+            <div slot="footer" align="center" class="dialog-footer">
+              <my-button name="纭畾" site="form" />
+              <my-button name="鍙栨秷" site="form" @click="adddialog = false"/>
+            </div>
+          </el-dialog>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, myImport},
+  data() {
+    return {
+      
+      adddialog: false,
+      formData:{
+        tableData:[
+          {
+            projectName:'555'
+          },
+          {
+            projectName:'444'
+          }
+        ],
+      },
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍑哄簱鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '鍙ā绯婃悳绱�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val1',
+          label: '鍑哄簱鏃堕棿',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val2',
+          label: '鑷�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '鐘舵��',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // }
+      ],
+      proData: [
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        }
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+    }
+  },
+  computed: {
+    clientHeight () {
+      return document.documentElement.clientHeight
+    },
+  },
+  created() {
+  },
+  methods: {
+    handleSizeChange(){},
+    handleCurrentChange(){},
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+   
+    addtable() {
+      this.adddialog = true
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        // this.$refs.myTable.search(pageNum)
+      } else {
+        // this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      console.log(params,'555');
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.card {
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0px !important;
+    .cm-item {
+        width: 100%;
+    }
+    .cm-item /deep/ .el-card__body {
+        padding: 10px;
+    }
+}
+.card-data{
+  margin-top: 8px;
+  .card-container{
+    display: inline-block; 
+    width: 70%;
+    .hed-one{
+      color: #2298EE;
+      font-size: 18px;
+    }
+    .one-hed{
+      margin-top: 15px;
+      .box{
+        display: inline-block;  
+        margin-right: 20px;  
+      }
+    }
+    .span-two{
+      color: #83919e;
+      font-size: 14px;
+    }
+    .card-end{
+      font-size: 14px;
+      color: #3d3d3d;
+      margin-top: 15px;
+      display: flex;  
+      flex-wrap: wrap; 
+      .two-end{
+        width: calc(33.33% - 20px); 
+        margin-bottom: 15px; 
+      }
+    }
+    
+  }
+  .card-but{
+    display: inline-block; 
+  }
+  .end{
+    display: inline-block;  
+  }
+  
+}
+
+</style>
diff --git a/admin-web/src/views/departmentitem/itemret/retDetails/edit.vue b/admin-web/src/views/departmentitem/itemret/retDetails/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemret/retDetails/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/departmentitem/itemret/retDetails/index.vue b/admin-web/src/views/departmentitem/itemret/retDetails/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemret/retDetails/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/departmentitem/itemret/returnNote/index.vue b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue
new file mode 100644
index 0000000..ea1d5b0
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemret/returnNote/index.vue
@@ -0,0 +1,449 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-button name="鏂板" @click="addtable" site="form" />
+              <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}">
+                    <el-row class="card"
+                            :gutter="5">
+                        <el-col v-for="(item, index) in proData" :key="index" class="cm-item">
+                          <el-card class="card-data">
+                            <div class="card-container">
+                              <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div>
+                              <div class="one-hed">
+                                <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div>
+                              </div>
+                              <div class="card-end">
+                                <div v-for="(just, index) in item.data" class="two-end">
+                                  <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div>
+                                </div>
+                              </div>
+                            </div>
+                            <div class="card-but">
+                              <my-button name="鏌ョ湅璇︽儏"   site="form" />
+                              <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" />
+                            </div>
+                          </el-card>
+                        </el-col>
+                    </el-row>
+              </div>
+              <el-pagination
+                :small="false"
+                :current-page="1"
+                :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
+                :page-size="10"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="0"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+              />
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <el-dialog title="鏂板鍑哄簱"  :close-on-click-modal="false" :visible.sync="adddialog" width="60%" >
+            <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px">
+              <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="24">
+                    <el-form-item label="鍑哄簱鎵嬬画" prop="name">                      
+                      浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <div style="position: relative;">
+                  <div style="background-color: #F9F9F9;width: 90%;">
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-table :data="formData.tableData" height="100%"  :stripe="true">
+                    <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
+                    <el-table-column prop="time1" label="鍗曚綅"  align="center"> </el-table-column>
+                    <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column>
+                    <el-table-column prop="time2" label="鍑哄簱鏁伴噺"  align="center"> </el-table-column>
+                  </el-table>
+                  </div>
+                  <div style="position: absolute;right: 0;top: 152px;">
+                    <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/>
+                    <my-button name="鏂板鐗╁搧" site="form"/>
+                  </div>
+                </div>
+            </el-form>
+            <div slot="footer" align="center" class="dialog-footer">
+              <my-button name="纭畾" site="form" />
+              <my-button name="鍙栨秷" site="form" @click="adddialog = false"/>
+            </div>
+          </el-dialog>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, myImport},
+  data() {
+    return {
+      
+      adddialog: false,
+      formData:{
+        tableData:[
+          {
+            projectName:'555'
+          },
+          {
+            projectName:'444'
+          }
+        ],
+      },
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍑哄簱鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '鍙ā绯婃悳绱�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val1',
+          label: '鍑哄簱鏃堕棿',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val2',
+          label: '鑷�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '鐘舵��',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // }
+      ],
+      proData: [
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        }
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+    }
+  },
+  computed: {
+    clientHeight () {
+      return document.documentElement.clientHeight
+    },
+  },
+  created() {
+  },
+  methods: {
+    handleSizeChange(){},
+    handleCurrentChange(){},
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+   
+    addtable() {
+      this.adddialog = true
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        // this.$refs.myTable.search(pageNum)
+      } else {
+        // this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      console.log(params,'555');
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.card {
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0px !important;
+    .cm-item {
+        width: 100%;
+    }
+    .cm-item /deep/ .el-card__body {
+        padding: 10px;
+    }
+}
+.card-data{
+  margin-top: 8px;
+  .card-container{
+    display: inline-block; 
+    width: 70%;
+    .hed-one{
+      color: #2298EE;
+      font-size: 18px;
+    }
+    .one-hed{
+      margin-top: 15px;
+      .box{
+        display: inline-block;  
+        margin-right: 20px;  
+      }
+    }
+    .span-two{
+      color: #83919e;
+      font-size: 14px;
+    }
+    .card-end{
+      font-size: 14px;
+      color: #3d3d3d;
+      margin-top: 15px;
+      display: flex;  
+      flex-wrap: wrap; 
+      .two-end{
+        width: calc(33.33% - 20px); 
+        margin-bottom: 15px; 
+      }
+    }
+    
+  }
+  .card-but{
+    display: inline-block; 
+  }
+  .end{
+    display: inline-block;  
+  }
+  
+}
+
+</style>
diff --git a/admin-web/src/views/departmentitem/itemscr/scrappDetails/edit.vue b/admin-web/src/views/departmentitem/itemscr/scrappDetails/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemscr/scrappDetails/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/departmentitem/itemscr/scrappDetails/index.vue b/admin-web/src/views/departmentitem/itemscr/scrappDetails/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemscr/scrappDetails/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue
new file mode 100644
index 0000000..ea1d5b0
--- /dev/null
+++ b/admin-web/src/views/departmentitem/itemscr/scrapping/index.vue
@@ -0,0 +1,449 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-button name="鏂板" @click="addtable" site="form" />
+              <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}">
+                    <el-row class="card"
+                            :gutter="5">
+                        <el-col v-for="(item, index) in proData" :key="index" class="cm-item">
+                          <el-card class="card-data">
+                            <div class="card-container">
+                              <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div>
+                              <div class="one-hed">
+                                <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div>
+                              </div>
+                              <div class="card-end">
+                                <div v-for="(just, index) in item.data" class="two-end">
+                                  <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div>
+                                </div>
+                              </div>
+                            </div>
+                            <div class="card-but">
+                              <my-button name="鏌ョ湅璇︽儏"   site="form" />
+                              <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" />
+                            </div>
+                          </el-card>
+                        </el-col>
+                    </el-row>
+              </div>
+              <el-pagination
+                :small="false"
+                :current-page="1"
+                :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
+                :page-size="10"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="0"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+              />
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <el-dialog title="鏂板鍑哄簱"  :close-on-click-modal="false" :visible.sync="adddialog" width="60%" >
+            <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px">
+              <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="24">
+                    <el-form-item label="鍑哄簱鎵嬬画" prop="name">                      
+                      浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <div style="position: relative;">
+                  <div style="background-color: #F9F9F9;width: 90%;">
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-table :data="formData.tableData" height="100%"  :stripe="true">
+                    <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
+                    <el-table-column prop="time1" label="鍗曚綅"  align="center"> </el-table-column>
+                    <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column>
+                    <el-table-column prop="time2" label="鍑哄簱鏁伴噺"  align="center"> </el-table-column>
+                  </el-table>
+                  </div>
+                  <div style="position: absolute;right: 0;top: 152px;">
+                    <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/>
+                    <my-button name="鏂板鐗╁搧" site="form"/>
+                  </div>
+                </div>
+            </el-form>
+            <div slot="footer" align="center" class="dialog-footer">
+              <my-button name="纭畾" site="form" />
+              <my-button name="鍙栨秷" site="form" @click="adddialog = false"/>
+            </div>
+          </el-dialog>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, myImport},
+  data() {
+    return {
+      
+      adddialog: false,
+      formData:{
+        tableData:[
+          {
+            projectName:'555'
+          },
+          {
+            projectName:'444'
+          }
+        ],
+      },
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍑哄簱鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '鍙ā绯婃悳绱�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val1',
+          label: '鍑哄簱鏃堕棿',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val2',
+          label: '鑷�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '鐘舵��',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // }
+      ],
+      proData: [
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        }
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+    }
+  },
+  computed: {
+    clientHeight () {
+      return document.documentElement.clientHeight
+    },
+  },
+  created() {
+  },
+  methods: {
+    handleSizeChange(){},
+    handleCurrentChange(){},
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+   
+    addtable() {
+      this.adddialog = true
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        // this.$refs.myTable.search(pageNum)
+      } else {
+        // this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      console.log(params,'555');
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.card {
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0px !important;
+    .cm-item {
+        width: 100%;
+    }
+    .cm-item /deep/ .el-card__body {
+        padding: 10px;
+    }
+}
+.card-data{
+  margin-top: 8px;
+  .card-container{
+    display: inline-block; 
+    width: 70%;
+    .hed-one{
+      color: #2298EE;
+      font-size: 18px;
+    }
+    .one-hed{
+      margin-top: 15px;
+      .box{
+        display: inline-block;  
+        margin-right: 20px;  
+      }
+    }
+    .span-two{
+      color: #83919e;
+      font-size: 14px;
+    }
+    .card-end{
+      font-size: 14px;
+      color: #3d3d3d;
+      margin-top: 15px;
+      display: flex;  
+      flex-wrap: wrap; 
+      .two-end{
+        width: calc(33.33% - 20px); 
+        margin-bottom: 15px; 
+      }
+    }
+    
+  }
+  .card-but{
+    display: inline-block; 
+  }
+  .end{
+    display: inline-block;  
+  }
+  
+}
+
+</style>
diff --git a/admin-web/src/views/departmentitem/ledgerquy/itemQuy/edit.vue b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/ledgerquy/itemQuy/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/departmentitem/ledgerquy/ledQuy/edit.vue b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/departmentitem/ledgerquy/ledQuy/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/statisticalreport/itemReport/edit.vue b/admin-web/src/views/statisticalreport/itemReport/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/statisticalreport/itemReport/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/statisticalreport/itemReport/index.vue b/admin-web/src/views/statisticalreport/itemReport/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/statisticalreport/itemReport/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/inventorycount/exceptionDetails/edit.vue b/admin-web/src/views/stock/inventorycount/exceptionDetails/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/inventorycount/exceptionDetails/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
new file mode 100644
index 0000000..54f2d7d
--- /dev/null
+++ b/admin-web/src/views/stock/inventorycount/exceptionDetails/index.vue
@@ -0,0 +1,272 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐩樼偣鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '绫诲瀷',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '浠诲姟鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '鐩樼偣鍗曞彿', field: 'name', align: 'left',},
+          {title: '浠诲姟鍚嶇О', field: 'code', align: 'center'},
+          {title: '鐩樼偣浠撳簱', field: 'lv', align: 'center', },
+          {title: '鐩樼偣浜�', field: 'lv', align: 'center', },
+          {title: '鐩戠洏浜�', field: 'summary', align: 'left',},
+          {title: '鐩樼偣鏃堕棿', field: 'summary', align: 'left',},
+          {title: '鍒涘缓鏃堕棿', field: 'summary', align: 'left',},
+          {title: '鐘舵��', field: 'summary', align: 'left',},
+        ],   
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue b/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/inventorycount/inventorytask/index.vue b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
new file mode 100644
index 0000000..54f2d7d
--- /dev/null
+++ b/admin-web/src/views/stock/inventorycount/inventorytask/index.vue
@@ -0,0 +1,272 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐩樼偣鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '绫诲瀷',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '浠诲姟鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '鐩樼偣鍗曞彿', field: 'name', align: 'left',},
+          {title: '浠诲姟鍚嶇О', field: 'code', align: 'center'},
+          {title: '鐩樼偣浠撳簱', field: 'lv', align: 'center', },
+          {title: '鐩樼偣浜�', field: 'lv', align: 'center', },
+          {title: '鐩戠洏浜�', field: 'summary', align: 'left',},
+          {title: '鐩樼偣鏃堕棿', field: 'summary', align: 'left',},
+          {title: '鍒涘缓鏃堕棿', field: 'summary', align: 'left',},
+          {title: '鐘舵��', field: 'summary', align: 'left',},
+        ],   
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/ledger/alertQuery/edit.vue b/admin-web/src/views/stock/ledger/alertQuery/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/alertQuery/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/ledger/alertQuery/index.vue b/admin-web/src/views/stock/ledger/alertQuery/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/alertQuery/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/index.vue b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/inventoryAlert/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/ledger/inventoryQuery/edit.vue b/admin-web/src/views/stock/ledger/inventoryQuery/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/inventoryQuery/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/ledger/inventoryQuery/index.vue b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/inventoryQuery/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/ledger/ledgerQuery/edit.vue b/admin-web/src/views/stock/ledger/ledgerQuery/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/ledgerQuery/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/ledger/ledgerQuery/index.vue b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/stock/ledger/ledgerQuery/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/admin-web/src/views/stock/scrap/itemScrapping/index.vue b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
new file mode 100644
index 0000000..ea1d5b0
--- /dev/null
+++ b/admin-web/src/views/stock/scrap/itemScrapping/index.vue
@@ -0,0 +1,449 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-button name="鏂板" @click="addtable" site="form" />
+              <div :style="{'overflow-y': 'auto', height:`${clientHeight - 320}px`}">
+                    <el-row class="card"
+                            :gutter="5">
+                        <el-col v-for="(item, index) in proData" :key="index" class="cm-item">
+                          <el-card class="card-data">
+                            <div class="card-container">
+                              <div class="hed-one">鍑哄簱鍗曞彿锛歿{ item.order_no }}</div>
+                              <div class="one-hed">
+                                <div class="box"><span class="span-two">鏈烘瀯锛�</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鎿嶄綔浜猴細</span>{{ item.customer_name }}</div>
+                                <div class="box"><span class="span-two">鍑哄簱鏃堕棿锛�</span>{{ item.customer_name }}</div>
+                              </div>
+                              <div class="card-end">
+                                <div v-for="(just, index) in item.data" class="two-end">
+                                  <div class="item"><span>{{ just.order_no }}锛�</span>{{ just.customer_name }}</div>
+                                </div>
+                              </div>
+                            </div>
+                            <div class="card-but">
+                              <my-button name="鏌ョ湅璇︽儏"   site="form" />
+                              <my-button name="瀵煎嚭鍑哄簱鍗�" site="form" />
+                            </div>
+                          </el-card>
+                        </el-col>
+                    </el-row>
+              </div>
+              <el-pagination
+                :small="false"
+                :current-page="1"
+                :page-sizes="[5, 10, 20, 50, 100, 200, 300, 400, 500]"
+                :page-size="10"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="0"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+              />
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <el-dialog title="鏂板鍑哄簱"  :close-on-click-modal="false" :visible.sync="adddialog" width="60%" >
+            <el-form ref="ruleForm" :model="formData" class="demo-ruleForm" label-width="100px">
+              <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="12">
+                    <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                      <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <el-row :gutter="24" class="headerHeight">
+                  <el-col :span="24">
+                    <el-form-item label="鍑哄簱鎵嬬画" prop="name">                      
+                      浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+                <div style="position: relative;">
+                  <div style="background-color: #F9F9F9;width: 90%;">
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="24" class="">
+                    <el-col :span="12">
+                      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+                        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-table :data="formData.tableData" height="100%"  :stripe="true">
+                    <el-table-column prop="projectName" label="瑙勬牸鍨嬪彿" align="center"> </el-table-column>
+                    <el-table-column prop="time1" label="鍗曚綅"  align="center"> </el-table-column>
+                    <el-table-column prop="unit" label="鐜版湁搴撳瓨" align="center"> </el-table-column>
+                    <el-table-column prop="time2" label="鍑哄簱鏁伴噺"  align="center"> </el-table-column>
+                  </el-table>
+                  </div>
+                  <div style="position: absolute;right: 0;top: 152px;">
+                    <my-button style="display: block;margin-left: 10px;margin-bottom: 5px;" name="绉婚櫎" site="form"/>
+                    <my-button name="鏂板鐗╁搧" site="form"/>
+                  </div>
+                </div>
+            </el-form>
+            <div slot="footer" align="center" class="dialog-footer">
+              <my-button name="纭畾" site="form" />
+              <my-button name="鍙栨秷" site="form" @click="adddialog = false"/>
+            </div>
+          </el-dialog>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, myImport},
+  data() {
+    return {
+      
+      adddialog: false,
+      formData:{
+        tableData:[
+          {
+            projectName:'555'
+          },
+          {
+            projectName:'444'
+          }
+        ],
+      },
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍑哄簱鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '鍙ā绯婃悳绱�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val1',
+          label: '鍑哄簱鏃堕棿',
+          defaultValue: ''
+        },
+        {
+          type: 'date-picker',
+          dataIndex: 'val2',
+          label: '鑷�',
+          defaultValue: ''
+        },
+        // {
+        //   type: 'select',
+        //   dataIndex: 'status',
+        //   label: '鐘舵��',
+        //   placeholder: '璇烽�夋嫨',
+        //   defaultValue: '1',
+        //   options: [
+        //     {
+        //       label: '鍚敤',
+        //       value: '1'
+        //     },
+        //     {
+        //       label: '绂佺敤',
+        //       value: '0'
+        //     }
+        //   ]
+        // }
+      ],
+      proData: [
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        },
+        {
+          order_no:'55555',
+          customer_name:'666',
+          data:[
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'20浠�'
+            },
+            {
+              order_no:'鐭冲嫆鑺鑹茬⒊绮�',
+              customer_name:'666'
+            },
+          ]
+          
+        }
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+    }
+  },
+  computed: {
+    clientHeight () {
+      return document.documentElement.clientHeight
+    },
+  },
+  created() {
+  },
+  methods: {
+    handleSizeChange(){},
+    handleCurrentChange(){},
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+   
+    addtable() {
+      this.adddialog = true
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        // this.$refs.myTable.search(pageNum)
+      } else {
+        // this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      console.log(params,'555');
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+.card {
+    display: flex;
+    flex-wrap: wrap;
+    margin: 0px !important;
+    .cm-item {
+        width: 100%;
+    }
+    .cm-item /deep/ .el-card__body {
+        padding: 10px;
+    }
+}
+.card-data{
+  margin-top: 8px;
+  .card-container{
+    display: inline-block; 
+    width: 70%;
+    .hed-one{
+      color: #2298EE;
+      font-size: 18px;
+    }
+    .one-hed{
+      margin-top: 15px;
+      .box{
+        display: inline-block;  
+        margin-right: 20px;  
+      }
+    }
+    .span-two{
+      color: #83919e;
+      font-size: 14px;
+    }
+    .card-end{
+      font-size: 14px;
+      color: #3d3d3d;
+      margin-top: 15px;
+      display: flex;  
+      flex-wrap: wrap; 
+      .two-end{
+        width: calc(33.33% - 20px); 
+        margin-bottom: 15px; 
+      }
+    }
+    
+  }
+  .card-but{
+    display: inline-block; 
+  }
+  .end{
+    display: inline-block;  
+  }
+  
+}
+
+</style>
diff --git a/admin-web/src/views/stock/scrap/scrapDetails/edit.vue b/admin-web/src/views/stock/scrap/scrapDetails/edit.vue
new file mode 100644
index 0000000..37b0db9
--- /dev/null
+++ b/admin-web/src/views/stock/scrap/scrapDetails/edit.vue
@@ -0,0 +1,111 @@
+<template>
+  <win-sm :title="setting.title" @close="close" :width="'800px'">
+    <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
+      <el-form-item label="缂栧彿" prop="code">
+        <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="浠撳簱鍚嶇О" prop="name">
+        <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鍦板潃" >
+        <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/>
+      </el-form-item>
+      <el-form-item label="鐘舵��" prop="status">
+        <el-switch
+          v-model="formData.status"
+          active-color="#0d997c"
+          inactive-color="#C0CCDA">
+        </el-switch>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" align="center" class="dialog-footer">
+      <my-button name="鍙栨秷" site="form" @click="close"/>
+      <my-button name="淇濆瓨" site="form" @click="save"/>
+    </div>
+  </win-sm>
+</template>
+
+<script>
+import winSm from '@/components/win/win-sm'
+import myButton from '@/components/myButton/myButton'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+
+export default {
+  components: {winSm, myButton},
+  props: {
+    setting: {
+      type: Object,
+      default: () => {
+      }
+    }
+  },
+  data() {
+    return {
+      checkAll: false,
+      checkedList: [],
+      formData: {
+        code: '',
+        name: '',
+        status: true,
+        summary: '',
+      },
+      rules: {
+        code: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}
+        ],
+        name: [
+          {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}
+        ],
+        status: [
+          {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created() {
+    if(this.setting.info){
+      this.formData = Object.assign({},JSON.parse(this.setting.info))
+    }
+  },
+  methods: {
+    getEditInfo(id){
+
+    },
+    close() {
+      this.$emit('close')
+    },
+    save() {
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          const params = Object.assign({}, this.formData)
+          if(this.setting.id){
+            // 缂栬緫鎺ュ彛
+            finsystenant.edit(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }else{
+            params.orgId = this.setting.orgId
+            finsystenant.add(params).then(res => {
+              if (res) {
+                this.$message.success('淇濆瓨鎴愬姛锛�')
+                this.close()
+                this.$emit('search')
+              } else {
+                this.$message.error('淇濆瓨澶辫触')
+              }
+            })
+          }
+        } else {
+          this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��')
+        }
+      })
+    }
+  }
+}
+</script>
diff --git a/admin-web/src/views/stock/scrap/scrapDetails/index.vue b/admin-web/src/views/stock/scrap/scrapDetails/index.vue
new file mode 100644
index 0000000..2936cd9
--- /dev/null
+++ b/admin-web/src/views/stock/scrap/scrapDetails/index.vue
@@ -0,0 +1,280 @@
+<template>
+  <div class="app-container">
+    <el-container>
+      <el-container>
+        <el-card class="box-card" style="width: 100%" shadow="never">
+          <!--鎼滅储鏉′欢-->
+          <div class="filter-container">
+            <my-search ref="searchBar" :items="items" @search="fifterForm"></my-search>
+          </div>
+          <el-row style="margin-top: 15px">
+            <el-col>
+              <!--鍒楄〃-->
+              <my-table-v2 ref="myTable" :filter="filterFrom" :table="table"/>
+            </el-col>
+          </el-row>
+          <!--娣诲姞/缂栬緫寮圭獥-->
+          <edit v-if="editSetting.show" :setting="editSetting" @close="editSetting.show = false" @search="search"/>
+        </el-card>
+      </el-container>
+    </el-container>
+    <my-import
+      :import-setting="importSetting"
+      :dialog-show="importSetting.dialogShow"
+      :dialog-title="importSetting.dialogTitle"
+    />
+  </div>
+</template>
+
+<script>
+import MyTableV2 from "@/components/myTable/myTableV2";
+import MyButton from "@/components/myButton/myButton";
+import SettingIplatform from '@/utils/settingIplatform';
+import edit from './edit'
+import * as finsystenant from '@/api/baseSetting/finsystenant'
+import myImport from '@/views/components/myImport'
+import {getBaseUrl} from '@/utils/base';
+
+export default {
+  name: "index",
+  components: {MyButton, MyTableV2, edit, myImport},
+  data() {
+    return {
+      // 鎼滅储妗�
+      items: [
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍗曞彿',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'select',
+          dataIndex: 'status',
+          label: '绫诲瀷',
+          placeholder: '璇烽�夋嫨',
+          defaultValue: '1',
+          options: [
+            {
+              label: '鍚敤',
+              value: '1'
+            },
+            {
+              label: '绂佺敤',
+              value: '0'
+            }
+          ]
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鐗╁搧鍚嶇О',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+        {
+          type: 'text',
+          dataIndex: 'name',
+          label: '鍒涘缓浜�',
+          placeholder: '璇疯緭鍏�',
+          defaultValue: ''
+        },
+      ],
+      // 鏍戞暟鎹�
+      treeDataList: [],
+      // 鎼滅储鏉′欢
+      filterFrom: {
+        tenantId: null,
+        userName: null,
+        userPhone: null,
+        status: 1
+      },
+      // 瀵煎叆
+      importSetting: {
+          dialogTitle: '瀵煎叆',
+          dialogShow: false,
+          fileSettings: {
+              data: {},
+              uploadUrl: getBaseUrl()+"/pc/fin/sys/tenant/import", // 涓婁紶鍦板潃
+              accept: '.xls', // 鏍煎紡
+              type: 'text', // 鍥炴樉褰㈠紡
+              loading: false // 瀵煎叆鏁堟灉
+          },
+          /* 妯℃澘涓嬭浇 */
+          templateSettings: {
+              templateName: '瀵煎叆妯℃澘.xls', // 鍚嶇О
+              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // 涓嬭浇鍦板潃
+          },
+          onSuccess: null
+      },
+      editSetting: {
+        title: '',
+        id: '',
+        orgId: '',
+        show: false,
+      },
+      // 琛ㄦ牸鏁版嵁
+      table: {
+        showIndex: true, // 鏄惁鏄剧ず搴忓彿
+        expand: false, // 鏄惁鏄剧ず璇︽儏鏁版嵁
+        url: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/select/list', // 璇锋眰鍦板潃
+        // 宸ュ叿鏉�
+        tools: {
+          columnsCtrl: {// 鍒楁帶鍒舵寜閽�
+            show: false
+          },
+          generalExport: {// 閫氱敤瀵煎嚭鎸夐挳
+            show: false
+          },
+          // 鑷畾涔夊伐鍏锋潯鎸夐挳
+          custom: [
+          ]
+        },
+        // 鍒椾俊鎭�
+        columns: [
+          {title: '绫诲瀷', field: 'name', align: 'left',},
+          {title: '鍗曞彿', field: 'code', align: 'center'},
+          {title: '鐗╁搧鍚嶇О', field: 'lv', align: 'center', },
+          {title: '瑙勬牸鍨嬪彿', field: 'lv', align: 'center', },
+          {title: '鍑哄叆搴撴暟閲�', field: 'summary', align: 'left',},
+          {title: '閲戦', field: 'summary', align: 'left',},
+          {title: '鎵�灞炴満鏋�', field: 'summary', align: 'left',},
+          {title: '鍒涘缓浜�', field: 'summary', align: 'left',},
+          {title: '鎿嶄綔鏃堕棿', field: 'summary', align: 'left',},
+        ],
+        // 鎿嶄綔淇℃伅
+        operation: {
+          show: true, // 鏄剧ず鎿嶄綔鍒�
+          width: '150', // 鍒楀
+          attr: [
+            {
+              title: '璇︽儏',
+              events: (row) => {
+                this.showAudit(row);
+              },
+            },
+          ],
+        },
+        paging: {
+          show: true, // 鏄剧ず鍒嗛〉
+          // 鍒嗛〉淇℃伅
+          page: {
+            small: false,
+            pageNum: 1,
+            pageSize: 10,
+            total: 0
+          }
+        }
+      },
+    }
+  },
+  created() {
+    // 鑾峰彇鏈烘瀯鏍�
+    this.initTreeData()
+  },
+  methods: {
+    //瀵煎叆
+    importOrg() {
+        this.importSetting.dialogShow = true
+        this.importSetting.onSuccess = (response, callBack) => {
+            if (response.code===1){
+              this.$message.success(response.msg)
+              this.search(1)
+            }else{
+              this.$message.warning(response.msg)
+            }
+            callBack()
+        }
+    },
+    // 宸︿晶鏍戝垵濮嬪寲
+    initTreeData() {
+      finsystenant.getTree().then(res => {
+        const content = res || []
+        this.treeDataList.splice(0, this.treeDataList.length)
+        this.treeDataList = content
+        if (content.length > 0) {
+          this.importSetting.fileSettings.data = {pid: content[0].id}
+        }
+      })
+    },
+    updState(row) {
+      let vm = this
+      let text = row.status == 0 ? "鍚敤" : "绂佺敤";
+      vm.$modal.confirm('纭瑕�' + text + '"' + row.name + '"鍚楋紵').then(function () {
+        let params = Object.assign({}, row)
+        params.status = row.status == 1 ? 0 : 1
+        finsystenant.edit(params).then(res => {
+          if (res) {
+            row.status = row.status === 1 ? 0 : 1
+            vm.$modal.msgSuccess(text + "鎴愬姛");
+            vm.search()
+          }
+        })
+      })
+    },
+    del(row) {
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.name + '"鐨勬満鏋勫悧锛�')
+        .then(function () {
+          finsystenant.del({id: row.id}).then((res) => {
+          });
+        })
+        .then((res) => {
+          this.$message.success('鍒犻櫎鎴愬姛锛�');
+          this.search()
+        })
+        .catch(() => {
+        });
+    },
+    showAdd() {
+      // if (!this.editSetting.orgId) {
+      //   this.$message.warning('璇峰厛閫夋嫨宸︿晶鏈烘瀯')
+      // } else {
+        this.editSetting.id = null;
+        this.editSetting.info = null;
+        this.editSetting.title = '鏂板';
+        this.editSetting.show = true;
+      // }
+    },
+    showAudit(row) {
+      this.editSetting.id = row.id;
+      this.editSetting.info = JSON.stringify(row);
+      this.editSetting.title = '缂栬緫';
+      this.editSetting.show = true;
+    },
+    nodeClick(param) {
+      param = param || {}
+      this.p = Object.assign({}, {
+        id: param.id,
+        name: param.name
+      })
+      if (this.p.id != undefined && this.p.id != null) {
+        this.filterFrom.tenantId = this.p.id
+        this.editSetting.orgId = this.p.id
+      } else {
+        this.filterFrom.tenantId = null
+        this.editSetting.orgId = null
+      }
+      this.importSetting.fileSettings.data = {pid: param.id}
+      this.search(1)
+    },
+    // 鏌ヨtable鍒楄〃
+    search(pageNum) {
+      if (pageNum != undefined) {
+        this.$refs.myTable.search(pageNum)
+      } else {
+        this.$refs.myTable.search()
+      }
+    },
+    fifterForm(params) {
+      this.filterFrom = Object.assign(this.filterFrom, params)
+      this.search(1)
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

--
Gitblit v1.9.1