| @ -1,5 +1,5 @@ | |||
| NODE_ENV=production | |||
| VUE_APP_PLATFORM_NAME=陌美人后台管理系统 | |||
| VUE_APP_PLATFORM_NAME=VTribe管理系统 | |||
| # 开启单点登录 | |||
| VUE_APP_SSO=false | |||
| # 开启微应用模式 | |||
| @ -1,4 +1,4 @@ | |||
| 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_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview | |||
| @ -1,292 +1,472 @@ | |||
| <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> | |||
| <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> | |||
| <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> | |||
| @ -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> | |||