LAPTOP-FO2T5SIU\35838 5 months ago
parent
commit
cb7f7eaa40

+ 4 - 0
src/main.js

@@ -173,3 +173,7 @@ Vue.directive('el-drag-dialog', elDragDialog)// 添加标签事件绑定 可以
 // 弹窗默认点击遮罩改为不关闭 为了防止和拖拽冲突 ,这句需要放在use ElementUI之前(也可以不加这句,自己测试区别)
 // ElementUI.Dialog.props.closeOnClickModal.default = false
 Vue.prototype.$outputXlsxFile = outputXlsxFile
+
+import btnPermission from './static/utils/permission.js'
+
+Vue.prototype.$has = btnPermission

+ 33 - 21
src/router/index.js

@@ -407,30 +407,38 @@ export const constantRoutes = [
 
 ]
 
+const btnPermission = []
 export function userRoutes() {
     const userMenu = common.currMenu() ? common.currMenu().nodes : []
     const tempMenu = []
     if (userMenu) {
+        console.log('userMenu', userMenu)
         userMenu.forEach(item => {
-            const top = {
-                id: item.id,
-                path: '/' + item.url,
-                component: Layout,
-                name: item.text,
-                show: true,
-                page: item.perms,
-                meta: { perms: ['admin'], title: item.text, icon: item.icon },
-                children: getSubMenu(item.nodes)
+            if(item.type === 1){
+                const top = {
+                    id: item.id,
+                    path: '/' + item.url,
+                    component: Layout,
+                    name: item.text,
+                    show: true,
+                    page: item.perms,
+                    meta: { perms: ['admin'], title: item.text, icon: item.icon },
+                    children: getSubMenu(item.nodes)
+                }
+                tempMenu.push(top)
+            }else {
+                btnPermission.push(item.url)
             }
-            tempMenu.push(top)
         })
+        console.log('tempMenu', tempMenu)
+        console.log('btnPermission', btnPermission)
     }
 
     // const menus = adminRoutes.concat(editorRoutes).concat(tempMenu)
     const menus = editorRoutes.concat(tempMenu)
     const page_404 = { path: '*', redirect: '/404', hidden: true }
     menus.push(page_404)
-
+    common.setBtnPermissions(btnPermission)
     store.dispatch('storeMenu', menus.filter(v => { return v.show && !v.hidden }))
     return menus
 }
@@ -482,18 +490,22 @@ const editorRoutes = [
 function getSubMenu(menuNodes) {
     const children = []
     menuNodes.forEach(item => {
-        const sub = {
-            id: item.id,
-            path: item.url,
-            name: item.text,
-            page: item.perms,
-            show: true,
-            meta: { perms: ['admin'], title: item.text, icon: item.icon },
-            component: resolve => require([`@/views${item.perms}`], resolve),
-            children: getSubMenu(item.nodes)
+        if(item.type === 1){
+            const sub = {
+                id: item.id,
+                path: item.url,
+                name: item.text,
+                page: item.perms,
+                show: true,
+                meta: { perms: ['admin'], title: item.text, icon: item.icon },
+                component: resolve => require([`@/views${item.perms}`], resolve),
+                children: getSubMenu(item.nodes)
+            }
+            children.push(sub)
+        }else {
+            btnPermission.push(item.url)
         }
 
-        children.push(sub)
     })
     return children
 }

+ 12 - 9
src/static/utils/common.js

@@ -40,23 +40,23 @@ export default {
     },
     transTime(val, pattern) {
         if (val) {
-            const time = new Date();
-            time.setTime(val);
+            const time = new Date()
+            time.setTime(val)
             if (time instanceof Date) {
-                return this.formatDate(pattern || "yyyy-MM-dd hh:mm:ss", time);
+                return this.formatDate(pattern || 'yyyy-MM-dd hh:mm:ss', time)
             }
         }
-        return "";
+        return ''
     },
     transMinute(val, pattern) {
         if (val) {
-            const time = new Date();
-            time.setTime(val);
+            const time = new Date()
+            time.setTime(val)
             if (time instanceof Date) {
-                return this.formatDate(pattern || "yyyy-MM-dd hh:mm:ss", time);
+                return this.formatDate(pattern || 'yyyy-MM-dd hh:mm:ss', time)
             }
         }
-        return "";
+        return ''
     },
     isArrayFn: function(value) {
         if (typeof Array.isArray === 'function') {
@@ -453,8 +453,11 @@ export default {
             this.$message.error('上传文件大小不能超过 5MB')
             return false
         }
-    }
+    },
 
+    setBtnPermissions: function(permissions) {
+        localStorage.setItem('btn-permissions', JSON.stringify(permissions))
+    }
 
 }
 

+ 9 - 0
src/static/utils/permission.js

@@ -0,0 +1,9 @@
+// 先获取本地权限数据 permissions
+const btnPermission = (data) => {
+    const per = localStorage.getItem('btn-permissions') || null
+    if (per != null) {
+        const permissions = JSON.parse(per)
+        return permissions.includes(data)
+    }
+}
+export default btnPermission

+ 17 - 12
src/views/customerManagement/numberManagement/addCustomer.vue

@@ -6,7 +6,7 @@
           <span class="card_title">基本信息</span>
           <el-card shadow="always" style="padding: 15px 5px 5px 15px">
             <el-row>
-              <el-col :span="3" class="col-txt"><span><span class="red-asterisk"></span>小区-分期</span></el-col>
+              <el-col :span="3" class="col-txt"><span><span class="red-asterisk" />小区-分期</span></el-col>
               <el-col :span="9" class="col-input">
                 <el-form-item prop="findids">
                   <el-cascader
@@ -16,8 +16,8 @@
                     :append-to-body="false"
                     :options="options"
                     clearable
-                    @change="handleChange"
                     disabled
+                    @change="handleChange"
                   />
                 </el-form-item>
               </el-col>
@@ -137,16 +137,20 @@ export default {
     mixins: [Base, BaseData],
     data() {
         var checkPhone = (rule, value, callback) => { // 手机号验证
-            if (!value) {
-                return callback(new Error('手机号不能为空'))
-            } else {
-                const reg = /^1[3456789]\d{9}$/
-                if (reg.test(value)) {
-                    callback()
+            console.log(rule)
+            if (rule.field === 'dynamicItem.0.phone') {
+                if (!value) {
+                    return callback(new Error('手机号不能为空'))
                 } else {
-                    return callback(new Error('请输入正确的手机号'))
+                    const reg = /^1[3456789]\d{9}$/
+                    if (reg.test(value)) {
+                        callback()
+                    } else {
+                        return callback(new Error('请输入正确的手机号'))
+                    }
                 }
             }
+            callback()
         }
         return {
             dc_key: ['RELATIONSHIP'],
@@ -167,9 +171,10 @@ export default {
                 roomSelectionDate: [{ required: true, message: '请输入选房日', trigger: 'change' }],
                 batchNumber: [{ required: true, message: '请输入批次号', trigger: 'blur' }],
                 roomSelectionNumber: [{ required: true, message: '请输入选房号', trigger: 'blur' }],
-                phone: [{ required: true, message: '请输入手机号', trigger: 'blur' }, {
-                    validator: checkPhone, trigger: 'blur'
-                }],
+                phone: [
+                    {
+                        validator: checkPhone, trigger: 'blur'
+                    }],
                 identityCard: [
                     { required: true, message: '请输入身份证ID', trigger: 'blur' },
                     { pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '身份证格式不正确' }

+ 11 - 0
src/views/customerManagement/numberManagement/index.vue

@@ -53,6 +53,16 @@
           placeholder="请输入"
           class="ch-input ch-input-size"
         />
+        <span>
+          &nbsp;&nbsp;&nbsp;选房号
+        </span>
+        <el-input
+          v-model="search.roomSelectionNumber"
+          style="margin-left:16px ;"
+          size="small"
+          placeholder="请输入"
+          class="ch-input ch-input-size"
+        />
       </el-col>
       <el-col :span="24">
         <div style="display: flex;align-items: center">
@@ -118,6 +128,7 @@
           <el-table-column label="批次号" prop="batchNumber" />
           <el-table-column label="选房号" prop="roomSelectionNumber" />
           <el-table-column label="买受人" prop="buyerName" width="300" />
+          <el-table-column label="身份证号" prop="buyerIdentityCard" width="300" />
           <el-table-column label="选房日期" prop="roomSelectionDate" width="180" />
           <el-table-column label="购房状态" prop="statusStr" />
           <el-table-column label="意向金状态" prop="intentionalDepositStatusStr" width="130" />

+ 1 - 1
src/views/invoice/formalInvoiceManage.vue

@@ -122,7 +122,7 @@
         <el-button size="small" class="ch-button" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
         <el-button size="small" class="ch-button-export" @click="batchInvoice()">批量推送</el-button>
         <!--        <el-button size="small" type="danger" @click="handleBatchBadDebt()">红冲</el-button>-->
-        <el-button size="small" class="ch-button-export" :loading="excelFlag" @click="handleExportAll()">导出</el-button>
+        <el-button v-if="$has('formalInvoiceExport')" size="small" class="ch-button-export" :loading="excelFlag" @click="handleExportAll()">导出</el-button>
       </el-col>
     </el-row>
     <el-row class="handle-box">

+ 24 - 1
src/views/invoice/receiptManage.vue

@@ -33,6 +33,27 @@
           </div>
         </div>
       </el-col>
+      <el-col :span="8">
+        <div class="Pageform">
+          <div class="formlabel">票据类型</div>
+          <div class="formvalue">
+            <el-select
+              v-model="search.receiptTypes"
+              style="width: 100%"
+              size="small"
+              multiple
+              clearable
+            >
+              <el-option
+                v-for="item in dc_data.RECEIPT_TYPE"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+          </div>
+        </div>
+      </el-col>
     </el-row>
     <el-row class="handle-box" style="margin-bottom: 10px;text-align: right">
       <el-col :span="24" style="margin-top: 20px">
@@ -140,9 +161,11 @@ export default {
             const _this = this
             _this.loading = true
             _this.AllData = []
-
             this.search.pageNum = this.currentPage
             this.search.pageSize = this.pageSize
+            if (this.search.receiptTypes) {
+                this.search.receiptType = this.search.receiptTypes.join(',')
+            }
             this.baseRequest('listByModel', this.search).then((res) => {
                 if (res.data.rows) {
                     res.data.rows.forEach(function(item) {

+ 7 - 7
src/views/parkAssets/parkBuild/index.vue

@@ -40,7 +40,7 @@
           </el-col>
           <el-col :span="20">
             <el-input v-model="queryParam.buildNum" size="small" placeholder="请输入楼栋号" class="ch-input-size" @keyup.enter.native="handleSearch()" />
-            <el-button size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="handleExcel()"><i class="el-icon-menu" />&nbsp;导出Excel</el-button>
+            <el-button v-if="$has('buildExport')" size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="handleExcel()"><i class="el-icon-menu" />&nbsp;导出Excel</el-button>
             <el-button size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="batchImport()"><i class="el-icon-menu" />&nbsp;批量导入</el-button>
             <el-button size="small" class="ch-button-add" style="float: right; margin-right: 10px; margin-top: 4px" @click="handleAdd()"><i class="el-icon-menu" />&nbsp;新增楼栋</el-button>
             <el-button size="small" class="ch-button" style="float: right;margin-top: 4px" @click="handleSearch()"><i class="el-icon-menu" />&nbsp;查询</el-button>
@@ -218,12 +218,12 @@
                     </el-select>
                   </el-form-item>
                 </el-col>
-<!--                <el-col :span="4" class="col-txt"><span><span class="red-asterisk">*</span>行政区划</span></el-col>-->
-<!--                <el-col :span="8" class="col-input">-->
-<!--                  <el-form-item prop="regionalismCode">-->
-<!--                    <el-input v-model="buildForm.regionalismCode" />-->
-<!--                  </el-form-item>-->
-<!--                </el-col>-->
+                <!--                <el-col :span="4" class="col-txt"><span><span class="red-asterisk">*</span>行政区划</span></el-col>-->
+                <!--                <el-col :span="8" class="col-input">-->
+                <!--                  <el-form-item prop="regionalismCode">-->
+                <!--                    <el-input v-model="buildForm.regionalismCode" />-->
+                <!--                  </el-form-item>-->
+                <!--                </el-col>-->
               </el-row>
               <el-row>
                 <el-col :span="4" class="col-txt"><span><span class="red-asterisk">*</span>地号</span></el-col>

+ 1 - 3
src/views/parkAssets/parkRoom/index.vue

@@ -123,11 +123,9 @@
             </el-col>
           </el-row>
           <el-row class="lineheight20">
-
             <el-col :span="24">
-              <el-button size="small" class="ch-button-export" style="float: right; margin-top: 4px" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
+              <el-button size="small" v-if="$has('roomExport')" class="ch-button-export" style="float: right; margin-top: 4px" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
               <el-button size="small" class="ch-button-export" style="float: right;margin-top: 4px" @click="batchImport()"><i class="el-icon-menu" />&nbsp;批量导入</el-button>
-
               <el-button size="small" class="ch-button-add" style="float: right;  margin-right: 10px; margin-top: 4px" @click="handleAdd()"><i class="el-icon-menu" />&nbsp;新增房间</el-button>
               <el-button size="small" class="ch-button" style="float: right;margin-top: 4px" @click="handleSearch()"><i class="el-icon-menu" />&nbsp;查询</el-button>
               <el-button size="small" class="ch-button-warning" style="float: right;margin-top: 4px" @click="handleReset()"><i class="el-icon-menu" />&nbsp;重置</el-button>

+ 2 - 2
src/views/signingManagement/contractManagement/contractAdd.vue

@@ -167,7 +167,7 @@
               <el-col :span="5" class="col-txt"><span>房屋买卖单价(元/㎡)</span></el-col>
               <el-col :span="18" class="col-input">
                 <el-form-item>
-                  <el-input v-model="form.housePrice" readonly placeholder="请先录入总价款,系统会自动计算出房屋买卖单价" />
+                  <el-input v-model="form.housePrice" />
                 </el-form-item>
               </el-col>
             </el-row>
@@ -175,7 +175,7 @@
               <el-col :span="5" class="col-txt"><span><span class="red-asterisk">*</span>总价款(元)</span></el-col>
               <el-col :span="18" class="col-input">
                 <el-form-item prop="totalPrice">
-                  <el-input v-model="form.totalPrice" @input="totalPriceChange" />
+                  <el-input v-model="form.totalPrice" />
                 </el-form-item>
               </el-col>
             </el-row>

+ 6 - 3
src/views/transactionRecord/collectionRecordIndex.vue

@@ -100,7 +100,7 @@
     </el-row>
     <el-row class="handle-box" style="margin-bottom: 10px">
       <el-col :span="24" style="margin-top: 20px">
-        <el-button size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
+        <el-button v-if="$has('collectionRecordExport')" size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
         <el-button class="ch-button-warning" size="small" style="float: right" @click="handleReset()"><i class="el-icon-search" />&nbsp;重置</el-button>
         <el-button class="ch-button" size="small" style="float: right" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
         <el-button type="primary" size="small" style="float: right" @click="handleAdd()">&nbsp;NCC提交</el-button>
@@ -132,6 +132,9 @@
           <el-table-column label="NCC提交状态" prop="ncSubmitStatusStr" />
           <el-table-column label="最近提交日期" prop="ncSubmitDate" />
           <el-table-column label="NCC提交人" prop="ncSubmitName" />
+          <el-table-column label="外部单号" prop="id" />
+          <el-table-column label="回传单号" prop="ncCode" />
+          <el-table-column label="报错信息" prop="errorMessage" />
         </el-table>
         <div class="table-page">
           <el-pagination
@@ -180,7 +183,7 @@ export default {
     },
     data() {
         return {
-            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS'],
+            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS', 'NC_SUBMIT_STATUS'],
             // 列表相关
             search: {
             },
@@ -250,7 +253,7 @@ export default {
         getItemJson: function(item) {
             item.contentTypeStr = this.dc_map.CONTENT_TYPE[item.contentType]
             item.paymentMethodStr = this.dc_map.COLLECTION_METHODS[item.paymentMethod]
-            item.ncSubmitStatusStr = item.ncSubmitStatus == '1' ? '已提交' : '未提交'
+            item.ncSubmitStatusStr = this.dc_map.NC_SUBMIT_STATUS[item.ncSubmitStatus]
             return item
         },
         /* ncc提交*/

+ 6 - 3
src/views/transactionRecord/convertRecordIndex.vue

@@ -72,7 +72,7 @@
     </el-row>
     <el-row class="handle-box" style="margin-bottom: 10px">
       <el-col :span="24" style="margin-top: 20px">
-        <el-button size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
+        <el-button v-if="$has('convertRecordExport')" size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
         <el-button class="ch-button-warning" size="small" style="float: right" @click="handleReset()"><i class="el-icon-search" />&nbsp;重置</el-button>
         <el-button class="ch-button" size="small" style="float: right" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
         <el-button type="primary" size="small" style="float: right" @click="handleAdd()">&nbsp;NCC提交</el-button>
@@ -101,6 +101,9 @@
           <el-table-column label="NCC提交状态" prop="ncSubmitStatusStr" />
           <el-table-column label="最近提交日期" prop="ncSubmitDate" />
           <el-table-column label="NCC提交人" prop="ncSubmitName" />
+          <el-table-column label="外部单号" prop="id" />
+          <el-table-column label="回传单号" prop="ncCode" />
+          <el-table-column label="报错信息" prop="errorMessage" />
         </el-table>
         <div class="table-page">
           <el-pagination
@@ -149,7 +152,7 @@ export default {
     },
     data() {
         return {
-            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS', 'CONVERT_TYPE'],
+            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS', 'CONVERT_TYPE', 'NC_SUBMIT_STATUS'],
             // 列表相关
             search: {
             },
@@ -220,7 +223,7 @@ export default {
             // item.contentTypeStr = this.dc_map.CONTENT_TYPE[item.contentType]
             item.convertTypeStr = this.dc_map.CONVERT_TYPE[item.convertType]
             item.paymentMethodStr = this.dc_map.COLLECTION_METHODS[item.paymentMethod]
-            item.ncSubmitStatusStr = item.ncSubmitStatus == '1' ? '已提交' : '未提交'
+            item.ncSubmitStatusStr = this.dc_map.NC_SUBMIT_STATUS[item.ncSubmitStatus]
             return item
         },
         /* ncc提交*/

+ 6 - 3
src/views/transactionRecord/refundRecordIndex.vue

@@ -72,7 +72,7 @@
     </el-row>
     <el-row class="handle-box" style="margin-bottom: 10px">
       <el-col :span="24" style="margin-top: 20px">
-        <el-button size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
+        <el-button v-if="$has('refundRecordExport')" size="small" class="ch-button-export" style="float: right" @click="handleExcel"><i class="el-icon-menu" />&nbsp;导出EXCEL</el-button>
         <el-button class="ch-button-warning" size="small" style="float: right" @click="handleReset()"><i class="el-icon-search" />&nbsp;重置</el-button>
         <el-button class="ch-button" size="small" style="float: right" @click="handleSearch()"><i class="el-icon-search" />&nbsp;查询</el-button>
         <el-button type="primary" size="small" style="float: right" @click="handleAdd()">&nbsp;NCC提交</el-button>
@@ -103,6 +103,9 @@
           <el-table-column label="NCC提交状态" prop="ncSubmitStatusStr" />
           <el-table-column label="最近提交日期" prop="ncSubmitDate" />
           <el-table-column label="NCC提交人" prop="ncSubmitName" />
+          <el-table-column label="外部单号" prop="id" />
+          <el-table-column label="回传单号" prop="ncCode" />
+          <el-table-column label="报错信息" prop="errorMessage" />
         </el-table>
         <div class="table-page">
           <el-pagination
@@ -151,7 +154,7 @@ export default {
     },
     data() {
         return {
-            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS'],
+            dc_key: ['CONTENT_TYPE', 'COLLECTION_METHODS', 'NC_SUBMIT_STATUS'],
             // 列表相关
             search: {
             },
@@ -221,7 +224,7 @@ export default {
         getItemJson: function(item) {
             item.contentTypeStr = this.dc_map.CONTENT_TYPE[item.contentType]
             item.paymentMethodStr = this.dc_map.COLLECTION_METHODS[item.paymentMethod]
-            item.ncSubmitStatusStr = item.ncSubmitStatus == '1' ? '已提交' : '未提交'
+            item.ncSubmitStatusStr = this.dc_map.NC_SUBMIT_STATUS[item.ncSubmitStatus]
             return item
         },
         /* ncc提交*/

+ 2 - 2
src/views/workbench/components/myMenu.vue

@@ -358,8 +358,8 @@ export default {
                     _this.buttonList.push(c)
                 }
             })
-            console.log('buttonList')
-            console.log(_this.buttonList)
+            // console.log('buttonList')
+            // console.log(_this.buttonList)
         },
         verificationCommit: function() {
             this.getData()