Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into dev
This commit is contained in:
		| @@ -9,29 +9,39 @@ | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input size="small" placeholder="搜索名称" v-model="search.name" clearable | ||||
|             @clear="page.current = 1,search.name = '', getTableData()" | ||||
|                       @clear="page.current = 1,search.name = '', getTableData()" | ||||
|                       v-throttle="() => {page.current = 1, getTableData()}"/> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                   @getList="getTableData" :col-configs="colConfigs"> | ||||
|           <el-table-column type="expand" slot="expand"> | ||||
|             <template slot-scope="{row}"> | ||||
|               <ai-wrapper> | ||||
|                 <ai-info-item labelWidth="200px" v-for="op in desConfigs" :key="op.prop" :value="row[op.prop]" | ||||
|                               v-bind="op"/> | ||||
|               </ai-wrapper> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="status" align="center" label="状态" width="150"> | ||||
|             <template v-slot="{ row }"> | ||||
|               <el-switch v-model="row.status" @change="onChange(row)" active-value="1" inactive-value="0" | ||||
|                          active-color="#5088FF" inactive-color="#D0D4DC"></el-switch> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="miniappStatus" align="center" label="状态" width="150"> | ||||
|           <el-table-column slot="miniappStatus" align="center" label="小程序状态" width="150"> | ||||
|             <template v-slot="{ row }"> | ||||
|               <el-switch v-model="row.miniappStatus" @change="onMiniappStatusChange(row)" active-value="1" inactive-value="0" | ||||
|               <el-switch v-model="row.miniappStatus" @change="onMiniappStatusChange(row)" active-value="1" | ||||
|                          inactive-value="0" | ||||
|                          active-color="#5088FF" inactive-color="#D0D4DC"></el-switch> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="options" align="center" label="操作" fixed="right" width="200px"> | ||||
|           <el-table-column slot="options" align="center" label="操作" width="400"> | ||||
|             <el-row type="flex" justify="center" align="middle" slot-scope="{row}"> | ||||
|               <el-button type="text" @click="detail(row)">详情</el-button> | ||||
|               <el-button type="text" @click="del(row)">删除</el-button> | ||||
|               <el-button type="text" @click="handleSystemInfo(row.id)">系统信息</el-button> | ||||
|               <el-button type="text" @click="handlePush(row.id)">推送随手拍样式</el-button> | ||||
|             </el-row> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
| @@ -109,11 +119,11 @@ | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="系统配置信息" prop="systemInfo"> | ||||
|           <el-input type="textarea" :rows="2" placeholder="请输入系统配置信息"  v-model="dialogForm.systemInfo" maxlength="200"></el-input> | ||||
|           <el-input type="textarea" :rows="2" placeholder="请输入系统配置信息" v-model="dialogForm.systemInfo" | ||||
|                     maxlength="200"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </ai-dialog> | ||||
|  | ||||
|     <ai-dialog title="地图" :visible.sync="showMap" @opened="initMap" width="800px" class="mapDialog" | ||||
|                @onConfirm="selectMap"> | ||||
|       <div id="map"></div> | ||||
| @@ -124,7 +134,8 @@ | ||||
|       </el-input> | ||||
|       <div id="searchPlaceOutput"/> | ||||
|     </ai-dialog> | ||||
|     <ai-dialog title="系统信息设置" :visible.sync="sysInfoDialog" width="600px" @onConfirm="submitSystemInfo" @closed="sysInfo={}"> | ||||
|     <ai-dialog title="系统信息设置" :visible.sync="sysInfoDialog" width="600px" @onConfirm="submitSystemInfo" | ||||
|                @closed="sysInfo={}"> | ||||
|       <el-form size="small" label-width="140px"> | ||||
|         <el-form-item label="页签标题"> | ||||
|           <el-input v-model="sysInfo.title" placeholder="请输入..." clearable/> | ||||
| @@ -172,22 +183,31 @@ export default { | ||||
|     ...mapState(['user']), | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         {prop: "name", label: "名称", width: 150}, | ||||
|         {slot: 'expand'}, | ||||
|         {prop: "name", label: "名称"}, | ||||
|         {prop: "corpId", label: "企业微信ID", width: 180}, | ||||
|         {slot: "status",}, | ||||
|         {slot: "miniappStatus"}, | ||||
|         {prop: "createTime", label: "创建时间"}, | ||||
|         {slot: "options"}, | ||||
|       ] | ||||
|     }, | ||||
|     desConfigs() { | ||||
|       let isLine = true | ||||
|       return [ | ||||
|         {prop: "corpAddressBookSecret", label: "企业微信通讯录SECRET", width: 200}, | ||||
|         {prop: "corpAgentId", label: "企业微信AGENTID", width: 150}, | ||||
|         {prop: "corpSecret", label: "企业微信SECRET", width: 200}, | ||||
|         {prop: "corpSecret", label: "企业微信SECRET", isLine}, | ||||
|         {prop: "corpToken", label: "企业微信TOKEN", width: 150}, | ||||
|         {prop: "corpAeskey", label: "企业微信AESKEY", width: 150}, | ||||
|         {prop: "miniappAppid", label: "小程序APPID", width: 150}, | ||||
|         {prop: "miniappSecret", label: "小程序SECRET", width: 150}, | ||||
|         {prop: "areaId", label: "地区编码", width: 150, isLine}, | ||||
|         {prop: "lat", label: "纬度", width: 100}, | ||||
|         {prop: "lng", label: "经度", width: 100}, | ||||
|         {prop: "address", label: "中心点", width: 100}, | ||||
|         {slot: "status",}, | ||||
|         {slot: "miniappStatus",}, | ||||
|         {prop: "createTime", label: "创建时间", width: 150}, | ||||
|         {slot: "options"}, | ||||
|         {prop: "address", label: "中心点", width: 100, isLine}, | ||||
|         {prop: "webUrl", label: "管理端地址", width: 100}, | ||||
|         {prop: "dvcpUrl", label: "企微端地址", width: 100}, | ||||
|       ] | ||||
|     }, | ||||
|     rules() { | ||||
| @@ -309,7 +329,7 @@ export default { | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|      | ||||
|  | ||||
|     add() { | ||||
|       this.dialogForm = {}; | ||||
|       this.dialog = true; | ||||
| @@ -388,6 +408,13 @@ export default { | ||||
|           this.sysInfoDialog = false | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     handlePush(id) { | ||||
|       this.instance.post("/app/appclapeventinfo/setAppWorkbench", null, {params: {id}}).then(res => { | ||||
|         if (res?.code == 0) { | ||||
|           this.$message.success("推送成功!") | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| { | ||||
|   "AppCodeGeneration": "动态表单" | ||||
|   "AppCodeGeneration": "动态表单", | ||||
|   "AppGigscreenViewer": "大屏预览组件", | ||||
|   "AppDesigner": "大屏设计" | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,54 @@ | ||||
| <template> | ||||
|   <section class="AppGroupShareholders"> | ||||
|     <keep-alive :include="['List']"> | ||||
|       <component ref="component" :is="component" :instance="instance" :params="params" :dict="dict" @change="onChange"/> | ||||
|     </keep-alive> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import List from "./components/List.vue"; | ||||
| import Add from "./components/Add.vue"; | ||||
|  | ||||
| export default { | ||||
|   name: "AppGroupShareholders", | ||||
|   label: "集体经济股权", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|   }, | ||||
|   components: {Add, List}, | ||||
|   data() { | ||||
|     return { | ||||
|       component: "List", | ||||
|       params: {}, | ||||
|       include: [], | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     onChange(data) { | ||||
|       if (data.type === "Add") { | ||||
|         this.component = "Add"; | ||||
|         this.params = data.params; | ||||
|       } | ||||
|  | ||||
|       if (data.type === "List") { | ||||
|         this.component = "List"; | ||||
|         this.params = data.params; | ||||
|  | ||||
|         this.$nextTick(() => { | ||||
|           if (data.isRefresh) { | ||||
|             this.$refs.component.getTableData(); | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .AppGroupShareholders { | ||||
|   height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										297
									
								
								project/xiushan/apps/AppGroupShareholders/components/Add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										297
									
								
								project/xiushan/apps/AppGroupShareholders/components/Add.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,297 @@ | ||||
| <template> | ||||
|   <section class="Add"> | ||||
|     <ai-detail v-if="!id || isEdit==true"> | ||||
|  | ||||
|       <template #title> | ||||
|         <ai-title :title="params.id ? '编辑集体经济股权登记' : '新增集体经济股权登记'" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="cancel(false)"></ai-title> | ||||
|       </template> | ||||
|       <template #content> | ||||
|  | ||||
|         <ai-card title="基本信息"> | ||||
|           <template #right v-if="params.id"> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="isEdit=false">取消</span> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <el-form ref="form" :model="form" :rules="rules" size="small"  label-width="150px"> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="集体经济组织" prop="organizationName"> | ||||
|                     <el-input v-model="form.organizationName" placeholder="请输入集体经济组织名称"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="统一社会信用代码" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入统一社会信用代码" maxlength="18"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-form-item label="所在地区" prop="areaId"> | ||||
|                 <ai-area-select clearable always-show :instance="instance"  @fullname="v=>form.areaName = v" v-model="form.areaId" :disabled-level="disabledLevel" :value-level="4"></ai-area-select> | ||||
|               </el-form-item> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="12"> | ||||
|                   <el-form-item label="股权证编号" prop="stockCertificateCode"> | ||||
|                     <el-input v-model="form.stockCertificateCode" placeholder="请输入股权证编号"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-form-item label="权证照片" prop="fileList"> | ||||
|                 <ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/> | ||||
|               </el-form-item> | ||||
|             </el-form> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|  | ||||
|         <ai-card title="家庭持股情况"> | ||||
|           <template #right> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;"  v-if="!id || isEdit==true" @click="sysInfoDialog = true">+添加股权人</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                       @getList="getDetail" :col-configs="colConfigs" :dict="dict"> | ||||
|                | ||||
|               <el-table-column slot="options" label="操作"  align="center" v-if="!id || isEdit==true"> | ||||
|                 <template slot-scope="{row,$index}"> | ||||
|                   <el-button type="text" @click="editBtn(row,$index)">编辑</el-button> | ||||
|                   <el-button type="text" @click="deleteBtn(row,$index)">删除</el-button> | ||||
|                 </template> | ||||
|               </el-table-column> | ||||
|             </ai-table> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|  | ||||
|       </template> | ||||
|       <template slot="footer" class="footer"> | ||||
|         <el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button> | ||||
|         <el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|  | ||||
|     <ai-detail class="add" v-if="params.id && !isEdit"> | ||||
|       <template slot="title"> | ||||
|         <ai-title title="集体经济股权登记详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title> | ||||
|       </template> | ||||
|       <template slot="content"> | ||||
|  | ||||
|         <ai-card title="基本信息"> | ||||
|           <template #right> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span> | ||||
|             </template> | ||||
|           <template #content> | ||||
|             <ai-wrapper> | ||||
|               <ai-info-item label="集体经济组织" :value="data.organizationName"></ai-info-item> | ||||
|               <ai-info-item label="统一社会信用代码" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="所在地区" :value="data.areaName"></ai-info-item> | ||||
|               <ai-info-item label="股权证编号" :value="data.stockCertificateCode"></ai-info-item> | ||||
|               <ai-info-item label="股权总数" :value="data.totalEquity"></ai-info-item> | ||||
|               <ai-info-item label="股金总额(元)" :value="data.totalAmount"></ai-info-item> | ||||
|               <ai-info-item label="权证照片" isLine> | ||||
|                 <ai-uploader v-model="data.fileList" :instance="instance" :limit="9" disabled/> | ||||
|               </ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|  | ||||
|         <ai-card title="家庭持股情况"> | ||||
|           <template #right> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="!id || isEdit==true" @click="sysInfoDialog = true">+添加股权人</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                       @getList="getDetail" :col-configs="colConfigs" :dict="dict"> | ||||
|  | ||||
|               <el-table-column slot="options" label="操作"  align="center" v-if="!id || isEdit==true"> | ||||
|                 <template slot-scope="{row,$index}"> | ||||
|                   <el-button type="text" @click="editBtn(row, $index)">编辑</el-button> | ||||
|                   <el-button type="text" @click="deleteBtn(row, $index)">删除</el-button> | ||||
|                 </template> | ||||
|               </el-table-column> | ||||
|             </ai-table> | ||||
|              | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|  | ||||
|     <!-- 弹框 --> | ||||
|     <ai-dialog title="股权结构" :visible.sync="sysInfoDialog" width="600px" @onConfirm="onConfirm" | ||||
|                @closed="table={},isEditSys=false"> | ||||
|       <el-form size="small" label-width="140px" :rules="dialogRules" ref="dialogForm" :model="table"> | ||||
|         <el-form-item label="股权人姓名" prop="name"> | ||||
|           <el-input v-model="table.name" placeholder="请输入股权人姓名" clearable/> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="身份证号" prop="idNumber"> | ||||
|           <el-input v-model="table.idNumber" placeholder="请输入身份证号" clearable/> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="与户主关系" prop="householdRelation"> | ||||
|           <ai-select v-model="table.householdRelation" placeholder="请选择" :selectList="$dict.getDict('householdRelation')" /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="持股数量" prop="shareholdingNumber"> | ||||
|           <el-input v-model="table.shareholdingNumber" placeholder="请输入持股数量" clearable/> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="持股金额(元)" prop="shareholdingAmount"> | ||||
|           <el-input v-model="table.shareholdingAmount" placeholder="请输入持股金额" clearable/> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </ai-dialog> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import {mapState} from 'vuex' | ||||
| export default { | ||||
|   name: "Add", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function, | ||||
|     params: Object, | ||||
|   }, | ||||
|   data() { | ||||
|     return {  | ||||
|       id: '', | ||||
|       form: { | ||||
|         organizationName: '', | ||||
|         areaId: '', | ||||
|         areaName: '', | ||||
|         unifiedCode: '', | ||||
|         stockCertificateCode: '', | ||||
|         fileList: [], | ||||
|       }, | ||||
|       table: {}, | ||||
|       isEdit: false, | ||||
|       radioFrom: '', | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|       disabledLevel: 3, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       sysInfoDialog: false, | ||||
|       data: {}, | ||||
|       isEditSys: false, | ||||
|       sysIndex: '' | ||||
|     } | ||||
|   },  | ||||
|   computed: { | ||||
|     rules() { | ||||
|       return { | ||||
|         organizationName: [{required: true, message: '请输入集体经济组织名称', trigger: 'blur'}], | ||||
|         unifiedCode: [{required: true, message: '请输入18位统一社会信用代码', trigger: 'blur'}, | ||||
|                       {min: 18, message: '请输入18位统一社会信用代码', trigger: 'blur'}], | ||||
|         areaId: [ | ||||
|           {required: true, message: '请选择所在地区', trigger: 'blur'}, | ||||
|           {pattern: /[^0]0{0,2}$/,message:'所在地区必须选择到村',trigger: 'blur'} | ||||
|         ], | ||||
|         stockCertificateCode: [{required: true, message: '请输入股权证编号', trigger: 'blur'}], | ||||
|         fileList: [{required: true, message: '请上传图片', trigger: 'blur'}], | ||||
|       } | ||||
|     }, | ||||
|     dialogRules() { | ||||
|       return { | ||||
|         name: [{required: true, message: '请输入股权人姓名', trigger: 'blur'}], | ||||
|         idNumber: [{required: true, message: '请输入身份证号', trigger: 'blur'}], | ||||
|         householdRelation: [{required: true, message: '请选择与户主关系', trigger: 'blur'}], | ||||
|         shareholdingNumber: [{required: true, message: '请输入持股数量', trigger: 'blur'}], | ||||
|       } | ||||
|     }, | ||||
|     ...mapState(['user']), | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "name", label: '股权人姓名', align: "center", width: "150px", }, | ||||
|         { prop: "householdRelation", label: '与户主关系', align: "center", width: "200px", dict: 'householdRelation'}, | ||||
|         { prop: "idNumber", label: '身份证', align: "center", width: "200px", }, | ||||
|         { prop: "shareholdingNumber", label: '持股数量', align: "center", width: "200px", }, | ||||
|         { prop: "shareholdingAmount", label: '金额', align: "center", width: "200px", }, | ||||
|         { slot: "options" ,}, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('householdRelation') | ||||
|     if (this.params && this.params.id) { | ||||
|       this.id = this.params.id | ||||
|       this.getDetail(this.params.id) | ||||
|     } | ||||
|     this.form.areaId = this.user.info.areaId | ||||
|   }, | ||||
|   methods: { | ||||
|     cancel(isRefresh) { | ||||
|       this.$emit('change', { | ||||
|         type: 'List', | ||||
|         isRefresh: !!isRefresh, | ||||
|       }) | ||||
|     }, | ||||
|     deleteBtn(row, index) { | ||||
|       console.log(row); | ||||
|       if(row.householdRelation == 11) { | ||||
|         return '不可以删除户主' | ||||
|       } | ||||
|       this.tableData.splice(index, 1) | ||||
|     }, | ||||
|     getDetail(id) { | ||||
|       this.instance.post(`/appcollectiveeconomyequity/queryDetailById`,null, { | ||||
|         params: { | ||||
|           id: id, | ||||
|           ...this.page, | ||||
|         } | ||||
|       }).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.data = res.data, | ||||
|           this.tableData = res.data.shareholderList | ||||
|           this.page.total = res.data.shareholderList.length | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     onConfirm() { | ||||
|       this.$refs.dialogForm.validate((valid) => { | ||||
|         if(valid) { | ||||
|           if(this.isEditSys) {  //编辑 | ||||
|             // this.tableData[this.sysIndex] = this.table | ||||
|             this.tableData.splice(this.sysIndex, 1, this.table) | ||||
|           }else{//新增 | ||||
|             this.tableData.push(this.table) | ||||
|           } | ||||
|           this.sysInfoDialog = false | ||||
|           this.$forceUpdate() | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     confirm() { | ||||
|       this.$refs.form.validate((valid) => { | ||||
|         if (valid) { | ||||
|           this.instance.post(`/appcollectiveeconomyequity/addOrUpdate`, { | ||||
|             ...this.form, | ||||
|             id: this.params.id || '', | ||||
|             shareholderList: this.tableData, | ||||
|           }).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success('提交成功') | ||||
|               setTimeout(() => { | ||||
|                 this.cancel(true) | ||||
|               }, 600) | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     editBtn(row, index) { | ||||
|       console.log(index) | ||||
|       this.table = JSON.parse(JSON.stringify(row)) | ||||
|       this.sysInfoDialog = true | ||||
|       this.isEditSys = true | ||||
|       this.sysIndex = index  | ||||
|     } | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .Add { | ||||
|   height: 100%; | ||||
|   background: #f3f4f5; | ||||
|  | ||||
|   ::v-deep .ai-detail .ai-detail__footer { | ||||
|     background: #FFF; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										109
									
								
								project/xiushan/apps/AppGroupShareholders/components/List.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								project/xiushan/apps/AppGroupShareholders/components/List.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| <template> | ||||
|   <section class="List"> | ||||
|     <ai-list> | ||||
|       <!-- :instance="instance" isShowArea v-model="search.areaId" @change="changeArea" --> | ||||
|       <ai-title slot="title" title="集体经济组织股权管理" isShowBottomBorder /> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input size="small" placeholder="组织名称/持证人/身份证号/股权证编号" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"  | ||||
|             suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/> | ||||
|             <!-- 导入导出 --> | ||||
|             <ai-import :instance="instance" :dict="dict" importUrl="/appcollectiveeconomyequity/import" url="/appcollectiveeconomyequity/downloadTemplate" name="集体经济组织股权管理信息" @success="getTableData(), $message.success('导入成功!')"> | ||||
|               <el-button size="small">导入</el-button> | ||||
|             </ai-import> | ||||
|             <ai-download :instance="instance" url="/appcollectiveeconomyequity/export" :params="search" fileName="集体经济组织股权管理信息" | ||||
|                          :disabled="tableData.length == 0"> | ||||
|               <el-button size="small">导出</el-button> | ||||
|             </ai-download> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                   @getList="getTableData" :col-configs="colConfigs" :dict="dict"> | ||||
|           <el-table-column slot="options" label="操作"  align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click="toAdd(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="handleDelete(row.id)">删除</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
|       </template> | ||||
|     </ai-list> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: "List", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {executionCode: "",areaId:''}, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|       areaId: '', | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "organizationName", label: '集体经济组织名称', align: "center", width: "200px", }, | ||||
|         { prop: "name", label: '持证人(户主)', align: "center", width: "200px", }, | ||||
|         { prop: "idNumber", label: '身份证号', align: "center", width: "200px", }, | ||||
|         { prop: "stockCertificateCode", label: '股权编号', align: "center", width: "200px", }, | ||||
|         { prop: "totalEquity", label: '股权总数', align: "center", width: "200px", }, | ||||
|         { prop: "totalAmount", label: '股金总额(元)', align: "center", width: "200px", }, | ||||
|         { prop: "areaName", label: '所在地区', align: "center", width: "200px", }, | ||||
|         { slot: "options" ,}, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getTableData() | ||||
|   }, | ||||
|   methods: { | ||||
|     getTableData() { | ||||
|       this.instance.post("/appcollectiveeconomyequity/list", null, { | ||||
|         params: {...this.page, ...this.search,...this.select} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data?.records | ||||
|           this.page.total = res.data.total | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     toAdd(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'Add', | ||||
|         params: { | ||||
|           id: id || '' | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     handleDelete(id) { | ||||
|       this.$confirm("是否要删除?").then(() => { | ||||
|         this.instance.post(`/appcollectiveeconomyequity/delete?ids=${id}`).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success("删除成功") | ||||
|               this.getTableData() | ||||
|             } | ||||
|           }) | ||||
|       }) | ||||
|     }, | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .List { | ||||
|   height: 100%; | ||||
|   background: #f3f4f5; | ||||
| } | ||||
| </style> | ||||
| @@ -11,51 +11,53 @@ | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <!-- <ai-bar :title="params.id ? '编辑宅基地所有权信息' : '宅基地所有权信息'"></ai-bar> --> | ||||
|             <el-form ref="form" :model="form" :rules="rules" size="small"  label-width="150px"> | ||||
|               <el-form-item label="使用证书" prop="unifiedCode"> | ||||
|                 <el-input v-model="form.unifiedCode" placeholder="请输入宅基地使用证书号"></el-input> | ||||
|               <el-form-item label="使用证书" prop="useCertificate"> | ||||
|                 <el-input v-model="form.useCertificate" placeholder="请输入宅基地使用证书号"></el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="所在地区" prop="unifiedCode"> | ||||
|                 <ai-area-select v-model="areaId" provinceAction="/api/area/queryProvinceListContainCity" always-show clearable :instance="$request" :areaLevel="5" @fullname="(name) => (this.formJobWant.employmentAreaName = name)"></ai-area-select> | ||||
|               <el-form-item label="所在地区" prop="areaId"> | ||||
|                 <ai-area-select clearable always-show :instance="instance" @fullname="v=>form.areaName = v" v-model="form.areaId" :disabled-level="disabledLevel" :value-level="4"></ai-area-select> | ||||
|               </el-form-item> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="使用人" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入使用人姓名"></el-input> | ||||
|                   <el-form-item label="使用人" prop="usePerson"> | ||||
|                     <el-input v-model="form.usePerson" placeholder="请输入使用人姓名"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="家庭人口" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入使用人家庭人口"></el-input> | ||||
|                   <el-form-item label="家庭人口" prop="houseNumber"> | ||||
|                     <el-input type="number" v-model="form.houseNumber" placeholder="请输入使用人家庭人口"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="身份证号" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入使用人身份证号"></el-input> | ||||
|                   <el-form-item label="身份证号" prop="idNumber"> | ||||
|                     <el-input v-model="form.idNumber" placeholder="请输入使用人身份证号"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="土地所有权" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地所有权人/组织名称"></el-input> | ||||
|                   <el-form-item label="土地所有权" prop="landOwnership"> | ||||
|                     <el-input v-model="form.landOwnership" placeholder="请输入土地所有权人/组织名称"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="12"> | ||||
|                   <el-form-item label="土地面积/㎡" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地面积"></el-input> | ||||
|                   <el-form-item label="土地面积/㎡" prop="landArea"> | ||||
|                     <el-input v-model="form.landArea" placeholder="请输入土地面积"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-form-item label="土地四至" prop="unifiedCode"> | ||||
|                 <el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明宅基地的地块名称地界四至" maxlength="500" show-word-limit :rows="5" /> | ||||
|               <el-form-item label="土地四至" prop="landFourTo"> | ||||
|                 <el-input type="textarea" v-model="form.landFourTo" placeholder="请说明宅基地的地块名称地界四至" maxlength="500" show-word-limit :rows="5" /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="使用情况" prop="unifiedCode"> | ||||
|                 <el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明宅基地的使用情况" maxlength="500" show-word-limit :rows="5" /> | ||||
|               <el-form-item label="使用情况" prop="useSituation"> | ||||
|                 <el-input type="textarea" v-model="form.useSituation" placeholder="请说明宅基地的使用情况" maxlength="500" show-word-limit :rows="5" /> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="权证照片" prop="fileList"> | ||||
|               <ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/> | ||||
|             </el-form-item> | ||||
|             </el-form> | ||||
|           </template> | ||||
|         </ai-card> | ||||
| @@ -72,20 +74,22 @@ | ||||
|       <template slot="content"> | ||||
|         <ai-card title="合同信息"> | ||||
|           <template #right> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span> | ||||
|             </template> | ||||
|           <template #content> | ||||
|             <ai-wrapper> | ||||
|               <ai-info-item label="使用证书" :value="data.taxpayer"></ai-info-item> | ||||
|               <ai-info-item label="所在地区" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="使用人" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="家庭人口" :value="data.taxYear"></ai-info-item> | ||||
|               <ai-info-item label="身份证号" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="土地所有权">{{ dict.getLabel('taxInfoLevel', data.taxLevel) }}</ai-info-item> | ||||
|               <ai-info-item label="土地面积/㎡" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地四至" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="使用情况" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="使用证书" :value="data.useCertificate" isLine></ai-info-item> | ||||
|               <ai-info-item label="所在地区" :value="data.areaName" isLine></ai-info-item> | ||||
|               <ai-info-item label="使用人" :value="data.usePerson"></ai-info-item> | ||||
|               <ai-info-item label="家庭人口" :value="data.houseNumber"></ai-info-item> | ||||
|               <ai-info-item label="身份证号" :value="data.idNumber"></ai-info-item> | ||||
|               <ai-info-item label="土地所有权" :value="data.landOwnership">{{ dict.getLabel('landOwnership', data.landOwnership) }}</ai-info-item> | ||||
|               <ai-info-item label="土地面积/㎡" :value="data.landArea"></ai-info-item> | ||||
|               <ai-info-item label="土地四至" :value="data.landFourTo" isLine></ai-info-item> | ||||
|               <ai-info-item label="使用情况" :value="data.useSituation" isLine></ai-info-item> | ||||
|               <ai-info-item label="权证照片" isLine> | ||||
|                 <ai-uploader v-model="data.fileList" :instance="instance" :limit="9" disabled/> | ||||
|               </ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
| @@ -108,26 +112,51 @@ export default { | ||||
|     return {  | ||||
|       id: '', | ||||
|       form: { | ||||
|         unifiedCode: '', | ||||
|         useCertificate: '', | ||||
|         areaId: '', | ||||
|         areaName: '', | ||||
|         usePerson: '', | ||||
|         houseNumber: '', | ||||
|         idNumber: '', | ||||
|         landOwnership: '', | ||||
|         landArea: '', | ||||
|         landFourTo: '', | ||||
|         useSituation: '', | ||||
|         fileList: [], | ||||
|       }, | ||||
|       isEdit: false, | ||||
|       radioFrom: '' | ||||
|       radioFrom: '', | ||||
|       disabledLevel: 3, | ||||
|       data: {}, | ||||
|     } | ||||
|   },  | ||||
|   computed: { | ||||
|     rules() { | ||||
|       return { | ||||
|         unifiedCode: [{required: true, message: '请输入', trigger: 'blur'}] | ||||
|         useCertificate: [{required: true, message: '请输入使用证书', trigger: 'blur'}], | ||||
|         areaId: [ | ||||
|           {required: true, message: '请选择所在地区', trigger: 'blur'}, | ||||
|           {pattern: /[^0]0{0,2}$/,message:'所在地区必须选择到村',trigger: 'blur'} | ||||
|         ], | ||||
|         usePerson: [{required: true, message: '请输入使用人', trigger: 'blur'}], | ||||
|         houseNumber: [{required: true, message: '请输入家庭人口', trigger: 'blur'}, | ||||
|                       {pattern: /^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/, message: '请输入正整数',trigger: 'blur'}], | ||||
|         idNumber: [{required: true, message: '请输入身份证号', trigger: 'blur'}], | ||||
|         landOwnership: [{required: true, message: '请输入土地所有权', trigger: 'blur'}], | ||||
|         landArea: [{required: true, message: '请输入土地面积', trigger: 'blur'}], | ||||
|         landFourTo: [{required: true, message: '请输入土地四至', trigger: 'blur'}], | ||||
|         useSituation: [{required: true, message: '请输入使用情况', trigger: 'blur'}], | ||||
|         fileList: [{required: true, message: '请上传图片', trigger: 'blur'}], | ||||
|       } | ||||
|     }, | ||||
|     ...mapState(['user']) | ||||
|     ...mapState(['user']), | ||||
|   }, | ||||
|   created() { | ||||
|     if (this.params && this.params.id) { | ||||
|       this.id = this.params.id | ||||
|       this.getDetail(this.params.id) | ||||
|     } | ||||
|     this.areaId = this.user.info.areaId | ||||
|     this.form.areaId = this.user.info.areaId | ||||
|   }, | ||||
|   methods: { | ||||
|     cancel(isRefresh) { | ||||
| @@ -137,28 +166,28 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|     getDetail(id) { | ||||
|       // this.instance.post(`/appcreditadminstrativelicense/queryDetailById?id=${id}`).then(res => { | ||||
|       //   if (res.code === 0) { | ||||
|       //     this.data = res.data | ||||
|       //   } | ||||
|       // }) | ||||
|       this.instance.post(`/apphomesteadinfo/queryDetailById?id=${id}`).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.data = res.data | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     confirm() { | ||||
|       // this.$refs.form.validate((valid) => { | ||||
|       //   if (valid) { | ||||
|       //     this.instance.post(`/appcreditadminstrativelicense/addOrUpdate`, { | ||||
|       //       ...this.forms, | ||||
|       //       id: this.params.id || '', | ||||
|       //     }).then(res => { | ||||
|       //       if (res.code == 0) { | ||||
|       //         this.$message.success('提交成功') | ||||
|       //         setTimeout(() => { | ||||
|       //           this.cancel(true) | ||||
|       //         }, 600) | ||||
|       //       } | ||||
|       //     }) | ||||
|       //   } | ||||
|       // }) | ||||
|       this.$refs.form.validate((valid) => { | ||||
|         if (valid) { | ||||
|           this.instance.post(`/apphomesteadinfo/addOrUpdate`, { | ||||
|             ...this.form, | ||||
|             id: this.params.id || '', | ||||
|           }).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success('提交成功') | ||||
|               setTimeout(() => { | ||||
|                 this.cancel(true) | ||||
|               }, 600) | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
|   | ||||
| @@ -1,16 +1,24 @@ | ||||
| <template> | ||||
|   <section class="List"> | ||||
|     <ai-list> | ||||
|       <!--  :disabledLevel="disabledLevel" --> | ||||
|       <ai-title slot="title" title="宅基地管理" isShowBottomBorder :instance="instance" isShowArea v-model="search.areaId" @change="changeArea"/> | ||||
|       <!-- :instance="instance" isShowArea v-model="search.areaId" @change="changeArea" --> | ||||
|       <ai-title slot="title" title="宅基地管理" isShowBottomBorder /> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input size="small" placeholder="查询证书号/使用人/使用人身份证" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"  | ||||
|             <el-input size="small" placeholder="查询证书号/使用人/使用人身份证" v-model="search.useCertificate" clearable @clear="page.current = 1, search.useCertificate = '',getTableData()"  | ||||
|             suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/> | ||||
|             <!-- 导入导出 --> | ||||
|             <ai-import :instance="instance" :dict="dict" importUrl="/apphomesteadinfo/import" url="/apphomesteadinfo/downloadTemplate" name="宅基地管理信息模板" @success="getTableData(), $message.success('导入成功!')"> | ||||
|               <el-button size="small">导入</el-button> | ||||
|             </ai-import> | ||||
|             <ai-download :instance="instance" url="/apphomesteadinfo/export" :params="search" fileName="宅基地管理信息" | ||||
|                          :disabled="tableData.length == 0"> | ||||
|               <el-button size="small">导出</el-button> | ||||
|             </ai-download> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
| @@ -38,7 +46,7 @@ export default { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {executionCode: "",areaId:''}, | ||||
|       search: {useCertificate: ""}, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|       areaId: '', | ||||
| @@ -48,25 +56,25 @@ export default { | ||||
|     ...mapState(['user']), | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "executionCode", label: '使用证书号', align: "center", width: "200px", }, | ||||
|         { prop: "executionTime", label: '使用人', align: "center", width: "200px", }, | ||||
|         { prop: "enterpriseName", label: '身份证号', align: "center", width: "200px", }, | ||||
|         { prop: "unifiedCode", label: '家庭人口', align: "center", width: "200px", }, | ||||
|         { prop: "dishonestFact", label: '面积/㎡', align: "center", width: "200px", }, | ||||
|         { prop: "createTime", label: '土地四至', align: "center", width: "200px", }, | ||||
|         { prop: "createUserName", label: '土地所有权', align: "center", width: "200px", }, | ||||
|         { prop: "useCertificate", label: '使用证书号', align: "center", width: "200px", }, | ||||
|         { prop: "usePerson", label: '使用人', align: "center", width: "200px", }, | ||||
|         { prop: "idNumber", label: '身份证号', align: "center", width: "200px", }, | ||||
|         { prop: "houseNumber", label: '家庭人口', align: "center", width: "200px", }, | ||||
|         { prop: "landArea", label: '面积/㎡', align: "center", width: "200px", }, | ||||
|         { prop: "landFourTo", label: '土地四至', align: "center", width: "200px", }, | ||||
|         { prop: "landOwnership", label: '土地所有权', align: "center", width: "200px", }, | ||||
|         { slot: "options" ,}, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.search.areaId = this.user.info.areaId | ||||
|     // this.search.areaId = this.user.info.areaId | ||||
|     this.getTableData() | ||||
|   }, | ||||
|   methods: { | ||||
|     changeArea() {}, | ||||
|     getTableData() { | ||||
|       this.instance.post("/appcreditdishonestperson/list", null, { | ||||
|       this.instance.post("/apphomesteadinfo/list", null, { | ||||
|         params: {...this.page, ...this.search,...this.select} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
| @@ -85,7 +93,7 @@ export default { | ||||
|     }, | ||||
|     handleDelete(id) { | ||||
|       this.$confirm("是否要删除?").then(() => { | ||||
|         this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => { | ||||
|         this.instance.post(`/apphomesteadinfo/delete?ids=${id}`).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success("删除成功") | ||||
|               this.getTableData() | ||||
|   | ||||
| @@ -51,7 +51,7 @@ export default { | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .AppDishonestExecutee { | ||||
| .AppLandTransfer { | ||||
|   height: 100%; | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -12,109 +12,76 @@ | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <el-form ref="form" :model="form" :rules="rules" size="small"  label-width="150px"> | ||||
|               <el-form-item label="土地流出方" prop="unifiedCode"> | ||||
|                 <el-radio-group v-model="radioFrom"> | ||||
|                   <el-radio :label="1">企业组织</el-radio> | ||||
|                   <el-radio :label="2">个人农户</el-radio> | ||||
|                 </el-radio-group> | ||||
|               </el-form-item> | ||||
|               <el-row type="flex" v-if="radioFrom == 1"> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="单位名称" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地流出方单位名称"></el-input> | ||||
|                   <el-form-item label="土地流出方" prop="landOutflowName"> | ||||
|                     <el-input v-model="form.landOutflowName" placeholder="请输入土地流出方名称"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="信用代码" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地流出方统一社会信用代码"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex" v-if="radioFrom == 2"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="人员姓名" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地流出方人员姓名"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="身份证号" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地流出方身份证号"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-form-item label="土地承接方" prop="unifiedCode"> | ||||
|                 <el-radio-group v-model="radioTo"> | ||||
|                   <el-radio :label="1">企业组织</el-radio> | ||||
|                   <el-radio :label="2">个人农户</el-radio> | ||||
|                 </el-radio-group> | ||||
|               </el-form-item> | ||||
|               <el-row type="flex" v-if="radioTo == 1"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="单位名称" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地承接方单位名称"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="信用代码" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地承接方统一社会信用代码"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex" v-if="radioTo == 2"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="人员姓名" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地承接方人员姓名"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="身份证号" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入土地承接方人员身份证号"></el-input> | ||||
|                   <el-form-item label="土地流出方证件号码" prop="landOutflowNumber"> | ||||
|                     <el-input v-model="form.landOutflowNumber" placeholder="请输入土地流出方证件号码"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="合同编号" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入合同编号"></el-input> | ||||
|                   </el-form-item> | ||||
|                   <el-form-item label="土地承接方" prop="landUndertakeName"> | ||||
|                     <el-input v-model="form.landUndertakeName" placeholder="请输入土地承接方名称"></el-input> | ||||
|                   </el-form-item>     | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="流转形式" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入流转形式"></el-input> | ||||
|                   <el-form-item label="土地承接方证件号码" prop="landUndertakeNumber"> | ||||
|                     <el-input v-model="form.landUndertakeNumber" placeholder="请输入土地承接方证件号码"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="土地面积/㎡" prop="unifiedCode"> | ||||
|                      <ai-select v-model="form.unifiedCode" placeholder="请选择" :selectList="$dict.getDict('')"></ai-select> | ||||
|                   <el-form-item label="合同编号" prop="contractNo"> | ||||
|                     <el-input v-model="form.contractNo" placeholder="请输入合同编号"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="每亩年租金" prop="unifiedCode"> | ||||
|                     <el-input v-model="form.unifiedCode" placeholder="请输入"></el-input> | ||||
|                   <el-form-item label="流转形式" prop="circulateType"> | ||||
|                     <ai-select v-model="form.circulateType" placeholder="请选择" :selectList="$dict.getDict('landCirculateType')"></ai-select> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="土地面积/㎡" prop="landArea"> | ||||
|                     <el-input v-model="form.landArea" placeholder="请输入土地面积" /> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="20"> | ||||
|                   <el-form-item label="每亩年租金(元)" prop="yearRent"> | ||||
|                     <el-input v-model="form.yearRent" placeholder="请输入"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
|               <el-col :span="20"> | ||||
|                 <el-form-item label="开始日期" prop="unifiedCode"> | ||||
|                   <el-date-picker v-model="form.unifiedCode" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:375px"> | ||||
|                 <el-form-item label="开始日期" prop="startDate"> | ||||
|                   <el-date-picker v-model="form.startDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:410px"> | ||||
|                   </el-date-picker> | ||||
|                 </el-form-item> | ||||
|               </el-col> | ||||
|               <el-col :span="20"> | ||||
|                 <el-form-item label="截止日期" prop="unifiedCode"> | ||||
|                   <el-date-picker v-model="form.unifiedCode" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:375px"> | ||||
|                 <el-form-item label="截止日期" prop="endDate"> | ||||
|                   <el-date-picker v-model="form.endDate" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" style="width:410px"> | ||||
|                   </el-date-picker> | ||||
|                 </el-form-item> | ||||
|               </el-col> | ||||
|             </el-row> | ||||
|             <el-form-item label="土地信息" prop="unifiedCode"> | ||||
|               <el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明土地流转的地块名称地界四至" maxlength="500" show-word-limit :rows="5" /> | ||||
|             <el-form-item label="土地信息" prop="landInfo"> | ||||
|               <el-input type="textarea" v-model="form.landInfo" placeholder="请说明土地流转的地块名称地界四至" maxlength="500" show-word-limit :rows="5" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="土地用途" prop="unifiedCode"> | ||||
|               <el-input type="textarea" v-model="form.unifiedCode" placeholder="请说明流转土地的用途" maxlength="500" show-word-limit :rows="5" /> | ||||
|             <el-form-item label="土地用途" prop="landUse"> | ||||
|               <el-input type="textarea" v-model="form.landUse" placeholder="请说明流转土地的用途" maxlength="500" show-word-limit :rows="5" /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="权证照片" prop="fileList"> | ||||
|               <ai-uploader v-model="form.fileList" :instance="instance" :limit="9" isShowTip/> | ||||
|             </el-form-item> | ||||
|             </el-form> | ||||
|           </template> | ||||
| @@ -125,31 +92,29 @@ | ||||
|         <el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|     <ai-detail class="add" v-if="id && !isEdit"> | ||||
|     <ai-detail class="add" v-if="params.id && !isEdit"> | ||||
|       <template slot="title"> | ||||
|         <ai-title title="详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title> | ||||
|       </template> | ||||
|       <template slot="content"> | ||||
|         <ai-card title="基本信息"> | ||||
|           <template #right> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,form=data">修改</span> | ||||
|             </template> | ||||
|           <template #content> | ||||
|             <ai-wrapper> | ||||
|               <ai-info-item label="土地流出方" :value="data.taxpayer"></ai-info-item> | ||||
|               <ai-info-item label="信用代码" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="身份证" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="土地承接方" :value="data.taxYear"></ai-info-item> | ||||
|               <ai-info-item label="信用代码" :value="data.taxpayerNumber"></ai-info-item> | ||||
|               <ai-info-item label="身份证号">{{ dict.getLabel('taxInfoLevel', data.taxLevel) }}</ai-info-item> | ||||
|               <ai-info-item label="流转形式" :value="data.enterpriseName"></ai-info-item> | ||||
|               <ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="每亩年租金" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地面积" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="开始日期" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="截止日期" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地信息" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地用途" :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="土地流出方" :value="data.landOutflowName" ></ai-info-item> | ||||
|               <ai-info-item label="土地流出方证件号码" :value="data.landOutflowNumber"></ai-info-item> | ||||
|               <ai-info-item label="土地承接方" :value="data.landUndertakeName"></ai-info-item> | ||||
|               <ai-info-item label="土地承接方证件号码" :value="data.contractNo"></ai-info-item> | ||||
|               <ai-info-item label="合同编号" :value="data.landUndertakeNumber"></ai-info-item> | ||||
|               <ai-info-item label="流转形式">{{ $dict.getLabel('landCirculateType',data.circulateType) }}</ai-info-item> | ||||
|               <ai-info-item label="土地面积" :value="data.landArea"></ai-info-item> | ||||
|               <ai-info-item label="每亩年租金(元)" :value="data.yearRent"></ai-info-item> | ||||
|               <ai-info-item label="开始日期" :value="data.startDate"></ai-info-item> | ||||
|               <ai-info-item label="截止日期" :value="data.endDate"></ai-info-item> | ||||
|               <ai-info-item label="土地信息" :value="data.landInfo"></ai-info-item> | ||||
|               <ai-info-item label="土地用途" :value="data.landUse"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
| @@ -172,7 +137,19 @@ export default { | ||||
|       radioTo: '', | ||||
|       radioFrom: '', | ||||
|       form: { | ||||
|         unifiedCode: '', | ||||
|         landOutflowName: '', | ||||
|         landOutflowNumber: '', | ||||
|         landUndertakeName: '', | ||||
|         landUndertakeNumber: '', | ||||
|         contractNo: '', | ||||
|         circulateType: '', | ||||
|         landArea: '', | ||||
|         yearRent: '', | ||||
|         startDate: '', | ||||
|         endDate:'' , | ||||
|         landInfo: '', | ||||
|         landUse: '', | ||||
|         fileList: [], | ||||
|       }, | ||||
|       data: {}, | ||||
|       isEdit: false, | ||||
| @@ -182,12 +159,25 @@ export default { | ||||
|   computed: { | ||||
|     rules() { | ||||
|       return { | ||||
|         unifiedCode: [{required: true, message: "请输入名称", trigger: "blur"}], | ||||
|         landOutflowName: [{required: true, message: "请输入土地流出方名称", trigger: "blur"}], | ||||
|         landOutflowNumber: [{required: true, message: "请输入土地流出方证件号码", trigger: "blur"}], | ||||
|         landUndertakeName: [{required: true, message: "请输入土地承接方名称", trigger: "blur"}], | ||||
|         landUndertakeNumber: [{required: true, message: "请输入土地承接方证件号码", trigger: "blur"}], | ||||
|         contractNo: [{required: true, message: "请输入合同编号", trigger: "blur"}], | ||||
|         circulateType: [{required: true, message: "请选择流转形式", trigger: "blur"}], | ||||
|         landArea: [{required: true, message: "请输入土地面积", trigger: "blur"}], | ||||
|         // yearRent: [{required: true, message: "请输入每亩年租金", trigger: "blur"}], | ||||
|         startDate: [{required: true, message: "请选择开始日期", trigger: "blur"}], | ||||
|         // endDate: [{required: true, message: "请选择截止日期", trigger: "blur"}], | ||||
|         landInfo: [{required: true, message: "请输入土地信息", trigger: "blur"}], | ||||
|         // landUse: [{required: true, message: "请输入土地用途", trigger: "blur"}], | ||||
|         fileList: [{required: true, message: "请上传图片", trigger: "blur"}], | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('landCirculateType') | ||||
|     if(this.params && this.params.id) { | ||||
|       this.id = this.params.id | ||||
|       this.getDetail(this.params.id) | ||||
| @@ -201,28 +191,28 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|     getDetail(id) { | ||||
|       // this.instance.post(`/appcreditadminstrativelicense/queryDetailById?id=${id}`).then(res => { | ||||
|       //   if (res.code === 0) { | ||||
|       //     this.data = res.data | ||||
|       //   } | ||||
|       // }) | ||||
|       this.instance.post(`/applandcirculateinfo/queryDetailById?id=${id}`).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.data = res.data | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     confirm() { | ||||
|       // this.$refs.forms.validate((valid) => { | ||||
|       //   if (valid) { | ||||
|       //     this.instance.post(`/appcreditadminstrativelicense/addOrUpdate`, { | ||||
|       //       ...this.forms, | ||||
|       //       id: this.params.id || '', | ||||
|       //     }).then(res => { | ||||
|       //       if (res.code == 0) { | ||||
|       //         this.$message.success('提交成功') | ||||
|       //         setTimeout(() => { | ||||
|       //           this.cancel(true) | ||||
|       //         }, 600) | ||||
|       //       } | ||||
|       //     }) | ||||
|       //   } | ||||
|       // }) | ||||
|       this.$refs.form.validate((valid) => { | ||||
|         if (valid) { | ||||
|           this.instance.post(`/applandcirculateinfo/addOrUpdate`, { | ||||
|             ...this.form, | ||||
|             id: this.params.id || '', | ||||
|           }).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success('提交成功') | ||||
|               setTimeout(() => { | ||||
|                 this.cancel(true) | ||||
|               }, 600) | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| @@ -231,11 +221,14 @@ export default { | ||||
| <style lang="scss" scoped> | ||||
| .Add { | ||||
|   height: 100%; | ||||
|   // background: #f3f4f5; | ||||
|   background: #f3f4f5; | ||||
|  | ||||
|   .footer { | ||||
|   ::v-deep .footer { | ||||
|     background: #FFF !important; | ||||
|   } | ||||
|  | ||||
|     background: #FFF; | ||||
|   ::v-deep .ai-info-item label { | ||||
|     width: 130px; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -1,17 +1,24 @@ | ||||
| <template> | ||||
|   <section class="List"> | ||||
|     <ai-list> | ||||
|       <ai-title slot="title" title="土地流转经营" isShowBottomBorder :isShowArea="true" v-model="areaId"/> | ||||
|       <ai-title slot="title" title="土地流转经营" isShowBottomBorder/> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button> | ||||
|             <ai-select v-model="readType" @change="onChange" placeholder="流转形式" :selectList="$dict.getDict('readType')"></ai-select> | ||||
|             <ai-select v-model="readType" @change="onChange" placeholder="经营状态" :selectList="$dict.getDict('readType')"></ai-select> | ||||
|             <ai-select v-model="circulateType" @change="onChange" placeholder="流转形式" :selectList="$dict.getDict('landCirculateType')"></ai-select> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input size="small" placeholder="查询合同编号/流出方/承接方/证件号码" v-model="search.name" clearable @clear="page.current = 1, searchObj.name = '',getTableData()"  | ||||
|             <el-input size="small" placeholder="查询合同编号/流出方/承接方/证件号码" v-model="search.contractNo" clearable @clear="page.current = 1, search.contractNo = '',getTableData()"  | ||||
|             suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/> | ||||
|             <!-- 导入导出 --> | ||||
|             <ai-import :instance="instance" :dict="dict" importUrl="/applandcirculateinfo/import" url="/applandcirculateinfo/downloadTemplate" name="土地流转经营信息" @success="getTableData(), $message.success('导入成功!')"> | ||||
|               <el-button size="small">导入</el-button> | ||||
|             </ai-import> | ||||
|             <ai-download :instance="instance" url="/applandcirculateinfo/export" :params="search" fileName="土地流转经营信息" | ||||
|                          :disabled="tableData.length == 0"> | ||||
|               <el-button size="small">导出</el-button> | ||||
|             </ai-download> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
| @@ -19,7 +26,6 @@ | ||||
|           <el-table-column slot="options" label="操作"  align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click="toAdd(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="toAdd(row.id)">编辑</el-button> | ||||
|               <el-button type="text" @click="handleDelete(row.id)">删除</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
| @@ -40,7 +46,8 @@ export default { | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {name: ""}, | ||||
|       search: {contractNo: ""}, | ||||
|       select: {circulateType: ''}, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|       readType:'', | ||||
| @@ -50,26 +57,26 @@ export default { | ||||
|   computed: { | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "executionCode", label: '土地流出方', align: "center", width: "200px", }, | ||||
|         { prop: "executionTime", label: '土地面积/㎡', align: "center", width: "200px", }, | ||||
|         { prop: "enterpriseName", label: '流转形式', align: "center", width: "200px", }, | ||||
|         { prop: "unifiedCode", label: '土地承接方', align: "center", width: "200px", }, | ||||
|         { prop: "dishonestFact", label: '承接方证件号码', align: "center", width: "200px", }, | ||||
|         { prop: "createTime", label: '有效期限', align: "center", width: "200px", }, | ||||
|         { prop: "createUserName", label: '经营状态', align: "center", width: "200px", }, | ||||
|         { prop: "landOutflowName", label: '土地流出方', align: "center", width: "200px", }, | ||||
|         { prop: "landArea", label: '土地面积/㎡', align: "center", width: "200px", }, | ||||
|         { prop: "circulateType", label: '流转形式', align: "center", width: "200px", dict: "landCirculateType" }, | ||||
|         { prop: "landUndertakeName", label: '土地承接方', align: "center", width: "200px", }, | ||||
|         { prop: "landUndertakeNumber", label: '承接方证件号码', align: "center", width: "200px", }, | ||||
|         { prop: "contractNo", label: '合同编号', align: "center", width: "200px", }, | ||||
|         { prop: "endDate", label: '有效期限', align: "center", width: "200px", }, | ||||
|         { slot: "options" ,}, | ||||
|       ] | ||||
|     }, | ||||
|     ...mapState(['user']) | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('readType') | ||||
|     this.$dict.load('landCirculateType') | ||||
|     this.getTableData() | ||||
|     this.areaId = this.user.info.areaId | ||||
|   }, | ||||
|   methods: { | ||||
|     getTableData() { | ||||
|       this.instance.post("/appcreditdishonestperson/list", null, { | ||||
|       this.instance.post("/applandcirculateinfo/list", null, { | ||||
|         params: {...this.page, ...this.search,...this.select} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
| @@ -78,7 +85,11 @@ export default { | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     onChange() {}, | ||||
|     onChange(v) { | ||||
|       this.tableData = [] | ||||
|       this.select.circulateType = v; | ||||
|       this.getTableData() | ||||
|     }, | ||||
|     toAdd(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'Add', | ||||
| @@ -89,7 +100,7 @@ export default { | ||||
|     }, | ||||
|     handleDelete(id) { | ||||
|       this.$confirm("是否要删除?").then(() => { | ||||
|         this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => { | ||||
|         this.instance.post(`/applandcirculateinfo/delete?ids=${id}`).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success("删除成功") | ||||
|               this.getTableData() | ||||
|   | ||||
| @@ -116,7 +116,8 @@ export default { | ||||
|   data() { | ||||
|     return { | ||||
|       detail: {}, | ||||
|       menuList: ['基本信息','股权结构'], | ||||
|       menuList: ['基本信息'], | ||||
|       // menuList: ['基本信息','股权结构'], | ||||
|       index: 0, | ||||
|       tableData: [], | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|   | ||||
| @@ -0,0 +1,54 @@ | ||||
| <template> | ||||
|   <section class="AppPublicArrearage"> | ||||
|     <keep-alive :include="['List']"> | ||||
|       <component ref="component" :is="component" :instance="instance" :params="params" :dict="dict" @change="onChange"/> | ||||
|     </keep-alive> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import List from "./components/List.vue"; | ||||
| import Add from "./components/Add.vue"; | ||||
|  | ||||
| export default { | ||||
|   name: "AppPublicArrearage", | ||||
|   label: "公共事业欠费", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|   }, | ||||
|   components: {Add, List}, | ||||
|   data() { | ||||
|     return { | ||||
|       component: "List", | ||||
|       params: {}, | ||||
|       include: [], | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     onChange(data) { | ||||
|       if (data.type === "Add") { | ||||
|         this.component = "Add"; | ||||
|         this.params = data.params; | ||||
|       } | ||||
|  | ||||
|       if (data.type === "List") { | ||||
|         this.component = "List"; | ||||
|         this.params = data.params; | ||||
|  | ||||
|         this.$nextTick(() => { | ||||
|           if (data.isRefresh) { | ||||
|             this.$refs.component.getTableData(); | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .AppPublicArrearage { | ||||
|   height: 100%; | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										234
									
								
								project/xiushan/apps/AppPublicArrearage/components/Add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								project/xiushan/apps/AppPublicArrearage/components/Add.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,234 @@ | ||||
| <template> | ||||
|   <section class="Add"> | ||||
|     <ai-detail class="add" v-if="isEdit == true || !id"> | ||||
|       <template #title> | ||||
|         <ai-title :title="params.id ? '编辑公共事业欠费信息' : '新增公共事业欠费信息'" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="cancel(false)" /> | ||||
|       </template> | ||||
|       <template slot="content"> | ||||
|         <ai-card title="基本信息"> | ||||
|           <template #right v-if="params.id"> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="isEdit=false">取消</span> | ||||
|             <span style="color:#2266FF;margin-left: 16px;cursor: pointer;font-size: 12px;" v-if="isEdit==true" @click="confirm()">保存</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <el-form ref="forms" :model="forms" :rules="formRules" size="small"  label-width="180px"> | ||||
|               <el-form-item label="欠费金额(万元)" prop="executionCode"> | ||||
|                 <el-input v-model="forms.executionCode" placeholder="请输入"></el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="欠费类型名称" prop="executionCourt"> | ||||
|                 <ai-select v-model="forms.executionSituation" placeholder="请选择文档类型" :selectList="$dict.getDict('dishonestPersonSituation')"></ai-select> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="欠费主体" prop="executionTime"> | ||||
|                 <el-input v-model="forms.executionCode" placeholder="请输入"></el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="失信严重程度" prop="executionSituation"> | ||||
|                 <ai-select v-model="forms.executionSituation" placeholder="请选择文档类型" :selectList="$dict.getDict('dishonestPersonSituation')"></ai-select> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="统一信用代码" prop="enterpriseName"> | ||||
|                 <el-input v-model="forms.enterpriseName" placeholder="请输入"></el-input> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="认定日期" prop="unifiedCode"> | ||||
|                 <el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> | ||||
|                 </el-date-picker> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="失信行为有效期" prop="enterpriseName"> | ||||
|                 <el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> | ||||
|                 </el-date-picker> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="欠费统计截止日期" prop="unifiedCode"> | ||||
|                 <el-date-picker v-model="forms.executionTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> | ||||
|                 </el-date-picker> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="数据来源机构" prop="enterpriseName"> | ||||
|                 <el-input v-model="forms.enterpriseName" placeholder="请输入"></el-input> | ||||
|               </el-form-item> | ||||
|             </el-form> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </template> | ||||
|       <template slot="footer" class="footer"> | ||||
|         <el-button class="delete-btn footer-btn" @click="cancel(false)">取消</el-button> | ||||
|         <el-button class="footer-btn" type="primary" @click="confirm()">保存</el-button> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|  | ||||
|     <ai-detail class="add" v-if="id && !isEdit"> | ||||
|       <template slot="title"> | ||||
|         <ai-title title="失信被执行人信息详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"></ai-title> | ||||
|       </template> | ||||
|       <template slot="content"> | ||||
|         <ai-card title="基本信息"> | ||||
|           <template #right> | ||||
|               <span style="color:#2266FF;cursor: pointer;font-size: 12px;" class="iconfont iconEdit" v-if="isEdit==false" @click="isEdit=true,forms=data">修改</span> | ||||
|             </template> | ||||
|           <template #content> | ||||
|             <ai-wrapper> | ||||
|               <ai-info-item label="执行案号" :value="data.executionCode"></ai-info-item> | ||||
|               <ai-info-item label="执行法院" :value="data.executionCourt"></ai-info-item> | ||||
|               <ai-info-item label="执行时间" :value="data.executionTime"></ai-info-item> | ||||
|               <ai-info-item label="履行情况" :value="data.executionSituation">{{  dict.getLabel('dishonestPersonSituation',data.executionSituation) }}</ai-info-item> | ||||
|               <ai-info-item label="失信被执行主体" :value="data.enterpriseName"></ai-info-item> | ||||
|               <ai-info-item label="统一信用代码" isLine :value="data.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="失信事实" isLine :value="data.dishonestFact"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: "Add", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function, | ||||
|     params: Object, | ||||
|   }, | ||||
|   computed: { | ||||
|     formRules() { | ||||
|       return { | ||||
|         executionCode: [{required: true,message:"请输入执行编号",trigger: "blur"}], | ||||
|         executionCourt: [{required: true,message:"请输入执行法院",trigger: "blur"}], | ||||
|         executionTime: [{required: true,message:"请输入执行时间",trigger: "blur"}], | ||||
|         executionSituation: [{required: true,message:"请选择履行情况",trigger: "blur"}], | ||||
|         enterpriseName: [{required: true,message:"请输入失信被执行主体",trigger: "blur"}], | ||||
|         unifiedCode: [{required: true,message:"请输入统一信用代码",trigger: "blur"}, | ||||
|         { min: 18, max: 18, message: '长度为18个字符', trigger: 'blur' }], | ||||
|         dishonestFact: [{required: true,message:"请输入失信事实",trigger: "blur"}], | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.$dict.load('dishonestPersonSituation') | ||||
|     if (this.params && this.params.id) { | ||||
|       this.id = this.params.id | ||||
|       this.getDetail(this.params.id) | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       forms: { | ||||
|         executionCode: '', | ||||
|         executionCourt: '', | ||||
|         executionTime: '', | ||||
|         executionSituation: '', | ||||
|         enterpriseName: '', | ||||
|         unifiedCode: '', | ||||
|         dishonestFact: '', | ||||
|       }, | ||||
|       data: {}, | ||||
|       isEdit: false, | ||||
|       id: '', | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     cancel(isRefresh) { | ||||
|       this.$emit('change', { | ||||
|         type: 'List', | ||||
|         isRefresh: !!isRefresh, | ||||
|       }) | ||||
|     }, | ||||
|     getDetail(id) { | ||||
|       this.instance.post(`/appcreditdishonestperson/queryDetailById?id=${id}`).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.data = res.data | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     confirm( ) { | ||||
|       this.$refs.forms.validate((valid) => { | ||||
|         if (valid) { | ||||
|           this.instance.post(`/appcreditdishonestperson/addOrUpdate`, { | ||||
|             ...this.forms, | ||||
|             id: this.params.id || '', | ||||
|           }).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success('提交成功') | ||||
|               setTimeout(() => { | ||||
|                 this.cancel(true) | ||||
|               }, 600) | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
|  | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .Add { | ||||
|   height: 100%; | ||||
|   overflow: hidden; | ||||
|   background: #f2f4f6 !important; | ||||
|  | ||||
|   .add-form__item { | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .el-form-item__label { | ||||
|     padding-right: 40px; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .ai-detail__footer { | ||||
|     background: #fff !important; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .ai-info-item label { | ||||
|     width: 100px; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .ai-detail__content--active { | ||||
|     padding: 20px; | ||||
|  | ||||
|     .ai-detail__content--wrapper { | ||||
|       width: 100%; | ||||
|     } | ||||
|  | ||||
|     .aibar { | ||||
|       padding: 0 16px; | ||||
|     } | ||||
|  | ||||
|     .el-form { | ||||
|       padding: 0 96px 20px 50px; | ||||
|     } | ||||
|  | ||||
|     .add-form { | ||||
|       background: #fff; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   ::v-deep .ai-wrapper { | ||||
|     align-items: inherit !important; | ||||
|   } | ||||
|  | ||||
|   .user-wrapper { | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|   } | ||||
|  | ||||
|   .avatar { | ||||
|     width: 100px; | ||||
|     height: 100px; | ||||
|     object-fit: contain; | ||||
|     border-radius: 10px; | ||||
|   } | ||||
|  | ||||
|   .footer-btn { | ||||
|     width: 130px; | ||||
|   } | ||||
|  | ||||
|   .el-form { | ||||
|     padding-bottom: 80px; | ||||
|   } | ||||
|   ::v-deep .el-form-item { | ||||
|     width: 50%; | ||||
|     float: left; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										107
									
								
								project/xiushan/apps/AppPublicArrearage/components/List.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								project/xiushan/apps/AppPublicArrearage/components/List.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| <template> | ||||
|   <section class="List"> | ||||
|     <ai-list> | ||||
|       <ai-title slot="title" title="公共事业欠费信息" isShowBottomBorder/> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #left> | ||||
|             <el-button type="primary" icon="iconfont iconAdd" @click="toAdd('')">添加</el-button> | ||||
|           </template> | ||||
|           <template #right> | ||||
|             <el-input size="small" placeholder="欠费主题/统一信用社会代码" v-model="search.executionCode" clearable @clear="page.current = 1, search.executionCode = '',getTableData()"  | ||||
|             suffix-icon="iconfont iconSearch" v-throttle="() => {(page.current = 1), getTableData();}"/> | ||||
|             <ai-import :instance="instance" :dict="dict" importUrl="/appcreditdishonestperson/import" url="/appcreditdishonestperson/downloadTemplate" name="失信被执行人信息" @success="getTableData(), $message.success('导入成功!')"> | ||||
|               <el-button size="small">导入</el-button> | ||||
|             </ai-import> | ||||
|             <ai-download :instance="instance" url="/appcreditdishonestperson/export" :params="search" fileName="公共事业欠费信息" | ||||
|                          :disabled="tableData.length == 0"> | ||||
|               <el-button size="small">导出</el-button> | ||||
|             </ai-download> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                   @getList="getTableData" :col-configs="colConfigs" :dict="dict"> | ||||
|           <el-table-column slot="options" label="操作"  align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <el-button type="text" @click="toAdd(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="handleDelete(row.id)">删除</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
|       </template> | ||||
|     </ai-list> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: "List", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {executionCode: ""}, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         { prop: "executionCode", label: '欠费主体', align: "center", width: "200px", }, | ||||
|         { prop: "executionTime", label: '统一信用代码', align: "center", width: "120px", }, | ||||
|         { prop: "enterpriseName", label: '欠费类型名称', align: "center", width: "120px", }, | ||||
|         { prop: "unifiedCode", label: '欠费金额(万元)', align: "center", width: "100px", }, | ||||
|         { prop: "dishonestFact", label: '失信严重程度', align: "center", width: "120px", }, | ||||
|         { prop: "createTime", label: '认定日期', align: "center", width: "100px", }, | ||||
|         { prop: "createTime", label: '更新时间', align: "center", width: "100px", }, | ||||
|         { prop: "createUserName", label: '操作人', align: "center", width: "100px", }, | ||||
|         { slot: "options" ,}, | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getTableData() | ||||
|   }, | ||||
|   methods: { | ||||
|     getTableData() { | ||||
|       this.instance.post("/appcreditdishonestperson/list", null, { | ||||
|         params: {...this.page, ...this.search,...this.select} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data?.records | ||||
|           this.page.total = res.data.total | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     toAdd(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'Add', | ||||
|         params: { | ||||
|           id: id || '' | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     handleDelete(id) { | ||||
|       this.$confirm("是否要删除?").then(() => { | ||||
|         this.instance.post(`/appcreditdishonestperson/delete?ids=${id}`).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success("删除成功") | ||||
|               this.getTableData() | ||||
|             } | ||||
|           }) | ||||
|       }) | ||||
|     }, | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
| .List { | ||||
|   height: 100%; | ||||
|   background: #f3f4f5; | ||||
| } | ||||
| </style> | ||||
| @@ -68,9 +68,11 @@ export default { | ||||
|       tableData: [] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getInfo() | ||||
|     this.getList() | ||||
|   mounted() { | ||||
|     this.$dict.load(['atWillReportType']).then(() => { | ||||
|       this.getInfo() | ||||
|       this.getList() | ||||
|     }); | ||||
|   }, | ||||
|   computed: { | ||||
|     colConfigs() { | ||||
| @@ -81,10 +83,12 @@ export default { | ||||
|           align: 'left' | ||||
|         }, | ||||
|         { | ||||
|           prop: 'doType', | ||||
|           prop: "bizType", | ||||
|           label: "类型", | ||||
|           width: 160, | ||||
|           align: 'center', | ||||
|           label: '类型', | ||||
|           dict:"integralDetailType", | ||||
|           formart: (bizType) => | ||||
|             this.dict.getLabel("integralDetailType", bizType), | ||||
|         }, | ||||
|         { | ||||
|           prop: 'changeIntegral', | ||||
| @@ -116,7 +120,7 @@ export default { | ||||
|     getList() { | ||||
|       let {id: portalUserId} = this.$route.query | ||||
|       this.instance.post(`/appvillagerintegraldetail/list`, null, { | ||||
|         params: {...this.page, portalUserId} | ||||
|         params: {...this.page, portalUserId, bizType: this.doType} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data.records | ||||
|   | ||||
| @@ -32,7 +32,8 @@ | ||||
|           <el-table-column label="操作" slot="options" fixed="right" align="center" width="180"> | ||||
|             <template v-slot="{row}"> | ||||
|               <div class="table-options"> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralfamily_detail')" title="详情" | ||||
|                 <!-- :disabled="!$permissions('app_appvillagerintegralfamily_detail')" --> | ||||
|                 <el-button type="text"  title="详情" | ||||
|                            @click="goDetail(row)">详情 | ||||
|                 </el-button> | ||||
|               </div> | ||||
|   | ||||
| @@ -8,56 +8,64 @@ | ||||
|         <ai-search-bar bottomBorder> | ||||
|           <template slot="left"> | ||||
|             <ai-select | ||||
|               v-model="search.classification" | ||||
|               @change="search.current = 1, getList()" | ||||
|               placeholder="请选择分类" | ||||
|               :selectList="dict.getDict('atWillReportType')"> | ||||
|                 v-model="search.classification" | ||||
|                 @change="search.current = 1, getList()" | ||||
|                 placeholder="请选择分类" | ||||
|                 :selectList="dict.getDict('atWillReportType')"> | ||||
|             </ai-select> | ||||
| <!--            <ai-select--> | ||||
| <!--                v-model="search.integralType"--> | ||||
| <!--                @change="search.current = 1, getList()"--> | ||||
| <!--                placeholder="请选择类型"--> | ||||
| <!--                :selectList="dict.getDict('integralIntegralType')">--> | ||||
| <!--            </ai-select>--> | ||||
|             <ai-select | ||||
|               v-model="search.integralType" | ||||
|               @change="search.current = 1, getList()" | ||||
|               placeholder="请选择类型" | ||||
|               :selectList="dict.getDict('integralIntegralType')"> | ||||
|             </ai-select> | ||||
|             <ai-select | ||||
|               v-model="search.ruleStatus" | ||||
|               @change="search.current = 1, getList()" | ||||
|               placeholder="请选择状态" | ||||
|               :selectList="dict.getDict('integralRuleStatus')"> | ||||
|                 v-model="search.ruleStatus" | ||||
|                 @change="search.current = 1, getList()" | ||||
|                 placeholder="请选择状态" | ||||
|                 :selectList="dict.getDict('integralRuleStatus')"> | ||||
|             </ai-select> | ||||
|           </template> | ||||
|           <template slot="right"> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
|         <ai-search-bar style="margin-top: 16px;"> | ||||
|           <template #left> | ||||
|             <el-button type="primary" icon="iconfont iconAdd" @click="addRule">添加</el-button> | ||||
|           </template> | ||||
|         </ai-search-bar> | ||||
| <!--        <ai-search-bar style="margin-top: 16px;">--> | ||||
| <!--          <template #left>--> | ||||
| <!--            <el-button type="primary" icon="iconfont iconAdd" @click="addRule">添加</el-button>--> | ||||
| <!--          </template>--> | ||||
| <!--        </ai-search-bar>--> | ||||
|         <ai-table | ||||
|           :tableData="tableData" | ||||
|           :col-configs="colConfigs" | ||||
|           :total="total" | ||||
|           ref="aitableex" | ||||
|           :current.sync="search.current" | ||||
|           :size.sync="search.size" | ||||
|           @getList="getList"> | ||||
|         <el-table-column slot="integral" label="分值" align="center"> | ||||
|           <template slot-scope="{ row }"> | ||||
|             :tableData="tableData" | ||||
|             :col-configs="colConfigs" | ||||
|             :total="total" | ||||
|             ref="aitableex" | ||||
|             :current.sync="search.current" | ||||
|             :size.sync="search.size" | ||||
|             @getList="getList"> | ||||
|           <el-table-column slot="integral" label="分值" align="center"> | ||||
|             <template slot-scope="{ row }"> | ||||
|             <span | ||||
|               v-if="row.integralValueType == 1"> | ||||
|               {{ row.integralStart > 0 ? '+' + row.integralStart : row.integralStart }} ~ {{ row.integralEnd > 0 ? '+' + row.integralEnd : row.integralEnd }} | ||||
|                 v-if="row.integralValueType == 1"> | ||||
|               {{ | ||||
|                 row.integralStart > 0 ? '+' + row.integralStart : row.integralStart | ||||
|               }} ~ {{ row.integralEnd > 0 ? '+' + row.integralEnd : row.integralEnd }} | ||||
|             </span> | ||||
|             <span v-else>{{ row.integral > 0 ? '+' : '' }}{{ row.integral }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|               <span v-else>{{ row.integral > 0 ? '+' : '' }}{{ row.integral }}</span> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column slot="options" label="操作" align="center" fixed="right" width="200"> | ||||
|             <template slot-scope="{ row }"> | ||||
|               <div class="table-options"> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="changeStatus(row.id, 0)" v-if="row.ruleStatus == 1">停用</el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="changeStatus(row.id, 1)" v-else >启用</el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" @click="toEdit(row)">编辑</el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_del')" @click="remove(row.id)">删除</el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" | ||||
|                            @click="changeStatus(row.id, 0)" v-if="row.ruleStatus == 1">停用 | ||||
|                 </el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" | ||||
|                            @click="changeStatus(row.id, 1)" v-else>启用 | ||||
|                 </el-button> | ||||
|                 <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_edit')" | ||||
|                            @click="toEdit(row)">编辑 | ||||
|                 </el-button> | ||||
|                 <!--                <el-button type="text" :disabled="!$permissions('app_appvillagerintegralrule_del')" @click="remove(row.id)">删除</el-button>--> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
| @@ -66,72 +74,54 @@ | ||||
|     </ai-list> | ||||
|  | ||||
|     <ai-dialog | ||||
|       :title="dialog.title" | ||||
|       :visible.sync="dialog.visible" | ||||
|       :customFooter="true" | ||||
|       :destroyOnClose="true" | ||||
|       @close="init('ruleForm')" | ||||
|       width="520px"> | ||||
|         :title="dialog.title" | ||||
|         :visible.sync="dialog.visible" | ||||
|         :customFooter="true" | ||||
|         :destroyOnClose="true" | ||||
|         @close="init('ruleForm')" | ||||
|         width="520px"> | ||||
|       <div class="form_div"> | ||||
|         <el-form | ||||
|           ref="ruleForm" | ||||
|           :model="dialogInfo" | ||||
|           :rules="formRules" | ||||
|           size="small" | ||||
|           label-suffix=":" | ||||
|           label-width="100px"> | ||||
|             ref="ruleForm" | ||||
|             :model="dialogInfo" | ||||
|             :rules="formRules" | ||||
|             size="small" | ||||
|             label-suffix=":" | ||||
|             label-width="120px"> | ||||
|           <el-form-item label="类别" prop="classification"> | ||||
|             <ai-select | ||||
|               size="small" | ||||
|               v-model="dialogInfo.classification" | ||||
|               placeholder="请选择..." | ||||
|               :selectList="dict.getDict('atWillReportType')"> | ||||
|             </ai-select> | ||||
|             <ai-select v-model="dialogInfo.classification" :selectList="dict.getDict('atWillReportType')" | ||||
|                        :disabled="!!dialogInfo.id"/> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="事项" prop="ruleName"> | ||||
|             <el-input placeholder="请输入…" v-model="dialogInfo.ruleName"></el-input> | ||||
|           <el-form-item label="获得积分" prop="integral"> | ||||
|             <el-input placeholder="请输入自然数" v-model.number="dialogInfo.integral" clearable/> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="规则说明" prop="ruleDescription"> | ||||
|             <el-input | ||||
|               type="textarea" | ||||
|               :rows="3" | ||||
|               maxlength="500" | ||||
|               show-word-limit | ||||
|               placeholder="请输入…" | ||||
|               v-model="dialogInfo.ruleDescription"> | ||||
|             </el-input> | ||||
|           </el-form-item> | ||||
|           <el-form-item label="类型" prop="integralType"> | ||||
|             <el-radio-group v-model="dialogInfo.integralType"> | ||||
|               <el-radio label="1">加分</el-radio> | ||||
|               <el-radio label="0">扣分</el-radio> | ||||
|             </el-radio-group> | ||||
|           </el-form-item> | ||||
|           <!-- <el-form-item label="分值" prop="integralValueType"> | ||||
|             <el-radio-group v-model="dialogInfo.integralValueType" @change="numTypeChange"> | ||||
|               <el-radio label="0">固定分值</el-radio> | ||||
|               <el-radio label="1">区间分值</el-radio> | ||||
|             </el-radio-group> | ||||
|           </el-form-item> --> | ||||
|           <!-- <el-form-item label="积分" required v-if="dialogInfo.integralValueType == '1'"> | ||||
|             <el-col :span="7" style="width: 30%;"> | ||||
|               <el-form-item prop="integralStart"> | ||||
|                 <el-input placeholder="请输入整数" v-model="dialogInfo.integralStart"></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col class="line" :span="1" style="width: 4%;text-align:center;">-</el-col> | ||||
|             <el-col :span="7" style="width: 30%;"> | ||||
|               <el-form-item prop="integralEnd"> | ||||
|                 <el-input placeholder="请输入整数" v-model="dialogInfo.integralEnd"></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col class="line" :span="9" style="width: 36%;"></el-col> | ||||
|           </el-form-item> --> | ||||
|           <el-form-item label="积分" required v-if="dialogInfo.integralValueType == '0'"> | ||||
|             <el-form-item prop="integral"> | ||||
|               <el-input placeholder="请输入自然数" v-model="dialogInfo.integral"></el-input> | ||||
|             </el-form-item> | ||||
|           <el-form-item label="每天获取次数" prop="upperLimit"> | ||||
|             <el-input placeholder="请输入自然数" v-model.number="dialogInfo.upperLimit" clearable/> | ||||
|           </el-form-item> | ||||
|           <!--          <el-form-item label="事项" prop="ruleName">--> | ||||
|           <!--            <el-input placeholder="请输入…" v-model="dialogInfo.ruleName"></el-input>--> | ||||
|           <!--          </el-form-item>--> | ||||
|           <!--          <el-form-item label="规则说明" prop="ruleDescription">--> | ||||
|           <!--            <el-input--> | ||||
|           <!--              type="textarea"--> | ||||
|           <!--              :rows="3"--> | ||||
|           <!--              maxlength="500"--> | ||||
|           <!--              show-word-limit--> | ||||
|           <!--              placeholder="请输入…"--> | ||||
|           <!--              v-model="dialogInfo.ruleDescription">--> | ||||
|           <!--            </el-input>--> | ||||
|           <!--          </el-form-item>--> | ||||
|           <!--          <el-form-item label="类型" prop="integralType">--> | ||||
|           <!--            <el-radio-group v-model="dialogInfo.integralType">--> | ||||
|           <!--              <el-radio label="1">加分</el-radio>--> | ||||
|           <!--              <el-radio label="0">扣分</el-radio>--> | ||||
|           <!--            </el-radio-group>--> | ||||
|           <!--          </el-form-item>--> | ||||
|           <!--          <el-form-item label="积分" required v-if="dialogInfo.integralValueType == '0'">--> | ||||
|           <!--            <el-form-item prop="integral">--> | ||||
|           <!--              <el-input placeholder="请输入自然数" v-model="dialogInfo.integral"></el-input>--> | ||||
|           <!--            </el-form-item>--> | ||||
|           <!--          </el-form-item>--> | ||||
|         </el-form> | ||||
|       </div> | ||||
|       <div class="dialog-footer" slot="footer"> | ||||
| @@ -152,7 +142,7 @@ export default { | ||||
|   }, | ||||
|  | ||||
|   data() { | ||||
|     var integralPass = (rule, value, callback) => { | ||||
|     let integralPass = (rule, value, callback) => { | ||||
|       if (value) { | ||||
|         if ((/(^[0-9]\d*$)/.test(value))) { | ||||
|           callback(); | ||||
| @@ -163,7 +153,7 @@ export default { | ||||
|         callback(new Error("请输入积分")); | ||||
|       } | ||||
|     }; | ||||
|     var integralStartPass = (rule, value, callback) => { | ||||
|     const integralStartPass = (rule, value, callback) => { | ||||
|       if (value) { | ||||
|         if ((/(^[1-9]\d*$)/.test(value))) { | ||||
|           callback(); | ||||
| @@ -174,7 +164,7 @@ export default { | ||||
|         callback(new Error("请输入积分")); | ||||
|       } | ||||
|     }; | ||||
|     var integralEndPass = (rule, value, callback) => { | ||||
|     const integralEndPass = (rule, value, callback) => { | ||||
|       if (value) { | ||||
|         if ((/(^[1-9]\d*$)/.test(value))) { | ||||
|           if (Number(value) < Number(this.dialogInfo.integralStart)) { | ||||
| @@ -204,18 +194,9 @@ export default { | ||||
|           formart: (classification) => | ||||
|               this.dict.getLabel("atWillReportType", classification), | ||||
|         }, | ||||
|         {prop: "ruleName", label: "事项", "show-overflow-tooltip": true, width: 260}, | ||||
|         {prop: "ruleDescription", label: "规则说明", width: 390}, | ||||
|         { | ||||
|           prop: "integralType", | ||||
|           label: "类型", | ||||
|           width: 60, | ||||
|           formart: (integralType) => | ||||
|               this.dict.getLabel("integralIntegralType", integralType), | ||||
|         }, | ||||
|         {prop: "upperLimit", label: "每天获取次数",align: 'center'}, | ||||
|         {slot: "integral", label: "分值", width: 70}, | ||||
|         {prop: "doTime", label: "最后编辑时间", width: 160}, | ||||
|         {prop: "doUserName", label: "操作人", width: 120}, | ||||
|         { | ||||
|           prop: "ruleStatus", | ||||
|           label: "状态", | ||||
| @@ -232,10 +213,11 @@ export default { | ||||
|             ); | ||||
|           }, | ||||
|         }, | ||||
|         {prop: "doTime", label: "最后编辑时间", width: 160}, | ||||
|         {prop: "doUserName", label: "操作人", width: 120}, | ||||
|         {slot: "options", label: "操作", align: "center"}, | ||||
|       ], | ||||
|       tableData: [], | ||||
|  | ||||
|       dialog: { | ||||
|         title: "", | ||||
|         visible: false, | ||||
| @@ -271,6 +253,9 @@ export default { | ||||
|         integral: [ | ||||
|           {required: true, validator: integralPass, trigger: "change"}, | ||||
|         ], | ||||
|         upperLimit: [ | ||||
|           {required: true, message: "请输入每天获取次数"}, | ||||
|         ], | ||||
|         integralStart: [ | ||||
|           {required: true, validator: integralStartPass, trigger: "change"}, | ||||
|         ], | ||||
| @@ -302,7 +287,6 @@ export default { | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|  | ||||
|     toEdit(row) { | ||||
|       this.dialog.title = "编辑积分规则"; | ||||
|       this.dialog.visible = true; | ||||
| @@ -311,24 +295,20 @@ export default { | ||||
|       this.dialogInfo.integralEnd = Math.abs(this.dialogInfo.integralEnd) | ||||
|       this.dialogInfo.integral = Math.abs(this.dialogInfo.integral) | ||||
|     }, | ||||
|  | ||||
|     remove(id) { | ||||
|       this.$confirm("删除后不可恢复,是否要删除该事项?", { | ||||
|         type: 'error' | ||||
|       }).then(() => { | ||||
|         this.instance | ||||
|         .post(`/app/appvillagerintegralrule/delete?ids=${id}`) | ||||
|         .then((res) => { | ||||
|           if (res.code == 0) { | ||||
|         this.instance.post(`/app/appvillagerintegralrule/delete?ids=${id}`).then(res => { | ||||
|           if (res?.code == 0) { | ||||
|             this.$message.success("删除成功!"); | ||||
|             this.getList(); | ||||
|           } | ||||
|         }); | ||||
|       }); | ||||
|     }, | ||||
|  | ||||
|     changeStatus(id, status) { | ||||
|       var text = status == 1 ? '启用' : '停用' | ||||
|       const text = status == 1 ? '启用' : '停用'; | ||||
|       this.$confirm(`确定${text}该条规则?`).then(() => { | ||||
|         this.instance | ||||
|         .post(`/app/appvillagerintegralrule/enableOrDisable?id=${id}`) | ||||
|   | ||||
| @@ -39,6 +39,12 @@ | ||||
|                   </el-checkbox> | ||||
|                 </el-checkbox-group> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="客户经理姓名" prop="bankCounterpart"> | ||||
|                 <el-input type="text" v-model="form.bankCounterpart" placeholder="客户经理姓名" clearable maxlength="6"/> | ||||
|               </el-form-item> | ||||
|               <el-form-item label="客户经理电话" prop="consultationTelephone"> | ||||
|                 <el-input type="text" v-model="form.consultationTelephone" placeholder="客户经理电话" clearable  maxlength="11"/> | ||||
|               </el-form-item> | ||||
|             </template> | ||||
|           </ai-card> | ||||
|           <ai-card title="适用范围"> | ||||
| @@ -117,6 +123,8 @@ export default { | ||||
|         applyCondition: [{required: true, message: "请输入申请条件", trigger: 'blur'}], | ||||
|         needMaterial: [{required: true, message: "请输入所需材料", trigger: 'blur'}], | ||||
|         productFeatures: [{required: true, message: "请输入产品特色", trigger: 'blur'}], | ||||
|         bankCounterpart: [{required: true, message: "请输入客户经理姓名", trigger: 'change'}], | ||||
|         consultationTelephone: [ {required: true, message: "请输入客户经理电话", trigger: 'change'}], | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -27,6 +27,8 @@ | ||||
|                 </el-form-item> | ||||
|               </el-row> | ||||
|               <el-form-item label="担保方式">{{ detail.guaranteeModeLabel }}</el-form-item> | ||||
|               <el-form-item label="客户经理姓名">{{ detail.bankCounterpart }}</el-form-item> | ||||
|               <el-form-item label="客户经理电话">{{ detail.consultationTelephone }}</el-form-item> | ||||
|             </template> | ||||
|           </ai-card> | ||||
|           <ai-card title="适用范围"> | ||||
|   | ||||
| @@ -24,7 +24,7 @@ export default { | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.dict.load("productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus") | ||||
|     this.dict.load("productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus","financialOrganizationType") | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
|                   <el-row type="flex"> | ||||
|                     {{ detail.enterpriseName }} | ||||
|                     <el-link type="primary" | ||||
|                              @click="$router.push({name:'973f0339e5904d99bc8afe86b8cf4e9c',query:{id:detail.enterpriseId}})"> | ||||
|                              @click="isShow=true"> | ||||
|                       企业详情 | ||||
|                     </el-link> | ||||
|                   </el-row> | ||||
| @@ -90,6 +90,81 @@ | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|     </ai-dialog> | ||||
|     <ai-dialog | ||||
|       class="dialog" | ||||
|       :title="info.enterpriseName" | ||||
|       :visible.sync="isShow" | ||||
|       @close="isShow = false" | ||||
|       @onConfirm="isShow = false" | ||||
|       width="1200px"> | ||||
|       <div class="top"> | ||||
|         <div class="top-left">{{ info.subEnterpriseName }}</div> | ||||
|         <div class="top-right"> | ||||
|           <div class="top-right__top"> | ||||
|             <h2>{{ info.enterpriseName }}</h2> | ||||
|             <!-- <div class="right"> | ||||
|               <span>下载报告</span> | ||||
|             </div> --> | ||||
|           </div> | ||||
|           <div class="top-right__bottom"> | ||||
|             <ai-wrapper | ||||
|               label-width="130px"> | ||||
|               <ai-info-item label="法人姓名:"><span style="color: #1890FF;">{{ info.legalPersonName }}</span></ai-info-item> | ||||
|               <ai-info-item label="企业类型:" :value="$dict.getLabel('enterpriseType', info.enterpriseType)"></ai-info-item> | ||||
|               <ai-info-item label="统一社会信用代码:" :value="info.unifiedCode"></ai-info-item> | ||||
|               <ai-info-item label="地址:" isLine :value="info.areaName + info.address"></ai-info-item> | ||||
|               <ai-info-item label="经营范围:" isLine :value="info.businessScope"></ai-info-item> | ||||
|             </ai-wrapper> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="bottom"> | ||||
|         <div class="tab"> | ||||
|           <span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">行政许可</span> | ||||
|           <span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">行政处罚</span> | ||||
|           <span :class="[currIndex === 2 ? 'active' : '']" @click="currIndex = 2">良好信息</span> | ||||
|           <span :class="[currIndex === 3 ? 'active' : '']" @click="currIndex = 3">失信信息</span> | ||||
|         </div> | ||||
|         <div class="table"> | ||||
|           <ai-table | ||||
|             v-show="currIndex === 0" | ||||
|             :tableData="info.adminstrativeLicenseList" | ||||
|             :col-configs="colConfigs1" | ||||
|             :isShowPagination="false" | ||||
|             border | ||||
|             tableSize="small" | ||||
|             @getList="() => {}"> | ||||
|           </ai-table> | ||||
|           <ai-table | ||||
|             v-show="currIndex === 1" | ||||
|             :tableData="info.administrativeSanctionList" | ||||
|             :col-configs="colConfigs2" | ||||
|             :isShowPagination="false" | ||||
|             border | ||||
|             tableSize="small" | ||||
|             @getList="() => {}"> | ||||
|           </ai-table> | ||||
|           <ai-table | ||||
|             v-show="currIndex === 2" | ||||
|             :tableData="info.taxInfoList" | ||||
|             :col-configs="colConfigs3" | ||||
|             :isShowPagination="false" | ||||
|             border | ||||
|             tableSize="small" | ||||
|             @getList="() => {}"> | ||||
|           </ai-table> | ||||
|           <ai-table | ||||
|             v-show="currIndex === 3" | ||||
|             :tableData="info.dishonestPersonList" | ||||
|             :col-configs="colConfigs4" | ||||
|             :isShowPagination="false" | ||||
|             border | ||||
|             tableSize="small" | ||||
|             @getList="() => {}"> | ||||
|           </ai-table> | ||||
|         </div> | ||||
|       </div> | ||||
|     </ai-dialog> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| @@ -126,7 +201,43 @@ export default { | ||||
|         auditLifespan: [{required: true, message: "请选择 使用期限"}], | ||||
|         loanDate: [{required: true, message: "请选择 放款日期"}], | ||||
|         auditDescription: [{required: true, message: "请输入 审批意见"}], | ||||
|       } | ||||
|       }, | ||||
|       info: {}, | ||||
|       currIndex: 0, | ||||
|       isShow: false, | ||||
|       colConfigs1: [ | ||||
|         { prop: 'licenseCode', label: '行政许可决定文书号' }, | ||||
|         { prop: 'decisionDate', align: 'center', label: '许可决定日期' }, | ||||
|         { prop: 'endDate', align: 'center', label: '许可有效期至' }, | ||||
|         { prop: 'licenseOrganization', align: 'center', label: '许可机关' },  | ||||
|         { prop: 'licenseContent', align: 'center', label: '许可内容' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs2: [ | ||||
|         { prop: 'sanctionCode', width: '190', label: '行政处罚决定文书号' }, | ||||
|         { prop: 'sanctionDate', align: 'center', label: '处罚决定日期' }, | ||||
|         { prop: 'sanctionType', align: 'center', label: '处罚类型', formart: v => this.$dict.getLabel('administrativeSanctionType', v)  }, | ||||
|         { prop: 'sanctionContent', align: 'center', label: '处罚内容' },  | ||||
|         { prop: 'sanctionBasis', align: 'center', label: '处罚依据' },  | ||||
|         { prop: 'sanctionOrganization', align: 'center', label: '处罚机关' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs3: [ | ||||
|         { prop: 'taxpayer', label: '纳税人名称' }, | ||||
|         { prop: 'taxpayerNumber', align: 'center', label: '纳税人识别号' }, | ||||
|         { prop: 'taxLevel', align: 'center', label: '纳税人等级' }, | ||||
|         { prop: 'taxYear', align: 'center', label: '年份' },  | ||||
|         { prop: 'evaluationUnit', align: 'center', label: '评价单位' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs4: [ | ||||
|         { prop: 'executionCode', label: '执行案号' }, | ||||
|         { prop: 'executionTime', align: 'center', label: '执行时间' }, | ||||
|         { prop: 'dishonestFact', align: 'center', label: '失信事实' }, | ||||
|         { prop: 'executionSituation', align: 'center', label: '履行情况',  formart: v => this.$dict.getLabel('dishonestPersonSituation', v) }, | ||||
|         { prop: 'executionCourt', align: 'center', label: '执行法院' },  | ||||
|         { prop: 'executionTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
| @@ -137,6 +248,19 @@ export default { | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.detail = res.data | ||||
|           if(this.detail.enterpriseId) { | ||||
|             this.getCompanyInfo() | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     getCompanyInfo() { | ||||
|       this.instance.post(`/appportaluserenterprise/queryCreditEnterpriseDetailById?id=${this.detail.enterpriseId}`, null, { | ||||
|         withoutToken: true | ||||
|       }).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.info = res.data | ||||
|           this.info.subEnterpriseName = res.data.enterpriseName.substr(0, 4) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| @@ -158,7 +282,7 @@ export default { | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.dict.load("auditStatus") | ||||
|     this.dict.load("auditStatus", "productRepaymentTimeline", "financialFundPurpose", "enterpriseAuditStatus", "financialLoanApplyStatus","financialOrganizationType") | ||||
|     this.getDetail() | ||||
|   } | ||||
| } | ||||
| @@ -183,5 +307,115 @@ export default { | ||||
|   .el-date-editor { | ||||
|     width: 100%; | ||||
|   } | ||||
|  | ||||
|   .dialog { | ||||
|     .top { | ||||
|       display: flex; | ||||
|       margin-bottom: 20px; | ||||
|       padding: 34px 30px 16px;  | ||||
|       border: 1px solid #EEEEEE; | ||||
|       border-radius: 4px; | ||||
|  | ||||
|       .top-left { | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         justify-content: center; | ||||
|         flex-shrink: 1; | ||||
|         width: 88px; | ||||
|         height: 87px; | ||||
|         line-height: 1.3; | ||||
|         margin-right: 31px; | ||||
|         padding: 0 16px; | ||||
|         text-align: justify; | ||||
|         background: #8CA3CD; | ||||
|         color: #FFFFFF; | ||||
|         font-size: 22px; | ||||
|         letter-spacing: 6px; | ||||
|         border-radius: 8px; | ||||
|       } | ||||
|  | ||||
|       .top-right { | ||||
|         flex: 1; | ||||
|  | ||||
|         .top-right__top { | ||||
|           display: flex; | ||||
|           align-items: center; | ||||
|           justify-content: space-between; | ||||
|           margin-bottom: 27px; | ||||
|  | ||||
|           h2 { | ||||
|             color: #333333; | ||||
|             font-size: 22px; | ||||
|           } | ||||
|  | ||||
|           .right { | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             width: 97px; | ||||
|             height: 32px; | ||||
|             background: #E8F4FF; | ||||
|             border: 1px solid #A3D3FF; | ||||
|             border-radius: 3px; | ||||
|             color: #1890FF; | ||||
|             font-size: 13px; | ||||
|             cursor: pointer; | ||||
|  | ||||
|             &:hover { | ||||
|               opacity: 0.6; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         .top-right__bottom { | ||||
|           padding: 16px 10px 10px 0; | ||||
|           background: #F6FBFF; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .bottom { | ||||
|       padding-bottom: 20px; | ||||
|       border: 1px solid #DCDFE6; | ||||
|       border-radius: 4px; | ||||
|  | ||||
|       .tab { | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         height: 60px; | ||||
|         margin-bottom: 15px; | ||||
|         background: #FAFAFA; | ||||
|         border-radius: 4px; | ||||
|  | ||||
|         span { | ||||
|           flex: 1; | ||||
|           height: 100%; | ||||
|           line-height: 60px; | ||||
|           text-align: center; | ||||
|           color: #555555; | ||||
|           font-size: 16px; | ||||
|           cursor: pointer; | ||||
|           border-bottom: 1px solid #DCDFE6; | ||||
|           border-right: 1px solid #DCDFE6; | ||||
|           transition: all ease 0.3s; | ||||
|           user-select: none; | ||||
|  | ||||
|           &:last-child { | ||||
|             border-right: none; | ||||
|           } | ||||
|  | ||||
|           &.active { | ||||
|             border-bottom: 1px solid transparent; | ||||
|             background: #fff; | ||||
|             color: #1890FF; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .table { | ||||
|         padding: 0 16px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -1,44 +1,46 @@ | ||||
| <template> | ||||
|   <section class="loanList"> | ||||
|     <ai-detail> | ||||
|       <ai-title slot="title" title="贷款审核" isShowBottomBorder/> | ||||
|       <template #content> | ||||
|         <el-row type="flex"> | ||||
|           <div class="staCard fill" v-for="(op,label) in sta" :key="label"> | ||||
|             <h2 v-text="op"/> | ||||
|             <span v-text="label"/> | ||||
|           </div> | ||||
|         </el-row> | ||||
|         <ai-card hideTitle> | ||||
|           <template #content> | ||||
|             <ai-search-bar class="mar-t8"> | ||||
|               <template #left> | ||||
|                 <ai-select v-model="search.status" :selectList="dict.getDict('financialLoanApplyStatus')" | ||||
|                            placeholder="审批状态" | ||||
|                            @change="page.current=1,getTableData()"/> | ||||
|                 <ai-search label="申请时间"> | ||||
|                   <el-date-picker size="small" v-model="search.applyTime" type="daterange" | ||||
|                                   @change="handleFilterApplyTime" | ||||
|                                   :default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd HH:mm:ss"/> | ||||
|                 </ai-search> | ||||
|     <ai-list tabs> | ||||
|       <ai-title slot="title" title="贷款审核"/> | ||||
|       <template #tabs> | ||||
|         <el-tabs> | ||||
|           <el-tab-pane label="信贷审核"> | ||||
|             <ai-card hideTitle class="mar-t16"> | ||||
|               <template #content> | ||||
|                 <ai-search-bar class="mar-t8"> | ||||
|                   <template #left> | ||||
|                     <ai-select placeholder="机构类型" :selectList="dict.getDict('financialOrganizationType')" | ||||
|                                v-model="search.organizationType" @change="page.current=1,getTableData()"/> | ||||
|                     <ai-select placeholder="审批状态" :selectList="dict.getDict('financialLoanApplyStatus')" | ||||
|                                v-model="search.status" @change="page.current=1,getTableData()"/> | ||||
|                     <ai-search label="申请时间"> | ||||
|                       <el-date-picker size="small" v-model="search.applyTime" type="daterange" | ||||
|                                       @change="handleFilterApplyTime" start-placeholder="开始时间" end-placeholder="结束时间" | ||||
|                                       :default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd HH:mm:ss"/> | ||||
|                     </ai-search> | ||||
|                   </template> | ||||
|                   <template #right> | ||||
|                     <el-input size="small" placeholder="搜索产品名称、身份证、企业、贷款机构" v-model="search.enterpriseName" clearable | ||||
|                               @change="page.current=1,getTableData()"/> | ||||
|                   </template> | ||||
|                 </ai-search-bar> | ||||
|                 <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                           @getList="getTableData" :col-configs="colConfigs" :dict="dict"> | ||||
|                   <el-table-column slot="options" label="操作" fixed="right" align="center"> | ||||
|                     <template slot-scope="{row}"> | ||||
|                       <el-button type="text" @click="showDetail(row.id)">详情</el-button> | ||||
|                     </template> | ||||
|                   </el-table-column> | ||||
|                 </ai-table> | ||||
|               </template> | ||||
|               <template #right> | ||||
|                 <el-input size="small" placeholder="搜索产品名称、企业主体、贷款银行" v-model="search.enterpriseName" clearable | ||||
|                           @change="page.current=1,getTableData()"/> | ||||
|               </template> | ||||
|             </ai-search-bar> | ||||
|             <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                       @getList="getTableData" :col-configs="colConfigs" :dict="dict"> | ||||
|               <el-table-column slot="options" label="操作" fixed="right" align="center"> | ||||
|                 <template slot-scope="{row}"> | ||||
|                   <el-button type="text" @click="showDetail(row.id)">详情</el-button> | ||||
|                 </template> | ||||
|               </el-table-column> | ||||
|             </ai-table> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|             </ai-card> | ||||
|           </el-tab-pane> | ||||
|           <el-tab-pane label="信贷统计" lazy> | ||||
|  | ||||
|           </el-tab-pane> | ||||
|         </el-tabs> | ||||
|       </template> | ||||
|     </ai-detail> | ||||
|     </ai-list> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| @@ -53,25 +55,28 @@ export default { | ||||
|     permissions: Function | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']) | ||||
|     ...mapState(['user']), | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|         {label: "产品名称", prop: "productName"}, | ||||
|         {label: "联系人", prop: "name"}, | ||||
|         {label: "联系方式", prop: "phone"}, | ||||
|         {label: "身份证号", render: (h, {row}) => h('p', this.idCardNoUtil.hideId(row.idNumber)), width: 160}, | ||||
|         {label: "企业主体", prop: "enterpriseName"}, | ||||
|         {label: "贷款金额(万)", prop: "loanAmount"}, | ||||
|         {label: "申请时间", prop: "createTime",width: 160}, | ||||
|         {label: "贷款机构", prop: "organizationName"}, | ||||
|         {label: "机构类型", prop: "organizationType", dict: "financialOrganizationType"}, | ||||
|         {label: "状态", prop: "status", align: "center", dict: "financialLoanApplyStatus"}, | ||||
|         {slot: "options"} | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {name: ""}, | ||||
|       page: {current: 1, size: 10, total: 0}, | ||||
|       tableData: [], | ||||
|       colConfigs: [ | ||||
|         {label: "产品名称", prop: "productName"}, | ||||
|         {label: "企业主体", prop: "enterpriseName"}, | ||||
|         {label: "贷款金额(万)", prop: "loanAmount"}, | ||||
|         {label: "申请时间", prop: "createTime"}, | ||||
|         {label: "联系人", prop: "name"}, | ||||
|         {label: "联系方式", prop: "phone"}, | ||||
|         {label: "贷款银行", prop: "organizationName"}, | ||||
|         {label: "状态", prop: "status", align: "center", dict: "financialLoanApplyStatus"}, | ||||
|         {slot: "options"} | ||||
|       ], | ||||
|       sta: {} | ||||
|       tableData: [] | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
| @@ -94,17 +99,9 @@ export default { | ||||
|       this.search.applyEndDate = this.search.applyTime?.[1].substring(0, 10) | ||||
|       this.getTableData() | ||||
|     }, | ||||
|     getStaData() { | ||||
|       this.instance.post("/appfinancialloanapply/staticFinancialLoanApply").then(res => { | ||||
|         if (res?.data) { | ||||
|           this.sta = res.data | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getTableData() | ||||
|     this.getStaData() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @@ -117,14 +114,22 @@ export default { | ||||
|     margin-top: 8px; | ||||
|   } | ||||
|  | ||||
|   .mar-t16 { | ||||
|     margin-top: 16px; | ||||
|   } | ||||
|  | ||||
|   .staCard { | ||||
|     text-align: center; | ||||
|     margin: 0 8px 16px; | ||||
|     margin: 0 16px 16px 0; | ||||
|     box-shadow: 0 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|     border-radius: 4px; | ||||
|     padding: 16px; | ||||
|     box-sizing: border-box; | ||||
|     background: #fff; | ||||
|  | ||||
|     &:last-of-type { | ||||
|       margin-right: 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -1,6 +1,20 @@ | ||||
| <template> | ||||
|   <section class="AppFinancingNeeds"> | ||||
|     <component :is="currentComponent" :instance="instance" :dict="dict" :permissions="permissions"/> | ||||
|     <ai-list v-if="showList"> | ||||
|       <template slot="title"> | ||||
|         <ai-title slot="title" title="融资需求" :isShowBottomBorder="false" :isShowArea="currIndex == 1 && showList" v-model="areaId" :instance="instance" @change="changeArea"/> | ||||
|       </template> | ||||
|       <template slot="tabs"> | ||||
|         <el-tabs class="tabs-page" v-model="currIndex"> | ||||
|           <el-tab-pane v-for="(tab,i) in tabs" :key="i" :label="tab.label" :name="String(i)"> | ||||
|             <component :is="tab.comp" v-if="currIndex==i" :ref="currIndex" :instance="instance" :dict="dict" | ||||
|                        :permissions="permissions" :listType="tab.value" @goPage="goPage"/> | ||||
|           </el-tab-pane> | ||||
|         </el-tabs> | ||||
|       </template> | ||||
|     </ai-list> | ||||
|     <component v-if="!showList" :is="currentPage" :instance="instance" :dict="dict" | ||||
|                :permissions="permissions" :row="detail" @goBack="goBack"></component> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| @@ -8,6 +22,7 @@ | ||||
|  | ||||
| import NeedsDetail from "./needsDetail"; | ||||
| import NeedsList from "./needsList"; | ||||
| import NeedsStatistics from "./needsStatistics"; | ||||
|  | ||||
| export default { | ||||
|   name: "AppFinancingNeeds", | ||||
| @@ -18,13 +33,55 @@ export default { | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|   }, | ||||
|   provide() { | ||||
|     return { | ||||
|       need: this | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       currIndex: '0', | ||||
|       showList: true, | ||||
|       currentPage: "", | ||||
|       detail: {}, | ||||
|       areaId: '' | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     currentComponent() { | ||||
|       return !!this.$route.query.id ? NeedsDetail : NeedsList | ||||
|     tabs() { | ||||
|       return [ | ||||
|         { | ||||
|           label: "融资需求", name: "NeedsList", value: "0", comp: NeedsList, detail: NeedsDetail, | ||||
|           permission: "" | ||||
|         }, | ||||
|         { | ||||
|           label: "融资统计", name: "NeedsStatistics", value: "1", comp: NeedsStatistics, | ||||
|           permission: "" | ||||
|         } | ||||
|       ] | ||||
|     }, | ||||
|     currentTab() { | ||||
|       return this.tabs[this.currIndex] || {} | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType") | ||||
|     this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType", "enterpriseType", "dishonestPersonSituation", "administrativeSanctionType") | ||||
|   }, | ||||
|   methods: { | ||||
|     goPage(obj) { | ||||
|       this.currentPage = this.tabs[Number(this.currIndex)][obj.key]; | ||||
|       obj.row && (this.detail = obj.row) | ||||
|       this.showList = false; | ||||
|     }, | ||||
|     goBack() { | ||||
|       this.showList = true; | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs[this.currIndex][0].getTableData(); | ||||
|       }) | ||||
|     }, | ||||
|     changeArea() { | ||||
|       this.$refs[this.currIndex][0].getTableData(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| <template> | ||||
|   <section class="needsDetail"> | ||||
|     <ai-detail> | ||||
|       <ai-title slot="title" title="融资详情" isShowBottomBorder isShowBack @onBackClick="back"> | ||||
|       <ai-title slot="title" title="融资详情" isShowBottomBorder isShowBack @onBackClick="back()"> | ||||
|         <template #rightBtn> | ||||
|           <el-button v-if="isFinanceUser" type="primary" @click="handleGrab">抢单</el-button> | ||||
|           <el-button v-else type="danger" @click="handleCancel">取消发布</el-button> | ||||
| @@ -27,7 +27,7 @@ | ||||
|                   <el-row type="flex"> | ||||
|                     {{ detail.enterpriseName }} | ||||
|                     <el-link type="primary" | ||||
|                              @click="$router.push({name:'973f0339e5904d99bc8afe86b8cf4e9c',query:{id:detail.enterpriseId}})"> | ||||
|                              @click="isShow=true"> | ||||
|                       企业详情 | ||||
|                     </el-link> | ||||
|                   </el-row> | ||||
| @@ -43,7 +43,83 @@ | ||||
|             </template> | ||||
|           </ai-card> | ||||
|         </el-form> | ||||
|         <ai-dialog | ||||
|           class="dialog" | ||||
|           :title="info.enterpriseName" | ||||
|           :visible.sync="isShow" | ||||
|           @close="isShow = false" | ||||
|           @onConfirm="isShow = false" | ||||
|           width="1200px"> | ||||
|           <div class="top"> | ||||
|             <div class="top-left">{{ info.subEnterpriseName }}</div> | ||||
|             <div class="top-right"> | ||||
|               <div class="top-right__top"> | ||||
|                 <h2>{{ info.enterpriseName }}</h2> | ||||
|                 <!-- <div class="right"> | ||||
|                   <span>下载报告</span> | ||||
|                 </div> --> | ||||
|               </div> | ||||
|               <div class="top-right__bottom"> | ||||
|                 <ai-wrapper | ||||
|                   label-width="130px"> | ||||
|                   <ai-info-item label="法人姓名:"><span style="color: #1890FF;">{{ info.legalPersonName }}</span></ai-info-item> | ||||
|                   <ai-info-item label="企业类型:" :value="$dict.getLabel('enterpriseType', info.enterpriseType)"></ai-info-item> | ||||
|                   <ai-info-item label="统一社会信用代码:" :value="info.unifiedCode"></ai-info-item> | ||||
|                   <ai-info-item label="地址:" isLine :value="info.areaName + info.address"></ai-info-item> | ||||
|                   <ai-info-item label="经营范围:" isLine :value="info.businessScope"></ai-info-item> | ||||
|                 </ai-wrapper> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|           <div class="bottom"> | ||||
|             <div class="tab"> | ||||
|               <span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">行政许可</span> | ||||
|               <span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">行政处罚</span> | ||||
|               <span :class="[currIndex === 2 ? 'active' : '']" @click="currIndex = 2">良好信息</span> | ||||
|               <span :class="[currIndex === 3 ? 'active' : '']" @click="currIndex = 3">失信信息</span> | ||||
|             </div> | ||||
|             <div class="table"> | ||||
|               <ai-table | ||||
|                 v-show="currIndex === 0" | ||||
|                 :tableData="info.adminstrativeLicenseList" | ||||
|                 :col-configs="colConfigs1" | ||||
|                 :isShowPagination="false" | ||||
|                 border | ||||
|                 tableSize="small" | ||||
|                 @getList="() => {}"> | ||||
|               </ai-table> | ||||
|               <ai-table | ||||
|                 v-show="currIndex === 1" | ||||
|                 :tableData="info.administrativeSanctionList" | ||||
|                 :col-configs="colConfigs2" | ||||
|                 :isShowPagination="false" | ||||
|                 border | ||||
|                 tableSize="small" | ||||
|                 @getList="() => {}"> | ||||
|               </ai-table> | ||||
|               <ai-table | ||||
|                 v-show="currIndex === 2" | ||||
|                 :tableData="info.taxInfoList" | ||||
|                 :col-configs="colConfigs3" | ||||
|                 :isShowPagination="false" | ||||
|                 border | ||||
|                 tableSize="small" | ||||
|                 @getList="() => {}"> | ||||
|               </ai-table> | ||||
|               <ai-table | ||||
|                 v-show="currIndex === 3" | ||||
|                 :tableData="info.dishonestPersonList" | ||||
|                 :col-configs="colConfigs4" | ||||
|                 :isShowPagination="false" | ||||
|                 border | ||||
|                 tableSize="small" | ||||
|                 @getList="() => {}"> | ||||
|               </ai-table> | ||||
|             </div> | ||||
|           </div> | ||||
|         </ai-dialog> | ||||
|       </template> | ||||
|        | ||||
|     </ai-detail> | ||||
|   </section> | ||||
| </template> | ||||
| @@ -56,7 +132,8 @@ export default { | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|     permissions: Function, | ||||
|     row: Object, | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']), | ||||
| @@ -67,16 +144,65 @@ export default { | ||||
|   data() { | ||||
|     return { | ||||
|       detail: {}, | ||||
|       info: {}, | ||||
|       currIndex: 0, | ||||
|       isShow: false, | ||||
|       colConfigs1: [ | ||||
|         { prop: 'licenseCode', label: '行政许可决定文书号' }, | ||||
|         { prop: 'decisionDate', align: 'center', label: '许可决定日期' }, | ||||
|         { prop: 'endDate', align: 'center', label: '许可有效期至' }, | ||||
|         { prop: 'licenseOrganization', align: 'center', label: '许可机关' },  | ||||
|         { prop: 'licenseContent', align: 'center', label: '许可内容' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs2: [ | ||||
|         { prop: 'sanctionCode', width: '190', label: '行政处罚决定文书号' }, | ||||
|         { prop: 'sanctionDate', align: 'center', label: '处罚决定日期' }, | ||||
|         { prop: 'sanctionType', align: 'center', label: '处罚类型', formart: v => this.$dict.getLabel('administrativeSanctionType', v)  }, | ||||
|         { prop: 'sanctionContent', align: 'center', label: '处罚内容' },  | ||||
|         { prop: 'sanctionBasis', align: 'center', label: '处罚依据' },  | ||||
|         { prop: 'sanctionOrganization', align: 'center', label: '处罚机关' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs3: [ | ||||
|         { prop: 'taxpayer', label: '纳税人名称' }, | ||||
|         { prop: 'taxpayerNumber', align: 'center', label: '纳税人识别号' }, | ||||
|         { prop: 'taxLevel', align: 'center', label: '纳税人等级' }, | ||||
|         { prop: 'taxYear', align: 'center', label: '年份' },  | ||||
|         { prop: 'evaluationUnit', align: 'center', label: '评价单位' },  | ||||
|         { prop: 'createTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|       colConfigs4: [ | ||||
|         { prop: 'executionCode', label: '执行案号' }, | ||||
|         { prop: 'executionTime', align: 'center', label: '执行时间' }, | ||||
|         { prop: 'dishonestFact', align: 'center', label: '失信事实' }, | ||||
|         { prop: 'executionSituation', align: 'center', label: '履行情况',  formart: v => this.$dict.getLabel('dishonestPersonSituation', v) }, | ||||
|         { prop: 'executionCourt', align: 'center', label: '执行法院' },  | ||||
|         { prop: 'executionTime', align: 'center', label: '数据更新时间' } | ||||
|       ], | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getDetail() { | ||||
|       let {id} = this.$route.query | ||||
|       let {id} = this.row | ||||
|       this.instance.post("/appfinancingdemand/queryDetailById", null, { | ||||
|         params: {id} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.detail = res.data | ||||
|           if(this.detail.enterpriseId) { | ||||
|             this.getCompanyInfo() | ||||
|           } | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     getCompanyInfo() { | ||||
|       this.instance.post(`/appportaluserenterprise/queryCreditEnterpriseDetailById?id=${this.detail.enterpriseId}`, null, { | ||||
|         withoutToken: true | ||||
|       }).then(res => { | ||||
|         if (res.code === 0) { | ||||
|           this.info = res.data | ||||
|           this.info.subEnterpriseName = res.data.enterpriseName.substr(0, 4) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| @@ -103,11 +229,13 @@ export default { | ||||
|       }).catch(() => 0) | ||||
|     }, | ||||
|     back() { | ||||
|       this.$router.push({query: {}}) | ||||
|       this.$emit('goBack') | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getDetail() | ||||
|     this.dict.load("productRepaymentTimeline", "financialFundPurpose","financingDemandApplyType", "enterpriseType", "dishonestPersonSituation", "administrativeSanctionType").then(() => { | ||||
|       this.getDetail() | ||||
|     }) | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| @@ -123,5 +251,115 @@ export default { | ||||
|       width: 50%; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|     .dialog { | ||||
|     .top { | ||||
|       display: flex; | ||||
|       margin-bottom: 20px; | ||||
|       padding: 34px 30px 16px;  | ||||
|       border: 1px solid #EEEEEE; | ||||
|       border-radius: 4px; | ||||
|  | ||||
|       .top-left { | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         justify-content: center; | ||||
|         flex-shrink: 1; | ||||
|         width: 88px; | ||||
|         height: 87px; | ||||
|         line-height: 1.3; | ||||
|         margin-right: 31px; | ||||
|         padding: 0 16px; | ||||
|         text-align: justify; | ||||
|         background: #8CA3CD; | ||||
|         color: #FFFFFF; | ||||
|         font-size: 22px; | ||||
|         letter-spacing: 6px; | ||||
|         border-radius: 8px; | ||||
|       } | ||||
|  | ||||
|       .top-right { | ||||
|         flex: 1; | ||||
|  | ||||
|         .top-right__top { | ||||
|           display: flex; | ||||
|           align-items: center; | ||||
|           justify-content: space-between; | ||||
|           margin-bottom: 27px; | ||||
|  | ||||
|           h2 { | ||||
|             color: #333333; | ||||
|             font-size: 22px; | ||||
|           } | ||||
|  | ||||
|           .right { | ||||
|             display: flex; | ||||
|             align-items: center; | ||||
|             justify-content: center; | ||||
|             width: 97px; | ||||
|             height: 32px; | ||||
|             background: #E8F4FF; | ||||
|             border: 1px solid #A3D3FF; | ||||
|             border-radius: 3px; | ||||
|             color: #1890FF; | ||||
|             font-size: 13px; | ||||
|             cursor: pointer; | ||||
|  | ||||
|             &:hover { | ||||
|               opacity: 0.6; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|  | ||||
|         .top-right__bottom { | ||||
|           padding: 16px 10px 10px 0; | ||||
|           background: #F6FBFF; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .bottom { | ||||
|       padding-bottom: 20px; | ||||
|       border: 1px solid #DCDFE6; | ||||
|       border-radius: 4px; | ||||
|  | ||||
|       .tab { | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         height: 60px; | ||||
|         margin-bottom: 15px; | ||||
|         background: #FAFAFA; | ||||
|         border-radius: 4px; | ||||
|  | ||||
|         span { | ||||
|           flex: 1; | ||||
|           height: 100%; | ||||
|           line-height: 60px; | ||||
|           text-align: center; | ||||
|           color: #555555; | ||||
|           font-size: 16px; | ||||
|           cursor: pointer; | ||||
|           border-bottom: 1px solid #DCDFE6; | ||||
|           border-right: 1px solid #DCDFE6; | ||||
|           transition: all ease 0.3s; | ||||
|           user-select: none; | ||||
|  | ||||
|           &:last-child { | ||||
|             border-right: none; | ||||
|           } | ||||
|  | ||||
|           &.active { | ||||
|             border-bottom: 1px solid transparent; | ||||
|             background: #fff; | ||||
|             color: #1890FF; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|  | ||||
|       .table { | ||||
|         padding: 0 16px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -1,7 +1,6 @@ | ||||
| <template> | ||||
|   <section class="needsList"> | ||||
|     <ai-list> | ||||
|       <ai-title slot="title" title="融资需求" isShowBottomBorder/> | ||||
|       <template #content> | ||||
|         <ai-search-bar> | ||||
|           <template #right> | ||||
| @@ -13,7 +12,7 @@ | ||||
|                   @getList="getTableData" :col-configs="colConfigs" :dict="dict"> | ||||
|           <el-table-column slot="options" label="操作" fixed="right" align="center"> | ||||
|             <template slot-scope="{row}"> | ||||
|               <el-button type="text" @click="showDetail(row.id)">详情</el-button> | ||||
|               <el-button type="text" @click="goTo('detail',row)">详情</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </ai-table> | ||||
| @@ -63,9 +62,9 @@ export default { | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     showDetail(id) { | ||||
|       this.$router.push({query: {id}}) | ||||
|     } | ||||
|     goTo(key = '', row) { | ||||
|       this.$emit('goPage', {key, row}); | ||||
|     }, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getTableData() | ||||
|   | ||||
| @@ -0,0 +1,455 @@ | ||||
| <template> | ||||
|   <section class="needsStatistics"> | ||||
|     <ai-search-bar> | ||||
|       <template #left> | ||||
|         <ai-select v-model="search.messageType" placeholder="金融机构" clearable :selectList="$dict.getDict('dlbResourceType')" @change="getTableData()"></ai-select>           | ||||
|       </template> | ||||
|     </ai-search-bar> | ||||
|     <div class="col-row"> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|       <div class="item"> | ||||
|         <p>累计发布需求</p> | ||||
|         <h2>20</h2> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="chart-flex"> | ||||
|       <div class="circle-chart chart-content"> | ||||
|         <div class="title">融资需求发布主体占比</div> | ||||
|         <div class="cir-flex"> | ||||
|           <div class="total-num"> | ||||
|             <h2>108</h2> | ||||
|             <p>总数</p> | ||||
|           </div> | ||||
|           <div id="circleChart"></div> | ||||
|           <div class="cir-text"> | ||||
|             <div class="info"> | ||||
|               <p><span class="tips-bg" style="background: #2891FF;"></span>企业融资</p> | ||||
|               <div>65</div> | ||||
|             </div> | ||||
|             <div class="info"> | ||||
|               <p><span class="tips-bg" style="background: #FFB865;"></span>个人融资</p> | ||||
|               <div>65</div> | ||||
|             </div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="line-chart chart-content"> | ||||
|         <div class="title">交易趋势</div> | ||||
|         <p class="header-title"><span class="tips-bg" style="background: #2891FF;"></span>申请笔数<span class="tips-bg" style="background: #26D52B;"></span>放款笔数</p> | ||||
|         <div id="lineChart"></div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="chart-column chart-content"> | ||||
|       <div class="title">机构融资对接量TOP10</div> | ||||
|       <p class="header-title"><span class="tips-bg" style="background: #2891FF;"></span>申请笔数<span class="tips-bg" style="background: #26D52B;"></span>放款笔数</p> | ||||
|       <div id="columnChart"></div> | ||||
|     </div> | ||||
|     <div class="table-content chart-content"> | ||||
|       <div class="title">交易记录</div> | ||||
|       <ai-search-bar style="padding:20px 20px 0 20px;"> | ||||
|         <template #left> | ||||
|           <ai-select v-model="search.messageType" placeholder="金融机构" clearable :selectList="$dict.getDict('dlbResourceType')" @change="getTableData()"></ai-select>    | ||||
|          <ai-search label="申请时间"> | ||||
|             <el-date-picker size="small" placeholder="请选择" type="daterange" | ||||
|               start-placeholder="开始日期" | ||||
|               end-placeholder="结束日期" | ||||
|               style="width: 258px;" | ||||
|               value-format="yyyy-MM-dd" | ||||
|               v-model="stuTime" | ||||
|               @change="page.current=1,getList()"/> | ||||
|           </ai-search>      | ||||
|         </template> | ||||
|         <template #right> | ||||
|           <el-input size="small" placeholder="搜索企业名称" v-model="search.messageType" clearable @change="getList()"/>  | ||||
|           <ai-download :instance="instance" url="/app/appcommunityhouseresident/listExport" :params="search" | ||||
|             fileName="人口信息"> | ||||
|             <el-button icon="iconfont iconExported">导出</el-button> | ||||
|           </ai-download>         | ||||
|         </template> | ||||
|       </ai-search-bar> | ||||
|       <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" | ||||
|                 @getList="getList" :col-configs="colConfigs" :dict="dict" style="padding:0 20px 20px 20px;"> | ||||
|         <el-table-column slot="options" label="状态" fixed="right" width="100"> | ||||
|           <template slot-scope="{row}"> | ||||
|             <el-button type="text">详情</el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </ai-table> | ||||
|     </div> | ||||
|   </section> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import {mapState} from "vuex"; | ||||
| import * as echarts from 'echarts' | ||||
|  | ||||
| export default { | ||||
|   name: "needsStatistics", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|     permissions: Function | ||||
|   }, | ||||
|   computed: { | ||||
|     ...mapState(['user']) | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       search: {messageType: ''}, | ||||
|       page: {current: 1, total: 10}, | ||||
|       circleChart: null, | ||||
|       lineChart: null, | ||||
|       columnChart: null, | ||||
|       tableData: [], | ||||
|       colConfigs: [ | ||||
|         {label: "产品名称", width: '200', prop: "enterpriseName"}, | ||||
|         {label: "联系人", width: '100', prop: "areaName"}, | ||||
|         {label: "联系方式", width: '140', prop: "loanAmount"}, | ||||
|         {label: "身份证号", width: '180', prop: "createTime"}, | ||||
|         {label: "企业主体", width: '200', prop: "name"}, | ||||
|         {label: "贷款金额(万)", width: '120', prop: "phone"}, | ||||
|         {label: "申请时间", width: '180', prop: "remark"}, | ||||
|         {label: "贷款机构", width: '200', prop: "remark"}, | ||||
|         {label: "机构类型", width: '200', prop: "remark"}, | ||||
|         {slot: "options"} | ||||
|       ], | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getTableData() { | ||||
|       this.circleChartInit() | ||||
|       this.lineChartInit() | ||||
|       this.columnChartInit() | ||||
|       this.getList() | ||||
|     }, | ||||
|     getList() { | ||||
|       this.instance.post("/appfinancingdemand/list", null, { | ||||
|         params: {...this.page, ...this.search, status: 0} | ||||
|       }).then(res => { | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data?.records | ||||
|           this.page.total = res.data.total | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     circleChartInit() { | ||||
|       this.circleChart = echarts.init(document.getElementById('circleChart')) | ||||
|       if (!this.circleChart) { | ||||
|         return this.circleChart.dispose(); | ||||
|       } | ||||
|       var option = { | ||||
|         color: ['#2891FF', '#FFB865'], | ||||
|         series: [ | ||||
|           { | ||||
|             type: 'pie', | ||||
|             radius: ['80%', '90%'], | ||||
|             avoidLabelOverlap: false, | ||||
|             itemStyle: { | ||||
|               borderRadius: 10, | ||||
|               borderColor: '#fff', | ||||
|               borderWidth: 2 | ||||
|             }, | ||||
|             label: { | ||||
|               show: false, | ||||
|               position: 'center' | ||||
|             }, | ||||
|             emphasis: { | ||||
|               label: { | ||||
|                 show: false, | ||||
|                 fontSize: '12', | ||||
|               } | ||||
|             }, | ||||
|             data: [ | ||||
|               { value: 180}, | ||||
|               { value: 20}, | ||||
|             ] | ||||
|           } | ||||
|         ] | ||||
|  | ||||
|       }; | ||||
|  | ||||
|       this.circleChart.setOption(option) | ||||
|     }, | ||||
|     lineChartInit() { | ||||
|       this.lineChart = echarts.init(document.getElementById('lineChart')) | ||||
|       if (!this.lineChart) { | ||||
|         return this.lineChart.dispose(); | ||||
|       } | ||||
|       var option = option = { | ||||
|         tooltip: { | ||||
|           trigger: 'axis' | ||||
|         }, | ||||
|         grid: { | ||||
|           top: '3%', | ||||
|           left: '3%', | ||||
|           right: '4%', | ||||
|           bottom: '0%', | ||||
|           containLabel: true | ||||
|         }, | ||||
|  | ||||
|         xAxis: { | ||||
|           type: 'category', | ||||
|           boundaryGap: false, | ||||
|           data: ['2020-07', '2020-08', '2020-09', '2020-10', '2020-11'] | ||||
|         }, | ||||
|         yAxis: { | ||||
|           type: 'value' | ||||
|         }, | ||||
|         series: [ | ||||
|           { | ||||
|             name: '申请笔数', | ||||
|             type: 'line', | ||||
|             data: [120, 132, 101, 134, 90, 230, 210], | ||||
|             itemStyle: {  | ||||
|               normal: {  | ||||
|                 lineStyle:{  | ||||
|                   color:'#2891FF' | ||||
|                 } | ||||
|               } | ||||
|             } | ||||
|           }, | ||||
|           { | ||||
|             name: '放款笔数', | ||||
|             type: 'line', | ||||
|             stack: 'Total', | ||||
|             data: [220, 182, 191, 234, 290, 330, 310], | ||||
|             itemStyle: {  | ||||
|               normal: {  | ||||
|                 lineStyle:{  | ||||
|                   color:'#26D52B' | ||||
|                 } | ||||
|               } | ||||
|             } | ||||
|           }, | ||||
|         ] | ||||
|       }; | ||||
|       this.lineChart.setOption(option) | ||||
|     }, | ||||
|     columnChartInit() { | ||||
|       this.columnChart = echarts.init(document.getElementById('columnChart')) | ||||
|       if (!this.columnChart) { | ||||
|         return this.columnChart.dispose(); | ||||
|       } | ||||
|       var option = { | ||||
|         color: ['#2891FF', '#26D52B'], | ||||
|         tooltip: { | ||||
|           trigger: 'axis', | ||||
|           axisPointer: { | ||||
|             type: 'shadow' | ||||
|           } | ||||
|         }, | ||||
|         grid: { | ||||
|           top: '10%', | ||||
|           left: '2%', | ||||
|           right: '2%', | ||||
|           bottom: '2%', | ||||
|           containLabel: true | ||||
|         }, | ||||
|         xAxis: [{ | ||||
|           type: 'category', | ||||
|           axisTick: { | ||||
|             show: false | ||||
|           }, | ||||
|           data: ['重庆银行秀山支行', '哈尔滨银行秀山支行', '重庆银行五岳广场支行', '重庆秀山北银村镇银行'] | ||||
|         }], | ||||
|         yAxis: [{ | ||||
|           type: 'value' | ||||
|         }], | ||||
|         series: [{ | ||||
|           name: '申请数量', | ||||
|           type: 'bar', | ||||
|           barGap: 0, | ||||
|           data: [100, 80, 90, 100, 60], | ||||
|           barWidth: 10, | ||||
|         }, | ||||
|         { | ||||
|           name: '放款数量', | ||||
|           type: 'bar', | ||||
|           barGap: 0, | ||||
|           data: [100, 80, 90, 100, 60], | ||||
|           barWidth: 10, | ||||
|         }] | ||||
|       }; | ||||
|  | ||||
|       this.columnChart.setOption(option) | ||||
|     } | ||||
|   }, | ||||
|   mounted() { | ||||
|     this.getTableData() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   ::v-deep .ai-list .ai-list__content--right-wrapper{ | ||||
|     background: none!important; | ||||
|     box-shadow: none!important; | ||||
|   } | ||||
| .needsStatistics { | ||||
|   padding: 20px; | ||||
|   box-sizing: border-box; | ||||
|   height: 100%; | ||||
|   overflow-y: scroll; | ||||
|   .col-row{ | ||||
|     overflow: hidden; | ||||
|     .item{ | ||||
|       display: inline-block; | ||||
|       padding: 16px 24px; | ||||
|       width: calc(25% - 15px); | ||||
|       float: left; | ||||
|       margin: 0 20px 20px 0; | ||||
|       background: #FFF; | ||||
|       box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|       border-radius: 4px; | ||||
|       box-sizing: border-box; | ||||
|       p{ | ||||
|         font-size: 16px; | ||||
|         font-family: MicrosoftYaHei-Bold, MicrosoftYaHei; | ||||
|         font-weight: bold; | ||||
|         color: #888; | ||||
|         line-height: 24px; | ||||
|         margin-bottom: 8px; | ||||
|       } | ||||
|       h2{ | ||||
|         font-size: 24px; | ||||
|         font-family: Arial-BoldMT, Arial; | ||||
|         font-weight: normal; | ||||
|         color: #26F; | ||||
|         line-height: 32px; | ||||
|       } | ||||
|     } | ||||
|     .item:nth-of-type(4n) { | ||||
|       margin-right: 0; | ||||
|     } | ||||
|   } | ||||
|   .chart-flex{ | ||||
|     display: flex; | ||||
|     height: 280px; | ||||
|     margin-bottom: 20px; | ||||
|     .circle-chart{ | ||||
|       width: 440px; | ||||
|       margin-right: 20px; | ||||
|       height: 100%; | ||||
|       .cir-flex{ | ||||
|         height: calc(100% - 56px); | ||||
|         display: flex; | ||||
|         padding: 20px; | ||||
|         box-sizing: border-box; | ||||
|         position: relative; | ||||
|         .total-num{ | ||||
|           position: absolute; | ||||
|           top: 90px; | ||||
|           left: 70px; | ||||
|           width: 100px; | ||||
|           text-align: center; | ||||
|         } | ||||
|         #circleChart{ | ||||
|           width: calc(100% - 150px); | ||||
|           height: 100%; | ||||
|         } | ||||
|         .cir-text{ | ||||
|           width: 150px; | ||||
|           margin: 56px 0 0 40px; | ||||
|           .info{ | ||||
|             width: 100%; | ||||
|             display: flex; | ||||
|             justify-content: space-between; | ||||
|             margin-bottom: 8px; | ||||
|             p{ | ||||
|               width: 100px; | ||||
|               font-size: 14px; | ||||
|               font-family: MicrosoftYaHei; | ||||
|               color: #666; | ||||
|               line-height: 22px; | ||||
|             } | ||||
|             div{ | ||||
|               width: 50px; | ||||
|               text-align: right; | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     .line-chart{ | ||||
|       height: 100%; | ||||
|       width: calc(100% - 460px); | ||||
|       #lineChart{ | ||||
|         height: calc(100% - 100px); | ||||
|         padding-right: 20px; | ||||
|         box-sizing: border-box; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   .chart-column{ | ||||
|     margin-bottom: 20px; | ||||
|     height: 320px; | ||||
|     #columnChart{ | ||||
|       width: 100%; | ||||
|       height: 220px; | ||||
|     } | ||||
|   } | ||||
|   .table-content{ | ||||
|     width: 100%; | ||||
|     .title{ | ||||
|       border-bottom: 1px solid #ddd; | ||||
|     } | ||||
|   } | ||||
|   .tips-bg{ | ||||
|     display: inline-block; | ||||
|     width: 8px; | ||||
|     height: 8px; | ||||
|     margin-right: 4px; | ||||
|   } | ||||
|   .header-title{ | ||||
|     width: 100%; | ||||
|     text-align: center; | ||||
|     height: 20px; | ||||
|     font-size: 12px; | ||||
|     font-family: MicrosoftYaHei; | ||||
|     color: #333; | ||||
|     line-height: 20px; | ||||
|     .tips-bg:nth-of-type(2n) { | ||||
|       margin-left: 24px; | ||||
|     } | ||||
|   } | ||||
|   .chart-content{ | ||||
|     background: #FFF; | ||||
|     box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|     border-radius: 4px; | ||||
|   } | ||||
|   .title{ | ||||
|     line-height: 56px; | ||||
|     font-size: 16px; | ||||
|     font-family: MicrosoftYaHeiSemibold; | ||||
|     color: #222; | ||||
|     padding-left: 16px; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @@ -53,7 +53,8 @@ | ||||
|                     <div v-for="(item, index) in applyForm" :key="index"> | ||||
|                       <ai-title :title="index"></ai-title> | ||||
|                       <el-form-item v-for="e in item" :key="e.id" :label="[e.fieldName,e.fieldNameSuffix].join('')"> | ||||
|                         <el-input :value="getFieldValue(e)" readonly style="width: 100%;" v-if="e.fieldDataType!=5"/> | ||||
|                         <el-input :value="getFieldValue(e)" readonly style="width: 100%;" v-if="e.fieldDataType!=5 && e.fieldDataType!=10"/> | ||||
|                         <el-input :value="getAreaName(e)" readonly style="width: 100%;" v-if="e.fieldDataType==10"/> | ||||
|                         <el-checkbox-group v-model="!e.fieldValue ? '' : String(e.fieldValue).split(',')"> | ||||
|                           <el-checkbox :label="val.dictValue" disabled | ||||
|                                        v-for="(val,idx) in dict.getDict(e.dictionaryCode)" :key="idx">{{val.dictName}}</el-checkbox> | ||||
| @@ -408,6 +409,9 @@ export default { | ||||
|     getFieldValue(e) { | ||||
|       return e.dictionaryCode ? this.dict.getLabel(e.dictionaryCode, e.fieldValue) : e.fieldValue | ||||
|     }, | ||||
|     getAreaName(e) { | ||||
|       return e.areaValue | ||||
|     }, | ||||
|     color(status) { | ||||
|       return ['#2EA222', '#2EA222', '#FF4466', '#2EA222', '#FF8822', '#2EA222', '#2EA222', '#FF4466', '#FF8822', '#FF8822'][+status] | ||||
|     }, | ||||
| @@ -648,7 +652,7 @@ export default { | ||||
|   }, | ||||
|   created() { | ||||
|     this.dict.load(['nodeType', 'approvalStatus', 'hbDepartment', 'sex', 'nation', 'marital', 'education', 'yesOrNo']) | ||||
|     this.areaId = this.user.info.areaId.substring(0, 6) + '000000' | ||||
|     // this.areaId = this.user.info.areaId.substring(0, 6) + '000000' | ||||
|     this.searchDetail(this.detail.id); | ||||
|     this.searchLog(this.currentMenu) | ||||
|   }, | ||||
| @@ -700,9 +704,11 @@ export default { | ||||
|         background: #F7F7F7; | ||||
|         border: 1px solid #DDDDDD; | ||||
|         padding: 20px; | ||||
|         text-align: center; | ||||
|         width: 100%; | ||||
|  | ||||
|         .el-image { | ||||
|           width: 100%; | ||||
|           width: 100%!important; | ||||
|           height: 100%; | ||||
|           background: #fff; | ||||
|           border: 1px solid #EEEEEE; | ||||
| @@ -1157,6 +1163,7 @@ export default { | ||||
|       justify-content: flex-end; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|  | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -44,7 +44,7 @@ export default { | ||||
|     tabs() { | ||||
|       return [ | ||||
|         {label: "网上办事", name: "configList", value: "0", comp: configList, detail: addConfig, permission: ""}, | ||||
|         {label: "办事指南", name: "configList", value: "2", comp: configList, detail: guidance, permission: ""}, | ||||
|         // {label: "办事指南", name: "configList", value: "2", comp: configList, detail: guidance, permission: ""}, | ||||
|       ] | ||||
|     }, | ||||
|     currentTab() { | ||||
|   | ||||
| @@ -37,11 +37,8 @@ | ||||
|       </el-table-column> | ||||
|       <el-table-column align="center" prop="name" label="是否必填"> | ||||
|         <template slot-scope="scope"> | ||||
|           <el-switch | ||||
|               v-model="scope.row.mustFill" | ||||
|               active-value="0" inactive-value="1" | ||||
|               active-color="#D0D4DC" | ||||
|               inactive-color="#5088FF"> | ||||
|           <el-switch v-model="scope.row.mustFill" | ||||
|             active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0"> | ||||
|           </el-switch> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|   | ||||
| @@ -38,10 +38,8 @@ | ||||
|         <ai-editor v-model.trim="form.needToKnow" :instance="instance"/> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="是否启用" prop="processDefStatus"> | ||||
|         <el-switch | ||||
|             v-model="form.processDefStatus" | ||||
|             active-color="#D0D4DC" | ||||
|             inactive-color="#5088FF" active-value="0" inactive-value="1"> | ||||
|         <el-switch v-model="form.processDefStatus" | ||||
|           active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0"> | ||||
|         </el-switch> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|   | ||||
| @@ -49,9 +49,7 @@ | ||||
|             <template v-slot="{row}"> | ||||
|               <el-switch | ||||
|                 v-model="row.processDefStatus" | ||||
|                 @change="onChange(row)" active-value="1" inactive-value="0" | ||||
|                 active-color="#5088FF" | ||||
|                 inactive-color="#D0D4DC"> | ||||
|                 @change="onChange(row)" active-color="#5088FF" inactive-color="#D0D4DC" active-value="1" inactive-value="0"> | ||||
|               </el-switch> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|   | ||||
| @@ -10,6 +10,7 @@ | ||||
|     "registry": "http://192.168.1.87:4873/" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "dvcp-ui": "^1.42.2" | ||||
|     "dvcp-ui": "^1.42.2", | ||||
|     "dvcp-dv-ui": "^2.0.1" | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user