| | |
| | | VUE_APP_CONTEXT_PATH = './' |
| | | |
| | | # æ¥å£åç¼ |
| | | VUE_APP_API_PREFIX = '/jinkuai_admin' |
| | | VUE_APP_API_PREFIX = '/dianjiang_admin_api' |
| | |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | VUE_APP_API_URL = 'http://localhost:10010' |
| | | VUE_APP_API_URL = 'http://localhost:11010' |
| | |
| | | # ç产ç¯å¢é
ç½® |
| | | NODE_ENV = 'production' |
| | | |
| | | # å
³éDEBUG |
| | | VUE_APP_DEBUG = 'off' |
| | | |
| | | VUE_APP_API_URL = 'https://test.doumee.cn/lianhelihua_interface' |
| | | # å¼åç¯å¢é
ç½® |
| | | NODE_ENV = 'development' |
| | | VUE_APP_API_URL = 'http://192.168.0.7:10010/dianjiang_admin_interface' |
| | |
| | | { |
| | | "name": "jinkuai", |
| | | "name": "zbom_dianjiang", |
| | | "version": "1.0.0", |
| | | "private": true, |
| | | "scripts": { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | width="100%" |
| | | > |
| | | <TableLayout :permissions="['business:cases:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" id="curSearchForm" label-width="100px" inline> |
| | | <el-form-item label="æ é¢" prop="name"> |
| | | <el-input v-model="searchForm.name" style="width: 150px" placeholder="请è¾å
¥æ é¢" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | | placeholder="ç¶æ" |
| | | clearable |
| | | style="width: 150px" |
| | | @change="search" |
| | | > |
| | | <el-option :key="0" :value="0" label="å¯ç¨"></el-option> |
| | | <el-option :key="1" :value="1" label="ç¦ç¨"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <!-- <ul class="toolbar" v-permissions="['business:cases:create', 'business:cases:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaCasesWindow.open('æ°å»ºæ¡ä¾',null)" icon="el-icon-plus" v-permissions="['business:cases:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" icon="el-icon-refresh" v-permissions="['business:cases:create']" @click="$refs.OperaCasesImportWindow.open('æ¡ä¾å¯¼å
¥')">æ¹é导å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cases:delete']">å é¤</el-button></li> |
| | | </ul>--> |
| | | <el-table |
| | | :height="tableHeight" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | :cell-class-name="setRowClassName" |
| | | border |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="name" label="æ¡ä¾æ é¢" min-width="200px"></el-table-column> |
| | | <el-table-column prop="icon" label="æè¡æ¦å¾é" min-width="220px"> |
| | | <template slot-scope="{row}"> |
| | | <div style="display: flex; flex-wrap: wrap;width: 200px;" v-if="row.fileList && row.fileList.length"> |
| | | <div v-for="item in row.fileList" :key="row.id+'_img'+item.id" style=" box-sizing: border-box; margin-right: 10px; " > |
| | | <el-image style="width: 50px; height: 50px;" :src="item.url" |
| | | :preview-src-list="[item.url]"> |
| | | </el-image> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="memberName" label="èå¸" min-width="220px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="orange" style="margin-right: 10px"> {{row.memberCode}}</span> <span>{{row.memberName||''}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="startDate" label="å¼å§æ¥æ" min-width="140px"></el-table-column> |
| | | <el-table-column prop="endDate" label="ç»ææ¥æ" min-width="140px"></el-table-column> |
| | | <el-table-column prop="detail" label="æ¡ä¾æè¿°" min-width="230px" ></el-table-column> |
| | | <el-table-column label="ç¶æ" > |
| | | <template slot-scope="{row}"> |
| | | <span class="orange" v-if="row.status==0" >å¯ç¨</span> |
| | | <span class="red" v-if="row.status==1">ç¦ç¨</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦å é¤" > |
| | | <template slot-scope="{row}"> |
| | | <span class="red" v-if="row.deleted==1" >å·²å é¤</span> |
| | | <span class="green" v-else>æªå é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { findAll as memberList } from '@/api/business/member' |
| | | import {findAll as cateList} from "@/api/business/category"; |
| | | export default { |
| | | name: 'OperaCasesListWindow', |
| | | extends: BaseTable, |
| | | components: { GlobalWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | title: '', |
| | | visible: false, |
| | | tableHeight: null, |
| | | searchForm: { |
| | | containDeleted: 1, |
| | | name: '', |
| | | importId: '', |
| | | status: null |
| | | }, |
| | | memberList: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/cases', |
| | | 'field.id': 'id' |
| | | }) |
| | | window.addEventListener('resize', () => { |
| | | this.getTableHeight() |
| | | }) |
| | | cateList({ |
| | | }).then(res => { |
| | | this.cateList = res |
| | | }) |
| | | }, |
| | | methods: { |
| | | setRowClassName({row, rowIndex}) { |
| | | if (row.deleted == 1) { |
| | | return 'warning-row' |
| | | } |
| | | return '' // 妿ä¸éè¦ä»»ä½ç¹æ®æ ·å¼ï¼è¿å空å符串æ null |
| | | }, |
| | | getTableHeight(){ |
| | | this.$nextTick(() => { |
| | | this.tableHeight = window.innerHeight - 180- document.getElementById('curSearchForm').clientHeight |
| | | }) |
| | | }, |
| | | open (title, memberId, importId) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.getTableHeight() |
| | | this.tableData = { |
| | | // å·²éä¸çæ°æ® |
| | | selectedRows: [], |
| | | // æåºçåæ®µ |
| | | sorts: [], |
| | | // å½åé¡µæ°æ® |
| | | list: [], |
| | | // å页 |
| | | pagination: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | total: 0 |
| | | } |
| | | } |
| | | this.searchForm.importId = importId |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | /deep/ .window__body { |
| | | overflow-y: hidden !important; |
| | | } |
| | | .table-content .table-wrap .el-table{ |
| | | overflow-y: hidden !important; |
| | | } |
| | | </style> |
| | | <style > |
| | | .success-row { |
| | | background: #f0f9eb; /* æµ
绿è²èæ¯ */ |
| | | } |
| | | .warning-row { |
| | | background: rgba(161, 14, 14, 0.35); /* æµ
红è²èæ¯ */ |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | width="100%" |
| | | > |
| | | <TableLayout :permissions="['business:cases:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form class="table-search-formCur" ref="searchForm" id="curSearchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" style="width: 150px" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å·¥å·" prop="code"> |
| | | <el-input v-model="searchForm.code" style="width: 150px" placeholder="请è¾å
¥å·¥å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æåº" prop="zhanquIds"> |
| | | <el-select |
| | | v-model="searchForm.zhanquIds" |
| | | style="width: 150px" |
| | | placeholder="æåº" |
| | | clearable |
| | | @change="search" |
| | | > |
| | | <el-option |
| | | v-for="item in cateList.filter(item=>{return item.type==0})" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="åä¸åç±»å" prop="bustypeIds"> |
| | | <el-select |
| | | v-model="searchForm.bustypeIds" |
| | | style="width: 150px" |
| | | placeholder="åä¸åç±»å" |
| | | clearable |
| | | @change="search" |
| | | > |
| | | <el-option |
| | | v-for="item in cateList.filter(item=>{return item.type==1})" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ
é¿é¢å" prop="fieldIdList"> |
| | | <el-select |
| | | v-model="searchForm.fieldIdList" |
| | | style="width: 150px" |
| | | placeholder="æ
é¿é¢å" |
| | | clearable |
| | | multiple |
| | | @change="search" |
| | | > |
| | | <el-option |
| | | v-for="item in cateList.filter(item=>{return item.type==2})" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èå¸ç级" prop="levelId"> |
| | | <el-select |
| | | v-model="searchForm.levelId" |
| | | style="width: 150px" |
| | | placeholder="èå¸ç级" |
| | | clearable |
| | | @change="search" |
| | | > |
| | | <el-option |
| | | v-for="item in cateList.filter(item=>{return item.type==3})" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | | placeholder="ç¶æ" |
| | | clearable |
| | | style="width: 150px" |
| | | @change="search" |
| | | > |
| | | <el-option :key="0" :value="0" label="å¯ç¨"></el-option> |
| | | <el-option :key="1" :value="1" label="ç¦ç¨"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <!-- <ul class="toolbar" v-permissions="['business:cases:create', 'business:cases:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaCasesWindow.open('æ°å»ºæ¡ä¾',null)" icon="el-icon-plus" v-permissions="['business:cases:create']">æ°å»º</el-button></li> |
| | | <li><el-button type="primary" icon="el-icon-refresh" v-permissions="['business:cases:create']" @click="$refs.OperaCasesImportWindow.open('æ¡ä¾å¯¼å
¥')">æ¹é导å
¥</el-button></li> |
| | | <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cases:delete']">å é¤</el-button></li> |
| | | </ul>--> |
| | | <el-table |
| | | :height="tableHeight" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | border |
| | | :cell-class-name="setRowClassName" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column prop="imgurl" label="å¾ç" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.fullImgurl" style="width: 50px; height: 50px; margin-right: 10px" :src="row.fullImgurl" |
| | | :preview-src-list="[row.fullImgurl]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.sex ==0">ç·</span> |
| | | <span v-if="row.sex ==1">女</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="positon" label="å²ä½" min-width="120px"></el-table-column> |
| | | <el-table-column prop="levelName" label="ç级" min-width="100px"></el-table-column> |
| | | <el-table-column prop="jobYear" label="ä»ä¸å¹´ä»½" min-width="100px"></el-table-column> |
| | | <el-table-column prop="serveNum" label="æå¡ååº" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.serveNum">{{row.serveNum}}个</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="caseNum" label="æ ææ¡ä¾" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span >{{row.caseNum || 0}}个</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="busTypeNames" label="åä¸åç±»å" min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.typeList && row.typeList.length"> |
| | | <div style="display:inline-block;" v-for="(item,index) in row.typeList">{{item.name||''}} <span v-if="index < row.typeList.length-1" style="display:inline-block;padding: 0px 3px;">/</span></div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="areaNames" label="æå¡æåº" min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.zqList && row.zqList.length"> |
| | | <div style="display:inline-block;" v-for="(item,index) in row.zqList">{{item.name||''}} <span v-if="index < row.zqList.length-1" style="display:inline-block;padding: 0px 3px;">/</span></div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="fieldNames" label="æ
é¿é¢å" min-width="200px"> |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.fieldList && row.fieldList.length"> |
| | | <div style="display:inline-block;" v-for="(item,index) in row.fieldList">{{item.name||''}} <span v-if="index < row.fieldList.length-1" style="display:inline-block;padding: 0px 3px;">/</span></div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="fee" label="è´¹ç¨æ å(å
/å¨)" min-width="130px"></el-table-column> |
| | | <el-table-column label="ç¶æ" > |
| | | <template slot-scope="{row}"> |
| | | <span class="orange" v-if="row.status==0" >å¯ç¨</span> |
| | | <span class="red" v-if="row.status==1">ç¦ç¨</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ¯å¦å é¤" > |
| | | <template slot-scope="{row}"> |
| | | <span class="red" v-if="row.deleted==1" >å·²å é¤</span> |
| | | <span class="green" v-else>æªå é¤</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | <template v-slot:footer> |
| | | <el-button @click="visible=false">è¿å</el-button> |
| | | </template> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { findAll as memberList } from '@/api/business/member' |
| | | export default { |
| | | name: 'OperaMemberListWindow', |
| | | extends: BaseTable, |
| | | components: { GlobalWindow, TableLayout, Pagination }, |
| | | data () { |
| | | return { |
| | | title: '', |
| | | visible: false, |
| | | tableHeight: null, |
| | | searchForm: { |
| | | name: '', |
| | | containDeleted: 1, |
| | | queryFlag: 1, |
| | | code: '', |
| | | status: null, |
| | | levelId: null, |
| | | fieldIdList: [], |
| | | zhanquIds: null, |
| | | bustypeIds: null, |
| | | type: 0 |
| | | }, |
| | | cateList: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/member', |
| | | 'field.id': 'id' |
| | | }) |
| | | window.addEventListener('resize', () => { |
| | | this.getTableHeight() |
| | | }) |
| | | }, |
| | | methods: { |
| | | getTableHeight () { |
| | | this.$nextTick(() => { |
| | | this.tableHeight = window.innerHeight - 180- document.getElementById('curSearchForm').clientHeight |
| | | }) |
| | | |
| | | }, |
| | | loadMemberList () { |
| | | memberList({ |
| | | }).then(res => { |
| | | this.memberList = res |
| | | }) |
| | | }, |
| | | setRowClassName({row, rowIndex}) { |
| | | if (row.deleted == 1) { |
| | | return 'warning-row' |
| | | } |
| | | return '' // 妿ä¸éè¦ä»»ä½ç¹æ®æ ·å¼ï¼è¿å空å符串æ null |
| | | }, |
| | | open (title, importId) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.getTableHeight() |
| | | this.tableData = { |
| | | // å·²éä¸çæ°æ® |
| | | selectedRows: [], |
| | | // æåºçåæ®µ |
| | | sorts: [], |
| | | // å½åé¡µæ°æ® |
| | | list: [], |
| | | // å页 |
| | | pagination: { |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | total: 0 |
| | | } |
| | | } |
| | | this.searchForm.importId = importId |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | /deep/ .window__body { |
| | | overflow-y: hidden !important; |
| | | } |
| | | .table-content .table-wrap .el-table{ |
| | | overflow-y: hidden !important; |
| | | } |
| | | </style> |
| | | <style > |
| | | .success-row { |
| | | background: #f0f9eb; /* æµ
绿è²èæ¯ */ |
| | | } |
| | | .warning-row { |
| | | background: rgba(161, 14, 14, 0.35); /* æµ
红è²èæ¯ */ |
| | | } |
| | | </style> |
| | |
| | | $input-height: 32px; |
| | | .global-window { |
| | | // 头鍿 é¢ |
| | | left: 218px !important; |
| | | /deep/ .el-drawer__header { |
| | | padding: 0 10px 0 0; |
| | | line-height: 40px; |
| | |
| | | <el-table-column prop="title" label="å
容" min-width="200px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="ä¸å¡ç±»å"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.type ==0 " >èå¸å¯¼å
¥</span> |
| | | <span v-if="row.type == 1" >æ¡ä¾å¯¼å
¥</span> |
| | | <span v-if="row.type ==0 " class="green">èå¸å¯¼å
¥</span> |
| | | <span v-if="row.type == 1" class="orange" >æ¡ä¾å¯¼å
¥</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç¶æ"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="totalNum" label="æ»è®°å½æ°" min-width="100px"></el-table-column> |
| | | <el-table-column prop="doneNum" label="æåå½å
¥æ°é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="doneNum" label="æåå½å
¥æ°é" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status == 1" class="red">{{row.ingNum}}</span> |
| | | <span v-else>{{ row.doneNum }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="errorNum" label="å½å
¥å¤±è´¥æ°é" min-width="100px"></el-table-column> |
| | | <el-table-column prop="updateUserName" label="æä½äºº" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createTime" label="导å
¥æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="updateTime" label="æè¿æä½æ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" v-if="row.type ==1" style="color: orange" @click="$refs.OperaCasesListWindow.open('æ¥ç导å
¥æ¡ä¾ã'+row.title+'ã',null, row.id)" icon="el-icon-open">æ¥ç导å
¥æ¡ä¾</el-button> |
| | | <el-button type="text" v-if="row.type ==0" style="color: green" @click="$refs.OperaMemberListWindow.open('æ¥ç导å
¥æ¡ä¾ã'+row.title+'ã', row.id)" icon="el-icon-open">æ¥ç导å
¥èå¸</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaCategoryWindow ref="operaCategoryWindow" @success="handlePageChange"/> |
| | | <OperaMemberListWindow ref="OperaMemberListWindow" @success="handlePageChange"/> |
| | | <OperaCasesListWindow ref="OperaCasesListWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaCategoryWindow from '@/components/business/OperaCategoryWindow' |
| | | import OperaMemberListWindow from '@/components/business/OperaMemberListWindow' |
| | | import OperaCasesListWindow from '@/components/business/OperaCasesListWindow' |
| | | export default { |
| | | name: 'Category', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCategoryWindow }, |
| | | components: { TableLayout, Pagination, OperaCasesListWindow,OperaMemberListWindow}, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | |
| | | :label="item.name" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select |
| | | v-model="searchForm.status" |
| | |
| | | <el-option :key="1" :value="1" label="ç¦ç¨"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | |
| | | <el-table-column |
| | | v-if="containPermissions(['business:member:update', 'business:member:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | min-width="180" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaMemberWindow.open('ç¼è¾èå¸', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:member:update']">ç¼è¾</el-button> |
| | | <el-button type="text" @click="$refs.OperaCasesListWindow.open('æ¥çè叿¡ä¾ã'+row.name+'ã', row.id)" icon="el-icon-open">æ¡ä¾</el-button> |
| | | <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:member:delete']">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/> |
| | | <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" /> |
| | | <OperaCasesListWindow ref="OperaCasesListWindow" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaMemberWindow from '@/components/business/OperaMemberWindow' |
| | | import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow' |
| | | import OperaCasesListWindow from '@/components/business/OperaCasesListWindow' |
| | | import { findAll as cateList } from '@/api/business/category' |
| | | export default { |
| | | name: 'Category', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaMemberWindow ,OperaMemberImportWindow}, |
| | | components: { TableLayout, Pagination, OperaMemberWindow ,OperaMemberImportWindow,OperaCasesListWindow}, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.init; |
| | | |
| | | import com.doumee.service.business.ImportRecordService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | |
| | | @Service |
| | | @Slf4j |
| | | public class InitService { |
| | | |
| | | @Autowired |
| | | private ImportRecordService importRecordService; |
| | | @PostConstruct |
| | | public void initImportTaskStatus() { |
| | | importRecordService.clearImporTask(); |
| | | } |
| | | } |
| | |
| | | # 端å£å¨é
ç½® |
| | | server: |
| | | port: 10010 |
| | | port: 11010 |
| | | # 项ç®ä¿¡æ¯é
ç½® |
| | | project: |
| | | name: å¿é¦-ç¹å° |
| | |
| | | @TableField(exist = false) |
| | | private List<byte[]> imgdataList; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å
å«å·²å é¤ 0ä¸å
å« 1å
å«ï¼", example = "1") |
| | | @TableField(exist = false) |
| | | private int containDeleted; |
| | | |
| | | } |
| | | |
| | |
| | | @ApiModelProperty(value = "ç»ææ¶é´ï¼", example = "1") |
| | | @TableField(exist = false) |
| | | private Date endtime; |
| | | @ApiModelProperty(value = "è¿è¡ä¸å·²å¤ççæ°éï¼", example = "1") |
| | | @TableField(exist = false) |
| | | private Integer ingNum; |
| | | } |
| | |
| | | @ApiModelProperty(value = "æåæä½äººåï¼", example = "1") |
| | | @TableField(exist = false) |
| | | private String updateUserName; |
| | | @ApiModelProperty(value = "æ¯å¦å
å«å·²å é¤ 0ä¸å
å« 1å
å«ï¼", example = "1") |
| | | @TableField(exist = false) |
| | | private int containDeleted; |
| | | } |
| | |
| | | ImportRecord importBatch(MultipartFile file, int type ); |
| | | |
| | | void dealImporTask(ImportRecord importRecord); |
| | | void clearImporTask(); |
| | | } |
| | |
| | | public PageData<Cases> findPage(PageWrap<Cases> pageWrap) { |
| | | IPage<Cases> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Cases> queryWrapper = new MPJLambdaWrapper<>(); |
| | | pageWrap.getModel().setDeleted(Constants.ZERO); |
| | | queryWrapper.selectAll(Cases.class) |
| | | .selectAs(Member::getName,Cases::getMemberName) |
| | | .selectAs(Member::getCode,Cases::getMemberCode) |
| | |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Cases::getUpdateUser) |
| | | .leftJoin(Member.class,Member::getId,Cases::getMemberId); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.eq(pageWrap.getModel().getContainDeleted()!=1,Cases::getDeleted, Constants.ZERO); |
| | | queryWrapper.eq(pageWrap.getModel().getId() != null,Cases::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.eq(pageWrap.getModel().getDeleted() != null,Cases::getDeleted, pageWrap.getModel().getDeleted()); |
| | | queryWrapper.eq(pageWrap.getModel().getCreateUser() != null,Cases::getCreateUser, pageWrap.getModel().getCreateUser()); |
| | | queryWrapper.eq(pageWrap.getModel().getUpdateUser() != null,Cases::getUpdateUser, pageWrap.getModel().getUpdateUser()); |
| | | queryWrapper.eq(pageWrap.getModel().getRemark() != null,Cases::getRemark, pageWrap.getModel().getRemark()); |
| | |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import javax.annotation.Resource; |
| | | import java.io.ByteArrayInputStream; |
| | | import java.math.BigDecimal; |
| | |
| | | MPJLambdaWrapper<ImportRecord> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.selectAll(ImportRecord.class ) |
| | | .selectAs(SystemUser::getRealname,ImportRecord::getUpdateUserName) |
| | | .select( "(select count(c.id) from cases c where c.import_id= t.id)",ImportRecord::getIngNum) |
| | | .selectAs(SystemUser::getRealname,ImportRecord::getUpdateUserName) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,ImportRecord::getUpdateUser); |
| | | queryWrapper.eq(pageWrap.getModel().getId() != null,ImportRecord::getId, pageWrap.getModel().getId()); |
| | | queryWrapper.eq(pageWrap.getModel().getDeleted() != null,ImportRecord::getDeleted, pageWrap.getModel().getDeleted()); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 弿¥æ§è¡æä»¶ä»»å¡ |
| | | */ |
| | | @Override |
| | | public void clearImporTask(){ |
| | | try { |
| | | List<ImportRecord> records = importRecordMapper.selectList(new QueryWrapper<ImportRecord>() |
| | | .select("id,total_num,(select count(c.id) from cases c where c.import_id= import_record.id) as doneNum") |
| | | .lambda() |
| | | .eq(ImportRecord::getDetail,Constants.ZERO) |
| | | .ne(ImportRecord::getStatus,Constants.TWO) |
| | | ); |
| | | for(ImportRecord importRecord : records){ |
| | | importRecord.setErrorNum(Constants.formatIntegerNum(importRecord.getTotalNum()- Constants.formatIntegerNum(importRecord.getDoneNum()))); |
| | | importRecord.setStatus(Constants.TWO); |
| | | importRecord.setUpdateTime(new Date()); |
| | | importRecord.setRemark("任塿§è¡ä¸æï¼å¼ºå¶è®¾ç½®ä»»å¡ç¶æ"); |
| | | importRecordMapper.updateById(importRecord); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | redisTemplate.delete(Constants.RedisKeys.IMPORTING_RECORD); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * å¤çæ¡ä¾å¯¼å
¥ä»»å¡ |
| | | * @param importRecord |
| | | */ |
| | |
| | | .apply(Objects.nonNull(model.getBustypeIds())," find_in_set( '["+model.getBustypeIds()+"]', t.BUSTYPE_IDS ) ") |
| | | .apply(Objects.nonNull(model.getZhanquIds())," find_in_set( '["+model.getZhanquIds()+"]', t.ZHANQU_IDS ) ") |
| | | .like(StringUtils.isNotBlank(model.getName()),Member::getName, model.getName()) |
| | | .eq(Objects.nonNull(model.getImportId()),Member::getImportId, model.getImportId()) |
| | | .eq(Objects.nonNull(model.getStatus()),Member::getStatus, model.getStatus()) |
| | | .eq(Member::getDeleted, Constants.ZERO) |
| | | .eq(model.getContainDeleted()!=1,Member::getDeleted, Constants.ZERO) |
| | | .in(Objects.nonNull(model.getLevelId()),Category::getId, model.getLevelId()) |
| | | .eq(Objects.nonNull(model.getCode()),Member::getCode, model.getCode()) |
| | | .orderByDesc(Objects.nonNull(model.getOrderByType())&&Constants.equalsInteger(model.getOrderByType(), Constants.ZERO),Member::getFee) |