| @ -1,5 +1,5 @@ | |||||
| NODE_ENV=production | NODE_ENV=production | ||||
| VUE_APP_PLATFORM_NAME=陌美人后台管理系统 | |||||
| VUE_APP_PLATFORM_NAME=VTribe管理系统 | |||||
| # 开启单点登录 | # 开启单点登录 | ||||
| VUE_APP_SSO=false | VUE_APP_SSO=false | ||||
| # 开启微应用模式 | # 开启微应用模式 | ||||
| @ -1,4 +1,4 @@ | |||||
| NODE_ENV=production | NODE_ENV=production | ||||
| VUE_APP_API_BASE_URL=http://localhost:8001/popularize-admin/ | |||||
| VUE_APP_API_BASE_URL=https://popularize-admin.hhlm1688.com/popularize-admin/ | |||||
| VUE_APP_CAS_BASE_URL=http://localhost:8888/cas | VUE_APP_CAS_BASE_URL=http://localhost:8888/cas | ||||
| VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview | ||||
| @ -1,292 +1,472 @@ | |||||
| <template> | <template> | ||||
| <div class="page-header-index-wide"> | |||||
| <a-row :gutter="24"> | |||||
| <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> | |||||
| <chart-card :loading="loading" title="受理量" :total="cardCount.sll | NumberFormat"> | |||||
| <a-tooltip title="指标说明" slot="action"> | |||||
| <a-icon type="info-circle-o" /> | |||||
| </a-tooltip> | |||||
| <div> | |||||
| <mini-area :data-source="chartData.sll" /> | |||||
| </div> | |||||
| <template slot="footer">今日受理量:<span>{{ todaySll }}</span></template> | |||||
| </chart-card> | |||||
| </a-col> | |||||
| <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> | |||||
| <chart-card :loading="loading" title="办结量" :total="cardCount.bjl | NumberFormat"> | |||||
| <a-tooltip title="指标说明" slot="action"> | |||||
| <a-icon type="info-circle-o" /> | |||||
| </a-tooltip> | |||||
| <div> | |||||
| <mini-area :data-source="chartData.bjl"/> | |||||
| </div> | |||||
| <template slot="footer">今日办结量:<span>{{ todayBjl }}</span></template> | |||||
| </chart-card> | |||||
| </a-col> | |||||
| <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> | |||||
| <chart-card :loading="loading" title="用户受理量" :total="cardCount.isll | NumberFormat"> | |||||
| <a-tooltip title="指标说明" slot="action"> | |||||
| <a-icon type="info-circle-o" /> | |||||
| </a-tooltip> | |||||
| <div> | |||||
| <mini-bar :datasource="chartData.isll" :height="50"/> | |||||
| </div> | |||||
| <template slot="footer">用户今日受理量:<span>{{ todayISll }}</span></template> | |||||
| </chart-card> | |||||
| </a-col> | |||||
| <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> | |||||
| <chart-card :loading="loading" title="用户办结量" :total="cardCount.ibjl | NumberFormat"> | |||||
| <a-tooltip title="指标说明" slot="action"> | |||||
| <a-icon type="info-circle-o" /> | |||||
| </a-tooltip> | |||||
| <div> | |||||
| <mini-bar :datasource="chartData.ibjl" :height="50"/> | |||||
| </div> | |||||
| <template slot="footer">用户今日办结量:<span>{{ todayIBjl }}</span></template> | |||||
| </chart-card> | |||||
| </a-col> | |||||
| </a-row> | |||||
| <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}"> | |||||
| <div class="salesCard"> | |||||
| <a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}"> | |||||
| <div class="extra-wrapper" slot="tabBarExtraContent"> | |||||
| <div class="extra-item"> | |||||
| <a>今日</a> | |||||
| <a>本周</a> | |||||
| <a>本月</a> | |||||
| <a>本年</a> | |||||
| </div> | |||||
| <a-range-picker :style="{width: '256px'}" /> | |||||
| </div> | |||||
| <a-tab-pane loading="true" tab="用户数量" key="1"> | |||||
| <a-row> | |||||
| <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> | |||||
| <index-bar title="用户数量统计" /> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-tab-pane> | |||||
| <div> | |||||
| <!-- <div class="background-card">--> | |||||
| <!-- <a-input v-model="sql" @blur="enter" :readonly="true" placeholder="考虑到统计过于耗费性能,您可以通过点击指定块实时刷新数据!"></a-input>--> | |||||
| <!-- <div class="grid-line">--> | |||||
| <!-- <a-card style="width: 560px; min-height: 400px; height: auto; margin: 20px;" title="兼职发布情况" :bordered="false" @click="clickCard3">--> | |||||
| <!-- <a-table :dataSource="clickDataSource3" :columns="clickDolumns3" :pagination="false" />--> | |||||
| <!-- </a-card>--> | |||||
| <!-- <div style="width: 1080px; display: flex; flex-wrap: wrap;">--> | |||||
| <!-- <a-card class="mini-div" title="兼职点击统计" :bordered="false" @click="clickCard1">--> | |||||
| <!-- <a-table :dataSource="clickDataSource" :columns="clickDolumns" :pagination="false" />--> | |||||
| <!-- </a-card>--> | |||||
| <!-- <a-card class="mini-div" title="联系方式点击统计" :bordered="false" @click="clickCard2">--> | |||||
| <!-- <a-table :dataSource="clickDataSource2" :columns="clickDolumns2" :pagination="false" />--> | |||||
| <!-- </a-card>--> | |||||
| <!-- <a-card class="mini-div" title="用户统计" :bordered="false" @click="clickCard0">--> | |||||
| <!-- <a-row>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="总用户/实名" :value="cmap.zs" >--> | |||||
| <!-- <template #suffix>--> | |||||
| <!-- <span>/ {{cmap.ps}}</span>--> | |||||
| <!-- </template>--> | |||||
| <!-- </a-statistic>--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="今日" :value="cmap.za" >--> | |||||
| <!-- <template #suffix>--> | |||||
| <!-- <span>/ {{cmap.pa}}</span>--> | |||||
| <!-- </template>--> | |||||
| <!-- </a-statistic>--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="昨日" :value="cmap.zd" >--> | |||||
| <!-- <template #suffix>--> | |||||
| <!-- <span>/ {{cmap.pd}}</span>--> | |||||
| <!-- </template>--> | |||||
| <!-- </a-statistic>--> | |||||
| <!-- </a-col>--> | |||||
| <!-- </a-row>--> | |||||
| <!-- <a-row style="margin-top: 40px;">--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="本周" :value="cmap.zb" >--> | |||||
| <!-- <template #suffix>--> | |||||
| <!-- <span>/ {{cmap.pb}}</span>--> | |||||
| <!-- </template>--> | |||||
| <!-- </a-statistic>--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="本月" :value="cmap.zc" >--> | |||||
| <!-- <template #suffix>--> | |||||
| <!-- <span>/ {{cmap.pc}}</span>--> | |||||
| <!-- </template>--> | |||||
| <!-- </a-statistic>--> | |||||
| <!-- </a-col>--> | |||||
| <!-- </a-row>--> | |||||
| <!-- </a-card>--> | |||||
| <!-- <a-card class="mini-div" title="公众号概要" :bordered="false" @click="clickCard9">--> | |||||
| <!-- <a-row>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="双端总用户" :value="cmbp.a" />--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="平台用户" :value="cmbp.b" />--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="关注公众号" :value="cmbp.c" />--> | |||||
| <!-- </a-col>--> | |||||
| <!-- </a-row>--> | |||||
| <!-- <a-row style="margin-top: 40px;">--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="未转公众号" :value="cmbp.d" />--> | |||||
| <!-- </a-col>--> | |||||
| <!-- <a-col :span="8">--> | |||||
| <!-- <a-statistic title="未转小程序" :value="cmbp.e" />--> | |||||
| <!-- </a-col>--> | |||||
| <!-- </a-row>--> | |||||
| <!-- </a-card>--> | |||||
| <!-- </div>--> | |||||
| <!-- </div>--> | |||||
| <!-- </div>--> | |||||
| </div> | |||||
| <a-tab-pane loading="true" tab="营业额量" key="2"> | |||||
| <a-row> | |||||
| <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> | |||||
| <index-bar title="用户数量统计" /> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-tab-pane> | |||||
| <a-tab-pane loading="true" tab="主理人量" key="3"> | |||||
| <a-row> | |||||
| <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> | |||||
| <index-bar title="用户数量统计" /> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-tab-pane> | |||||
| <a-tab-pane loading="true" tab="主理人量" key="4"> | |||||
| <a-row> | |||||
| <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> | |||||
| <index-bar title="用户数量统计" /> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-tab-pane> | |||||
| </a-tabs> | |||||
| </div> | |||||
| </a-card> | |||||
| </div> | |||||
| </template> | </template> | ||||
| <script> | <script> | ||||
| import { postAction, getAction } from '@/api/manage' | |||||
| import CryptoJS from 'crypto-js'; | |||||
| export default { | |||||
| name: "Analysis", | |||||
| data() { | |||||
| return { | |||||
| sql: '', | |||||
| cmap: { | |||||
| zs: 2500, | |||||
| ps: 300, | |||||
| za: 40, | |||||
| pa: 6, | |||||
| zb: 300, | |||||
| pb: 20, | |||||
| zc: 900, | |||||
| pc: 90, | |||||
| zd: 9999, | |||||
| pd: 9999 | |||||
| import ACol from "ant-design-vue/es/grid/Col" | |||||
| import ATooltip from "ant-design-vue/es/tooltip/Tooltip" | |||||
| import ChartCard from '@/components/ChartCard' | |||||
| import MiniBar from '@/components/chart/MiniBar' | |||||
| import MiniArea from '@/components/chart/MiniArea' | |||||
| import IndexBar from '@/components/chart/IndexBar' | |||||
| import BarMultid from '@/components/chart/BarMultid' | |||||
| import DashChartDemo from '@/components/chart/DashChartDemo' | |||||
| const jhjgData = [ | |||||
| { type: '房管', '1月': 900, '2月': 1120, '3月': 1380, '4月': 1480, '5月': 1450, '6月': 1100, '7月':1300, '8月':900,'9月':1000 ,'10月':1200 ,'11月':600 ,'12月':900 }, | |||||
| { type: '税务', '1月':1200, '2月': 1500, '3月': 1980, '4月': 2000, '5月': 1000, '6月': 600, '7月':900, '8月':1100,'9月':1300 ,'10月':2000 ,'11月':900 ,'12月':1100 }, | |||||
| { type: '不动产', '1月':2000, '2月': 1430, '3月': 1300, '4月': 1400, '5月': 900, '6月': 500, '7月':600, '8月':1000,'9月':600 ,'10月':1000 ,'11月':1500 ,'12月':1200 } | |||||
| ] | |||||
| const jhjgFields=[ | |||||
| '1月','2月','3月','4月','5月','6月', | |||||
| '7月','8月','9月','10月','11月','12月' | |||||
| ] | |||||
| const xljgData = [ | |||||
| {type:'一月',"房管":1.12,"税务":1.55,"不动产":1.2}, | |||||
| {type:'二月',"房管":1.65,"税务":1.32,"不动产":1.42}, | |||||
| {type:'三月',"房管":1.85,"税务":1.1,"不动产":1.5}, | |||||
| {type:'四月',"房管":1.33,"税务":1.63,"不动产":1.4}, | |||||
| {type:'五月',"房管":1.63,"税务":1.8,"不动产":1.7}, | |||||
| {type:'六月',"房管":1.85,"税务":1.98,"不动产":1.8}, | |||||
| {type:'七月',"房管":1.98,"税务":1.5,"不动产":1.76}, | |||||
| {type:'八月',"房管":1.48,"税务":1.2,"不动产":1.3}, | |||||
| {type:'九月',"房管":1.41,"税务":1.9,"不动产":1.6}, | |||||
| {type:'十月',"房管":1.1,"税务":1.1,"不动产":1.4}, | |||||
| {type:'十一月',"房管":1.85,"税务":1.6,"不动产":1.5}, | |||||
| {type:'十二月',"房管":1.5,"税务":1.4,"不动产":1.3} | |||||
| ] | |||||
| const xljgFields=["房管","税务","不动产"] | |||||
| const dataCol1 = [{ | |||||
| title: '业务号', | |||||
| align:"center", | |||||
| dataIndex: 'reBizCode' | |||||
| },{ | |||||
| title: '业务类型', | |||||
| align:"center", | |||||
| dataIndex: 'type' | |||||
| },{ | |||||
| title: '受理人', | |||||
| align:"center", | |||||
| dataIndex: 'acceptBy' | |||||
| },{ | |||||
| title: '受理时间', | |||||
| align:"center", | |||||
| dataIndex: 'acceptDate' | |||||
| },{ | |||||
| title: '当前节点', | |||||
| align:"center", | |||||
| dataIndex: 'curNode' | |||||
| },{ | |||||
| title: '办理时长', | |||||
| align:"center", | |||||
| dataIndex: 'flowRate', | |||||
| scopedSlots: { customRender: 'flowRate' } | |||||
| }]; | |||||
| const dataSource1=[ | |||||
| {reBizCode:"1",type:"转移登记",acceptBy:'张三',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:60}, | |||||
| {reBizCode:"2",type:"抵押登记",acceptBy:'李四',acceptDate:"2019-01-23",curNode:"领导审核",flowRate:30}, | |||||
| {reBizCode:"3",type:"转移登记",acceptBy:'王武',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:20}, | |||||
| {reBizCode:"4",type:"转移登记",acceptBy:'赵楼',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:80}, | |||||
| {reBizCode:"5",type:"转移登记",acceptBy:'钱就',acceptDate:"2019-12-12",curNode:"任务分派",flowRate:90}, | |||||
| {reBizCode:"6",type:"转移登记",acceptBy:'孙吧',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10}, | |||||
| {reBizCode:"7",type:"抵押登记",acceptBy:'周大',acceptDate:"2019-04-13",curNode:"任务分派",flowRate:100}, | |||||
| {reBizCode:"8",type:"抵押登记",acceptBy:'吴二',acceptDate:"2019-05-09",curNode:"任务上报",flowRate:50}, | |||||
| {reBizCode:"9",type:"抵押登记",acceptBy:'郑爽',acceptDate:"2019-07-12",curNode:"任务处理",flowRate:63}, | |||||
| {reBizCode:"20",type:"抵押登记",acceptBy:'林有',acceptDate:"2019-12-12",curNode:"任务打回",flowRate:59}, | |||||
| {reBizCode:"11",type:"转移登记",acceptBy:'码云',acceptDate:"2019-09-10",curNode:"任务签收",flowRate:87}, | |||||
| ] | |||||
| const dataCol2 = [{ | |||||
| title: '业务号', | |||||
| align:"center", | |||||
| dataIndex: 'reBizCode' | |||||
| },{ | |||||
| title: '受理人', | |||||
| align:"center", | |||||
| dataIndex: 'acceptBy' | |||||
| },{ | |||||
| title: '发起时间', | |||||
| align:"center", | |||||
| dataIndex: 'acceptDate' | |||||
| },{ | |||||
| title: '当前节点', | |||||
| align:"center", | |||||
| dataIndex: 'curNode' | |||||
| },{ | |||||
| title: '超时时间', | |||||
| align:"center", | |||||
| dataIndex: 'flowRate', | |||||
| scopedSlots: { customRender: 'flowRate' } | |||||
| }]; | |||||
| const dataSource2=[ | |||||
| {reBizCode:"A001",type:"转移登记",acceptBy:'张四',acceptDate:"2019-01-22",curNode:"任务分派",flowRate:12}, | |||||
| {reBizCode:"A002",type:"抵押登记",acceptBy:'李吧',acceptDate:"2019-01-23",curNode:"任务签收",flowRate:3}, | |||||
| {reBizCode:"A003",type:"转移登记",acceptBy:'王三',acceptDate:"2019-01-25",curNode:"任务处理",flowRate:24}, | |||||
| {reBizCode:"A004",type:"转移登记",acceptBy:'赵二',acceptDate:"2019-11-22",curNode:"部门审核",flowRate:10}, | |||||
| {reBizCode:"A005",type:"转移登记",acceptBy:'钱大',acceptDate:"2019-12-12",curNode:"任务签收",flowRate:8}, | |||||
| {reBizCode:"A006",type:"转移登记",acceptBy:'孙就',acceptDate:"2019-03-06",curNode:"任务处理",flowRate:10}, | |||||
| {reBizCode:"A007",type:"抵押登记",acceptBy:'周晕',acceptDate:"2019-04-13",curNode:"部门审核",flowRate:24}, | |||||
| {reBizCode:"A008",type:"抵押登记",acceptBy:'吴有',acceptDate:"2019-05-09",curNode:"部门审核",flowRate:30}, | |||||
| {reBizCode:"A009",type:"抵押登记",acceptBy:'郑武',acceptDate:"2019-07-12",curNode:"任务分派",flowRate:1}, | |||||
| {reBizCode:"A0010",type:"抵押登记",acceptBy:'林爽',acceptDate:"2019-12-12",curNode:"部门审核",flowRate:16}, | |||||
| {reBizCode:"A0011",type:"转移登记",acceptBy:'码楼',acceptDate:"2019-09-10",curNode:"部门审核",flowRate:7}, | |||||
| ] | |||||
| export default { | |||||
| name: "IndexBdc", | |||||
| components: { | |||||
| ATooltip, | |||||
| ACol, | |||||
| ChartCard, | |||||
| MiniArea, | |||||
| MiniBar, | |||||
| DashChartDemo, | |||||
| BarMultid, | |||||
| IndexBar | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| loading: true, | |||||
| cardCount:{ | |||||
| sll:100, | |||||
| bjl:87, | |||||
| isll:15, | |||||
| ibjl:9 | |||||
| }, | |||||
| todaySll:60, | |||||
| todayBjl:54, | |||||
| todayISll:13, | |||||
| todayIBjl:7, | |||||
| chartData:{ | |||||
| sll:[], | |||||
| bjl:[], | |||||
| isll:[], | |||||
| ibjl:[] | |||||
| }, | |||||
| jhjgFields, | |||||
| jhjgData, | |||||
| xljgData, | |||||
| xljgFields, | |||||
| diskInfo:[ | |||||
| {name:"C盘",restPPT:7}, | |||||
| {name:"D盘",restPPT:5} | |||||
| ], | |||||
| registerTypeList:[{ | |||||
| text:"业务受理" | |||||
| },{ | |||||
| text:"业务管理" | |||||
| },{ | |||||
| text:"文件管理" | |||||
| },{ | |||||
| text:"信息查询" | |||||
| }], | |||||
| dataSource1:[], | |||||
| dataSource2:[], | |||||
| columns:dataCol1, | |||||
| columns2:dataCol2, | |||||
| ipagination1:{ | |||||
| current: 1, | |||||
| pageSize: 5, | |||||
| pageSizeOptions: ['10', '20', '30'], | |||||
| showTotal: (total, range) => { | |||||
| return range[0] + "-" + range[1] + " 共" + total + "条" | |||||
| }, | }, | ||||
| cmbp: { | |||||
| a: 9999, | |||||
| b: 9999, | |||||
| c: 9999, | |||||
| d: 9999, | |||||
| e: 9999, | |||||
| showQuickJumper: true, | |||||
| showSizeChanger: true, | |||||
| total: 0, | |||||
| }, | |||||
| ipagination2:{ | |||||
| current: 1, | |||||
| pageSize: 5, | |||||
| pageSizeOptions: ['10', '20', '30'], | |||||
| showTotal: (total, range) => { | |||||
| return range[0] + "-" + range[1] + " 共" + total + "条" | |||||
| }, | }, | ||||
| showQuickJumper: true, | |||||
| showSizeChanger: true, | |||||
| total: 0, | |||||
| }, | |||||
| indexRegisterType:"转移登记", | |||||
| indexBottomTab:"1" | |||||
| clickDataSource: [ | |||||
| { | |||||
| key: '1', | |||||
| name: '今日', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '2', | |||||
| name: '本周', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '3', | |||||
| name: '本月', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '4', | |||||
| name: '总计', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| ], | |||||
| clickDolumns: [ | |||||
| { | |||||
| title: '区域', | |||||
| dataIndex: 'name', | |||||
| key: 'name', | |||||
| }, | |||||
| { | |||||
| title: '点击次数', | |||||
| dataIndex: 'a', | |||||
| key: 'a', | |||||
| }, | |||||
| { | |||||
| title: '点击人数', | |||||
| dataIndex: 'b', | |||||
| key: 'b', | |||||
| }, | |||||
| ], | |||||
| clickDataSource2: [ | |||||
| { | |||||
| key: '1', | |||||
| name: '今日', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '2', | |||||
| name: '本周', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '3', | |||||
| name: '本月', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| { | |||||
| key: '4', | |||||
| name: '总计', | |||||
| a: 0, | |||||
| b: 0 | |||||
| }, | |||||
| ], | |||||
| clickDolumns2: [ | |||||
| { | |||||
| title: '区域', | |||||
| dataIndex: 'name', | |||||
| key: 'name', | |||||
| }, | |||||
| { | |||||
| title: '点击次数', | |||||
| dataIndex: 'a', | |||||
| key: 'a', | |||||
| }, | |||||
| { | |||||
| title: '点击人数', | |||||
| dataIndex: 'b', | |||||
| key: 'b', | |||||
| }, | |||||
| ], | |||||
| clickDataSource3: [ | |||||
| { | |||||
| key: '4', | |||||
| name: '统计', | |||||
| a: 0, | |||||
| b: 0, | |||||
| c: 0 | |||||
| }, | |||||
| ], | |||||
| clickDolumns3: [ | |||||
| { | |||||
| title: '区域', | |||||
| dataIndex: 'name', | |||||
| key: 'name', | |||||
| }, | |||||
| { | |||||
| title: '今日', | |||||
| dataIndex: 'a', | |||||
| key: 'a', | |||||
| }, | |||||
| { | |||||
| title: '本周', | |||||
| dataIndex: 'b', | |||||
| key: 'b', | |||||
| }, | |||||
| { | |||||
| title: '本月', | |||||
| dataIndex: 'c', | |||||
| key: 'c', | |||||
| }, | |||||
| ], | |||||
| } | |||||
| }, | |||||
| methods:{ | |||||
| goPage(){ | |||||
| this.$message.success("根据业务自行处理跳转页面!") | |||||
| }, | |||||
| changeRegisterType(e){ | |||||
| this.indexRegisterType = e.target.value | |||||
| if(this.indexBottomTab=="1"){ | |||||
| this.loadDataSource1() | |||||
| }else{ | |||||
| this.loadDataSource2() | |||||
| } | } | ||||
| }, | }, | ||||
| created() { | |||||
| this.clickCard0() | |||||
| this.clickCard1() | |||||
| this.clickCard2() | |||||
| this.clickCard3() | |||||
| this.clickCard9() | |||||
| tableChange1(pagination){ | |||||
| this.ipagination1.current = pagination.current | |||||
| this.ipagination1.pageSize = pagination.pageSize | |||||
| this.queryTimeoutInfo() | |||||
| }, | |||||
| tableChange2(pagination){ | |||||
| this.ipagination2.current = pagination.current | |||||
| this.ipagination2.pageSize = pagination.pageSize | |||||
| this.queryNodeTimeoutInfo() | |||||
| }, | |||||
| getFlowRateNumber(value){ | |||||
| return Number(value) | |||||
| }, | |||||
| getPercentFormat(value){ | |||||
| if(value==100){ | |||||
| return "超时" | |||||
| }else{ | |||||
| return value+"%" | |||||
| } | |||||
| }, | |||||
| getPercentColor(value){ | |||||
| let p = Number(value) | |||||
| if(p>=90 && p<100){ | |||||
| return 'rgb(244, 240, 89)' | |||||
| }else if(p>=100){ | |||||
| return 'red' | |||||
| }else{ | |||||
| return 'rgb(16, 142, 233)' | |||||
| } | |||||
| }, | }, | ||||
| loadDataSource1(){ | |||||
| this.dataSource1 = dataSource1.filter(item=>{ | |||||
| if(!this.indexRegisterType){ | |||||
| return true | |||||
| } | |||||
| return item.type==this.indexRegisterType | |||||
| }) | |||||
| }, | |||||
| loadDataSource2(){ | |||||
| this.dataSource2 = dataSource2.filter(item=>{ | |||||
| if(!this.indexRegisterType){ | |||||
| return true | |||||
| } | |||||
| return item.type==this.indexRegisterType | |||||
| }) | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| this.loadDataSource1() | |||||
| this.loadDataSource2() | |||||
| setTimeout(() => { | |||||
| this.loading = !this.loading | |||||
| }, 1000) | |||||
| } | } | ||||
| } | |||||
| </script> | </script> | ||||
| <style> | |||||
| .background-card{ | |||||
| width: 100%; min-height: 780px; height: auto; text-align: right; margin-top: 20px;background-color: #FFF | |||||
| <style lang="less" scoped> | |||||
| .extra-wrapper { | |||||
| line-height: 55px; | |||||
| padding-right: 24px; | |||||
| .extra-item { | |||||
| display: inline-block; | |||||
| margin-right: 24px; | |||||
| a { | |||||
| margin-left: 24px; | |||||
| } | |||||
| } | |||||
| } | |||||
| .item-group { | |||||
| padding: 20px 0 8px 24px; | |||||
| font-size: 0; | |||||
| a { | |||||
| color: rgba(0, 0, 0, 0.65); | |||||
| display: inline-block; | |||||
| font-size: 14px; | |||||
| margin-bottom: 13px; | |||||
| width: 25%; | |||||
| } | |||||
| } | |||||
| .item-group { | |||||
| .more-btn { | |||||
| margin-bottom: 13px; | |||||
| text-align: center; | |||||
| } | |||||
| } | |||||
| .list-content-item { | |||||
| color: rgba(0, 0, 0, .45); | |||||
| display: inline-block; | |||||
| vertical-align: middle; | |||||
| font-size: 14px; | |||||
| margin-left: 40px; | |||||
| } | |||||
| @media only screen and (min-width: 1600px) { | |||||
| .list-content-item{ | |||||
| margin-left:60px; | |||||
| } | |||||
| } | |||||
| @media only screen and (max-width: 1300px) { | |||||
| .list-content-item{ | |||||
| margin-left:20px; | |||||
| } | |||||
| .width-hidden4{ | |||||
| display:none | |||||
| } | |||||
| } | |||||
| .list-content-item{ | |||||
| span{line-height: 20px;} | |||||
| } | |||||
| .list-content-item{ | |||||
| p{margin-top: 4px;margin-bottom:0;line-height:22px;} | |||||
| } | } | ||||
| .grid-line { | |||||
| width: 100%; | |||||
| min-height: 780px; | |||||
| height: auto; | |||||
| text-align: center; | |||||
| color: blue; | |||||
| box-sizing: border-box; | |||||
| background: -webkit-linear-gradient(top, transparent 15px, #eee 0), -webkit-linear-gradient(left, transparent 15px, #eee 0); | |||||
| background-size: 16px 16px; | |||||
| position: relative; | |||||
| display: flex; | |||||
| flex-wrap: wrap; | |||||
| .anty-list-cust { | |||||
| .ant-list-item-meta{flex: 0.3 !important;} | |||||
| } | } | ||||
| .mini-div { | |||||
| width: 480px; | |||||
| min-height: 400px; | |||||
| height: auto; | |||||
| margin: 20px; | |||||
| .anty-list-cust { | |||||
| .ant-list-item-content{flex:1 !important; justify-content:flex-start !important;margin-left: 20px;} | |||||
| } | } | ||||
| </style> | </style> | ||||
| @ -0,0 +1,339 @@ | |||||
| <template> | |||||
| <a-card :bordered="false"> | |||||
| <!-- 查询区域 --> | |||||
| <div class="table-page-search-wrapper"> | |||||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||||
| <a-row :gutter="24"> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="招募状态"> | |||||
| <j-dict-select-tag placeholder="请选择招募状态" v-model="queryParam.stateOn" dictCode="state_on"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="中文-招募标题"> | |||||
| <a-input placeholder="请输入中文-招募标题" v-model="queryParam.title"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <template v-if="toggleSearchStatus"> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="英文-招募标题"> | |||||
| <a-input placeholder="请输入英文-招募标题" v-model="queryParam.enTitle"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="中文-地址"> | |||||
| <a-input placeholder="请输入中文-地址" v-model="queryParam.address"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="英文-地址"> | |||||
| <a-input placeholder="请输入英文-地址" v-model="queryParam.enAddress"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="中文-标签"> | |||||
| <a-input placeholder="请输入中文-标签" v-model="queryParam.iconText"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="英文标签"> | |||||
| <a-input placeholder="请输入英文标签" v-model="queryParam.enIconText"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="是否成行"> | |||||
| <j-dict-select-tag placeholder="请选择是否成行" v-model="queryParam.state" dictCode="is_xc"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="活动"> | |||||
| <j-search-select-tag placeholder="请选择活动" v-model="queryParam.activityId" dict="popularize_activity,title,id"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="旅行"> | |||||
| <j-search-select-tag placeholder="请选择旅行" v-model="queryParam.travelId" dict="popularize_travel,title,id"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="类型"> | |||||
| <j-dict-select-tag placeholder="请选择类型" v-model="queryParam.type" dictCode="vo_type"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| </template> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | |||||
| <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | |||||
| <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | |||||
| <a @click="handleToggleSearch" style="margin-left: 8px"> | |||||
| {{ toggleSearchStatus ? '收起' : '展开' }} | |||||
| <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | |||||
| </a> | |||||
| </span> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-form> | |||||
| </div> | |||||
| <!-- 查询区域-END --> | |||||
| <!-- 操作按钮区域 --> | |||||
| <div class="table-operator"> | |||||
| <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> | |||||
| <a-button type="primary" icon="download" @click="handleExportXls('招募信息')">导出</a-button> | |||||
| <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | |||||
| <a-button type="primary" icon="import">导入</a-button> | |||||
| </a-upload> | |||||
| <!-- 高级查询区域 --> | |||||
| <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> | |||||
| <a-dropdown v-if="selectedRowKeys.length > 0"> | |||||
| <a-menu slot="overlay"> | |||||
| <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> | |||||
| </a-menu> | |||||
| <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> | |||||
| </a-dropdown> | |||||
| </div> | |||||
| <!-- table区域-begin --> | |||||
| <div> | |||||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||||
| </div> | |||||
| <a-table | |||||
| ref="table" | |||||
| size="middle" | |||||
| :scroll="{x:true}" | |||||
| bordered | |||||
| rowKey="id" | |||||
| :columns="columns" | |||||
| :dataSource="dataSource" | |||||
| :pagination="ipagination" | |||||
| :loading="loading" | |||||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||||
| class="j-table-force-nowrap" | |||||
| @change="handleTableChange"> | |||||
| <template slot="htmlSlot" slot-scope="text"> | |||||
| <div v-html="text"></div> | |||||
| </template> | |||||
| <template slot="imgSlot" slot-scope="text,record"> | |||||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||||
| </template> | |||||
| <template slot="fileSlot" slot-scope="text"> | |||||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||||
| <a-button | |||||
| v-else | |||||
| :ghost="true" | |||||
| type="primary" | |||||
| icon="download" | |||||
| size="small" | |||||
| @click="downloadFile(text)"> | |||||
| 下载 | |||||
| </a-button> | |||||
| </template> | |||||
| <span slot="action" slot-scope="text, record"> | |||||
| <a @click="handleEdit(record)">编辑</a> | |||||
| <a-divider type="vertical" /> | |||||
| <a-dropdown> | |||||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||||
| <a-menu slot="overlay"> | |||||
| <a-menu-item> | |||||
| <a @click="handleDetail(record)">详情</a> | |||||
| </a-menu-item> | |||||
| <a-menu-item> | |||||
| <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> | |||||
| <a>删除</a> | |||||
| </a-popconfirm> | |||||
| </a-menu-item> | |||||
| </a-menu> | |||||
| </a-dropdown> | |||||
| </span> | |||||
| </a-table> | |||||
| </div> | |||||
| <popularize-recruit-modal ref="modalForm" @ok="modalFormOk"></popularize-recruit-modal> | |||||
| </a-card> | |||||
| </template> | |||||
| <script> | |||||
| import '@/assets/less/TableExpand.less' | |||||
| import { mixinDevice } from '@/utils/mixin' | |||||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||||
| import PopularizeRecruitModal from './modules/PopularizeRecruitModal' | |||||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||||
| export default { | |||||
| name: 'PopularizeRecruitList', | |||||
| mixins:[JeecgListMixin, mixinDevice], | |||||
| components: { | |||||
| PopularizeRecruitModal | |||||
| }, | |||||
| data () { | |||||
| return { | |||||
| description: '招募信息管理页面', | |||||
| // 表头 | |||||
| columns: [ | |||||
| { | |||||
| title: '#', | |||||
| dataIndex: '', | |||||
| key:'rowIndex', | |||||
| width:60, | |||||
| align:"center", | |||||
| customRender:function (t,r,index) { | |||||
| return parseInt(index)+1; | |||||
| } | |||||
| }, | |||||
| { | |||||
| title:'创建人', | |||||
| align:"center", | |||||
| dataIndex: 'createBy' | |||||
| }, | |||||
| { | |||||
| title:'创建日期', | |||||
| align:"center", | |||||
| sorter: true, | |||||
| dataIndex: 'createTime' | |||||
| }, | |||||
| { | |||||
| title:'招募状态', | |||||
| align:"center", | |||||
| dataIndex: 'stateOn_dictText' | |||||
| }, | |||||
| { | |||||
| title:'中文-招募标题', | |||||
| align:"center", | |||||
| dataIndex: 'title' | |||||
| }, | |||||
| { | |||||
| title:'英文-招募标题', | |||||
| align:"center", | |||||
| dataIndex: 'enTitle' | |||||
| }, | |||||
| { | |||||
| title:'图片', | |||||
| align:"center", | |||||
| dataIndex: 'image', | |||||
| scopedSlots: {customRender: 'imgSlot'} | |||||
| }, | |||||
| { | |||||
| title:'时间', | |||||
| align:"center", | |||||
| dataIndex: 'startTime' | |||||
| }, | |||||
| { | |||||
| title:'中文-地址', | |||||
| align:"center", | |||||
| dataIndex: 'address' | |||||
| }, | |||||
| { | |||||
| title:'英文-地址', | |||||
| align:"center", | |||||
| dataIndex: 'enAddress' | |||||
| }, | |||||
| { | |||||
| title:'中文-标签', | |||||
| align:"center", | |||||
| dataIndex: 'iconText' | |||||
| }, | |||||
| { | |||||
| title:'英文标签', | |||||
| align:"center", | |||||
| dataIndex: 'enIconText' | |||||
| }, | |||||
| { | |||||
| title:'是否上架 ', | |||||
| align:"center", | |||||
| dataIndex: 'isOpen', | |||||
| customRender: (text) => (text ? filterMultiDictText(this.dictOptions['isOpen'], text) : ''), | |||||
| }, | |||||
| { | |||||
| title:'是否成行', | |||||
| align:"center", | |||||
| dataIndex: 'state_dictText' | |||||
| }, | |||||
| { | |||||
| title:'参与人数', | |||||
| align:"center", | |||||
| dataIndex: 'num' | |||||
| }, | |||||
| { | |||||
| title:'活动', | |||||
| align:"center", | |||||
| dataIndex: 'activityId_dictText' | |||||
| }, | |||||
| { | |||||
| title:'旅行', | |||||
| align:"center", | |||||
| dataIndex: 'travelId_dictText' | |||||
| }, | |||||
| { | |||||
| title:'类型', | |||||
| align:"center", | |||||
| dataIndex: 'type_dictText' | |||||
| }, | |||||
| { | |||||
| title: '操作', | |||||
| dataIndex: 'action', | |||||
| align:"center", | |||||
| fixed:"right", | |||||
| width:147, | |||||
| scopedSlots: { customRender: 'action' } | |||||
| } | |||||
| ], | |||||
| url: { | |||||
| list: "/popularizeRecruit/popularizeRecruit/list", | |||||
| delete: "/popularizeRecruit/popularizeRecruit/delete", | |||||
| deleteBatch: "/popularizeRecruit/popularizeRecruit/deleteBatch", | |||||
| exportXlsUrl: "/popularizeRecruit/popularizeRecruit/exportXls", | |||||
| importExcelUrl: "popularizeRecruit/popularizeRecruit/importExcel", | |||||
| }, | |||||
| dictOptions:{}, | |||||
| superFieldList:[], | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| this.$set(this.dictOptions, 'isOpen', [{text:'是',value:'Y'},{text:'否',value:'N'}]) | |||||
| this.getSuperFieldList(); | |||||
| }, | |||||
| computed: { | |||||
| importExcelUrl: function(){ | |||||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| initDictConfig(){ | |||||
| }, | |||||
| getSuperFieldList(){ | |||||
| let fieldList=[]; | |||||
| fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''}) | |||||
| fieldList.push({type:'datetime',value:'createTime',text:'创建日期'}) | |||||
| fieldList.push({type:'int',value:'stateOn',text:'招募状态',dictCode:'state_on'}) | |||||
| fieldList.push({type:'string',value:'title',text:'中文-招募标题',dictCode:''}) | |||||
| fieldList.push({type:'string',value:'enTitle',text:'英文-招募标题',dictCode:''}) | |||||
| fieldList.push({type:'Text',value:'image',text:'图片',dictCode:''}) | |||||
| fieldList.push({type:'datetime',value:'startTime',text:'时间'}) | |||||
| fieldList.push({type:'Text',value:'address',text:'中文-地址',dictCode:''}) | |||||
| fieldList.push({type:'Text',value:'enAddress',text:'英文-地址',dictCode:''}) | |||||
| fieldList.push({type:'Text',value:'iconText',text:'中文-标签',dictCode:''}) | |||||
| fieldList.push({type:'Text',value:'enIconText',text:'英文标签',dictCode:''}) | |||||
| fieldList.push({type:'switch',value:'isOpen',text:'是否上架 '}) | |||||
| fieldList.push({type:'int',value:'state',text:'是否成行',dictCode:'is_xc'}) | |||||
| fieldList.push({type:'int',value:'num',text:'参与人数',dictCode:''}) | |||||
| fieldList.push({type:'sel_search',value:'activityId',text:'活动',dictTable:"popularize_activity", dictText:'title', dictCode:'id'}) | |||||
| fieldList.push({type:'sel_search',value:'travelId',text:'旅行',dictTable:"popularize_travel", dictText:'title', dictCode:'id'}) | |||||
| fieldList.push({type:'string',value:'type',text:'类型',dictCode:'vo_type'}) | |||||
| this.superFieldList = fieldList | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped> | |||||
| @import '~@assets/less/common.less'; | |||||
| </style> | |||||
| @ -0,0 +1,246 @@ | |||||
| <template> | |||||
| <a-card :bordered="false"> | |||||
| <!-- 查询区域 --> | |||||
| <div class="table-page-search-wrapper"> | |||||
| <a-form layout="inline" @keyup.enter.native="searchQuery"> | |||||
| <a-row :gutter="24"> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="用户信息"> | |||||
| <j-search-select-tag placeholder="请选择用户信息" v-model="queryParam.userId" dict="han_hai_member,nick_name,id"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="姓名"> | |||||
| <a-input placeholder="请输入姓名" v-model="queryParam.name"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <template v-if="toggleSearchStatus"> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="电话"> | |||||
| <a-input placeholder="请输入电话" v-model="queryParam.phone"></a-input> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="招募项目"> | |||||
| <j-search-select-tag placeholder="请选择招募项目" v-model="queryParam.recruitId" dict="popularize_recruit,title,id"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <a-form-item label="审核状态"> | |||||
| <j-dict-select-tag placeholder="请选择审核状态" v-model="queryParam.state" dictCode="recruit_state"/> | |||||
| </a-form-item> | |||||
| </a-col> | |||||
| </template> | |||||
| <a-col :xl="6" :lg="7" :md="8" :sm="24"> | |||||
| <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | |||||
| <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | |||||
| <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | |||||
| <a @click="handleToggleSearch" style="margin-left: 8px"> | |||||
| {{ toggleSearchStatus ? '收起' : '展开' }} | |||||
| <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | |||||
| </a> | |||||
| </span> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-form> | |||||
| </div> | |||||
| <!-- 查询区域-END --> | |||||
| <!-- 操作按钮区域 --> | |||||
| <div class="table-operator"> | |||||
| <!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>--> | |||||
| <!-- <a-button type="primary" icon="download" @click="handleExportXls('招募报名日志')">导出</a-button>--> | |||||
| <!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">--> | |||||
| <!-- <a-button type="primary" icon="import">导入</a-button>--> | |||||
| <!-- </a-upload>--> | |||||
| <!-- <!– 高级查询区域 –>--> | |||||
| <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> | |||||
| <!-- <a-dropdown v-if="selectedRowKeys.length > 0">--> | |||||
| <!-- <a-menu slot="overlay">--> | |||||
| <!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>--> | |||||
| <!-- </a-menu>--> | |||||
| <!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>--> | |||||
| <!-- </a-dropdown>--> | |||||
| </div> | |||||
| <!-- table区域-begin --> | |||||
| <div> | |||||
| <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | |||||
| <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 | |||||
| <a style="margin-left: 24px" @click="onClearSelected">清空</a> | |||||
| </div> | |||||
| <a-table | |||||
| ref="table" | |||||
| size="middle" | |||||
| :scroll="{x:true}" | |||||
| bordered | |||||
| rowKey="id" | |||||
| :columns="columns" | |||||
| :dataSource="dataSource" | |||||
| :pagination="ipagination" | |||||
| :loading="loading" | |||||
| :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | |||||
| class="j-table-force-nowrap" | |||||
| @change="handleTableChange"> | |||||
| <template slot="htmlSlot" slot-scope="text"> | |||||
| <div v-html="text"></div> | |||||
| </template> | |||||
| <template slot="imgSlot" slot-scope="text,record"> | |||||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | |||||
| <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> | |||||
| </template> | |||||
| <template slot="fileSlot" slot-scope="text"> | |||||
| <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | |||||
| <a-button | |||||
| v-else | |||||
| :ghost="true" | |||||
| type="primary" | |||||
| icon="download" | |||||
| size="small" | |||||
| @click="downloadFile(text)"> | |||||
| 下载 | |||||
| </a-button> | |||||
| </template> | |||||
| <span slot="action" slot-scope="text, record"> | |||||
| <a @click="handleEdit(record)" v-if="record.state==1">审核</a> | |||||
| <a-divider type="vertical" /> | |||||
| <a-dropdown> | |||||
| <a class="ant-dropdown-link">更多 <a-icon type="down" /></a> | |||||
| <a-menu slot="overlay"> | |||||
| <a-menu-item> | |||||
| <a @click="handleDetail(record)" >详情</a> | |||||
| </a-menu-item> | |||||
| <!-- <a-menu-item>--> | |||||
| <!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">--> | |||||
| <!-- <a>删除</a>--> | |||||
| <!-- </a-popconfirm>--> | |||||
| <!-- </a-menu-item>--> | |||||
| </a-menu> | |||||
| </a-dropdown> | |||||
| </span> | |||||
| </a-table> | |||||
| </div> | |||||
| <popularize-recruit-log-modal ref="modalForm" @ok="modalFormOk"></popularize-recruit-log-modal> | |||||
| </a-card> | |||||
| </template> | |||||
| <script> | |||||
| import '@/assets/less/TableExpand.less' | |||||
| import { mixinDevice } from '@/utils/mixin' | |||||
| import { JeecgListMixin } from '@/mixins/JeecgListMixin' | |||||
| import PopularizeRecruitLogModal from './modules/PopularizeRecruitLogModal' | |||||
| import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | |||||
| export default { | |||||
| name: 'PopularizeRecruitLogList', | |||||
| mixins:[JeecgListMixin, mixinDevice], | |||||
| components: { | |||||
| PopularizeRecruitLogModal | |||||
| }, | |||||
| data () { | |||||
| return { | |||||
| description: '招募报名日志管理页面', | |||||
| // 表头 | |||||
| columns: [ | |||||
| { | |||||
| title: '#', | |||||
| dataIndex: '', | |||||
| key:'rowIndex', | |||||
| width:60, | |||||
| align:"center", | |||||
| customRender:function (t,r,index) { | |||||
| return parseInt(index)+1; | |||||
| } | |||||
| }, | |||||
| { | |||||
| title:'用户信息', | |||||
| align:"center", | |||||
| dataIndex: 'userId_dictText' | |||||
| }, | |||||
| { | |||||
| title:'姓名', | |||||
| align:"center", | |||||
| dataIndex: 'name' | |||||
| }, | |||||
| { | |||||
| title:'电话', | |||||
| align:"center", | |||||
| dataIndex: 'phone' | |||||
| }, | |||||
| { | |||||
| title:'头像', | |||||
| align:"center", | |||||
| dataIndex: 'headImage', | |||||
| scopedSlots: {customRender: 'imgSlot'} | |||||
| }, | |||||
| { | |||||
| title:'招募项目', | |||||
| align:"center", | |||||
| dataIndex: 'recruitId_dictText' | |||||
| }, | |||||
| { | |||||
| title:'项目时间', | |||||
| align:"center", | |||||
| dataIndex: 'recruitTime' | |||||
| }, | |||||
| { | |||||
| title:'审核状态', | |||||
| align:"center", | |||||
| dataIndex: 'state_dictText' | |||||
| }, | |||||
| { | |||||
| title: '操作', | |||||
| dataIndex: 'action', | |||||
| align:"center", | |||||
| fixed:"right", | |||||
| width:147, | |||||
| scopedSlots: { customRender: 'action' } | |||||
| } | |||||
| ], | |||||
| url: { | |||||
| list: "/popularizeRecruitLog/popularizeRecruitLog/list", | |||||
| delete: "/popularizeRecruitLog/popularizeRecruitLog/delete", | |||||
| deleteBatch: "/popularizeRecruitLog/popularizeRecruitLog/deleteBatch", | |||||
| exportXlsUrl: "/popularizeRecruitLog/popularizeRecruitLog/exportXls", | |||||
| importExcelUrl: "popularizeRecruitLog/popularizeRecruitLog/importExcel", | |||||
| }, | |||||
| dictOptions:{}, | |||||
| superFieldList:[], | |||||
| } | |||||
| }, | |||||
| created() { | |||||
| this.getSuperFieldList(); | |||||
| }, | |||||
| computed: { | |||||
| importExcelUrl: function(){ | |||||
| return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| initDictConfig(){ | |||||
| }, | |||||
| getSuperFieldList(){ | |||||
| let fieldList=[]; | |||||
| fieldList.push({type:'sel_search',value:'userId',text:'用户信息',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'}) | |||||
| fieldList.push({type:'string',value:'name',text:'姓名',dictCode:''}) | |||||
| fieldList.push({type:'string',value:'phone',text:'电话',dictCode:''}) | |||||
| fieldList.push({type:'Text',value:'headImage',text:'头像',dictCode:''}) | |||||
| fieldList.push({type:'sel_search',value:'recruitId',text:'招募项目',dictTable:"popularize_recruit", dictText:'title', dictCode:'id'}) | |||||
| fieldList.push({type:'datetime',value:'recruitTime',text:'项目时间'}) | |||||
| fieldList.push({type:'int',value:'state',text:'审核状态',dictCode:'recruit_state'}) | |||||
| this.superFieldList = fieldList | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped> | |||||
| @import '~@assets/less/common.less'; | |||||
| </style> | |||||
| @ -0,0 +1,134 @@ | |||||
| <template> | |||||
| <a-spin :spinning="confirmLoading"> | |||||
| <j-form-container :disabled="formDisabled"> | |||||
| <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> | |||||
| <a-row> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="用户信息" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> | |||||
| <j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" disabled/> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name"> | |||||
| <a-input v-model="model.name" placeholder="请输入姓名" disabled></a-input> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone"> | |||||
| <a-input v-model="model.phone" placeholder="请输入电话" disabled ></a-input> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="头像" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headImage"> | |||||
| <j-image-upload isMultiple v-model="model.headImage" disabled></j-image-upload> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="招募项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="recruitId"> | |||||
| <j-search-select-tag v-model="model.recruitId" dict="popularize_recruit,title,id" disabled/> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="项目时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="recruitTime"> | |||||
| <j-date placeholder="请选择项目时间" v-model="model.recruitTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" disabled/> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| <a-col :span="24"> | |||||
| <a-form-model-item label="审核状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="state"> | |||||
| <j-dict-select-tag type="list" v-model="model.state" dictCode="recruit_state" placeholder="请选择审核状态" /> | |||||
| </a-form-model-item> | |||||
| </a-col> | |||||
| </a-row> | |||||
| </a-form-model> | |||||
| </j-form-container> | |||||
| </a-spin> | |||||
| </template> | |||||
| <script> | |||||
| import { httpAction, getAction } from '@/api/manage' | |||||
| import { validateDuplicateValue } from '@/utils/util' | |||||
| export default { | |||||
| name: 'PopularizeRecruitLogForm', | |||||
| components: { | |||||
| }, | |||||
| props: { | |||||
| //表单禁用 | |||||
| disabled: { | |||||
| type: Boolean, | |||||
| default: false, | |||||
| required: false | |||||
| } | |||||
| }, | |||||
| data () { | |||||
| return { | |||||
| model:{ | |||||
| }, | |||||
| labelCol: { | |||||
| xs: { span: 24 }, | |||||
| sm: { span: 5 }, | |||||
| }, | |||||
| wrapperCol: { | |||||
| xs: { span: 24 }, | |||||
| sm: { span: 16 }, | |||||
| }, | |||||
| confirmLoading: false, | |||||
| validatorRules: { | |||||
| }, | |||||
| url: { | |||||
| add: "/popularizeRecruitLog/popularizeRecruitLog/add", | |||||
| edit: "/popularizeRecruitLog/popularizeRecruitLog/edit", | |||||
| queryById: "/popularizeRecruitLog/popularizeRecruitLog/queryById" | |||||
| } | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| formDisabled(){ | |||||
| return this.disabled | |||||
| }, | |||||
| }, | |||||
| created () { | |||||
| //备份model原始值 | |||||
| this.modelDefault = JSON.parse(JSON.stringify(this.model)); | |||||
| }, | |||||
| methods: { | |||||
| add () { | |||||
| this.edit(this.modelDefault); | |||||
| }, | |||||
| edit (record) { | |||||
| this.model = Object.assign({}, record); | |||||
| this.visible = true; | |||||
| }, | |||||
| submitForm () { | |||||
| const that = this; | |||||
| // 触发表单验证 | |||||
| this.$refs.form.validate(valid => { | |||||
| if (valid) { | |||||
| that.confirmLoading = true; | |||||
| let httpurl = ''; | |||||
| let method = ''; | |||||
| if(!this.model.id){ | |||||
| httpurl+=this.url.add; | |||||
| method = 'post'; | |||||
| }else{ | |||||
| httpurl+=this.url.edit; | |||||
| method = 'put'; | |||||
| } | |||||
| httpAction(httpurl,this.model,method).then((res)=>{ | |||||
| if(res.success){ | |||||
| that.$message.success(res.message); | |||||
| that.$emit('ok'); | |||||
| }else{ | |||||
| that.$message.warning(res.message); | |||||
| } | |||||
| }).finally(() => { | |||||
| that.confirmLoading = false; | |||||
| }) | |||||
| } | |||||
| }) | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| @ -0,0 +1,84 @@ | |||||
| <template> | |||||
| <a-drawer | |||||
| :title="title" | |||||
| :width="width" | |||||
| placement="right" | |||||
| :closable="false" | |||||
| @close="close" | |||||
| destroyOnClose | |||||
| :visible="visible"> | |||||
| <popularize-recruit-log-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></popularize-recruit-log-form> | |||||
| <div class="drawer-footer"> | |||||
| <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button> | |||||
| <a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button> | |||||
| </div> | |||||
| </a-drawer> | |||||
| </template> | |||||
| <script> | |||||
| import PopularizeRecruitLogForm from './PopularizeRecruitLogForm' | |||||
| export default { | |||||
| name: 'PopularizeRecruitLogModal', | |||||
| components: { | |||||
| PopularizeRecruitLogForm | |||||
| }, | |||||
| data () { | |||||
| return { | |||||
| title:"操作", | |||||
| width:800, | |||||
| visible: false, | |||||
| disableSubmit: false | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| add () { | |||||
| this.visible=true | |||||
| this.$nextTick(()=>{ | |||||
| this.$refs.realForm.add(); | |||||
| }) | |||||
| }, | |||||
| edit (record) { | |||||
| this.visible=true | |||||
| this.$nextTick(()=>{ | |||||
| this.$refs.realForm.edit(record); | |||||
| }); | |||||
| }, | |||||
| close () { | |||||
| this.$emit('close'); | |||||
| this.visible = false; | |||||
| }, | |||||
| submitCallback(){ | |||||
| this.$emit('ok'); | |||||
| this.visible = false; | |||||
| }, | |||||
| handleOk () { | |||||
| this.$refs.realForm.submitForm(); | |||||
| }, | |||||
| handleCancel () { | |||||
| this.close() | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style lang="less" scoped> | |||||
| /** Button按钮间距 */ | |||||
| .ant-btn { | |||||
| margin-left: 30px; | |||||
| margin-bottom: 30px; | |||||
| float: right; | |||||
| } | |||||
| .drawer-footer{ | |||||
| position: absolute; | |||||
| bottom: -8px; | |||||
| width: 100%; | |||||
| border-top: 1px solid #e8e8e8; | |||||
| padding: 10px 16px; | |||||
| text-align: right; | |||||
| left: 0; | |||||
| background: #fff; | |||||
| border-radius: 0 0 2px 2px; | |||||
| } | |||||
| </style> | |||||
| @ -0,0 +1,60 @@ | |||||
| <template> | |||||
| <j-modal | |||||
| :title="title" | |||||
| :width="width" | |||||
| :visible="visible" | |||||
| switchFullscreen | |||||
| @ok="handleOk" | |||||
| :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" | |||||
| @cancel="handleCancel" | |||||
| cancelText="关闭"> | |||||
| <popularize-recruit-log-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></popularize-recruit-log-form> | |||||
| </j-modal> | |||||
| </template> | |||||
| <script> | |||||
| import PopularizeRecruitLogForm from './PopularizeRecruitLogForm' | |||||
| export default { | |||||
| name: 'PopularizeRecruitLogModal', | |||||
| components: { | |||||
| PopularizeRecruitLogForm | |||||
| }, | |||||
| data () { | |||||
| return { | |||||
| title:'', | |||||
| width:800, | |||||
| visible: false, | |||||
| disableSubmit: false | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| add () { | |||||
| this.visible=true | |||||
| this.$nextTick(()=>{ | |||||
| this.$refs.realForm.add(); | |||||
| }) | |||||
| }, | |||||
| edit (record) { | |||||
| this.visible=true | |||||
| this.$nextTick(()=>{ | |||||
| this.$refs.realForm.edit(record); | |||||
| }) | |||||
| }, | |||||
| close () { | |||||
| this.$emit('close'); | |||||
| this.visible = false; | |||||
| }, | |||||
| handleOk () { | |||||
| this.$refs.realForm.submitForm(); | |||||
| }, | |||||
| submitCallback(){ | |||||
| this.$emit('ok'); | |||||
| this.visible = false; | |||||
| }, | |||||
| handleCancel () { | |||||
| this.close() | |||||
| } | |||||
| } | |||||
| } | |||||
| </script> | |||||