admin/.env.development
@@ -2,6 +2,6 @@ NODE_ENV = 'development' VUE_APP_API_URL = 'http://localhost:10010' VUE_APP_API_URL = 'http://192.168.0.103:10010' # VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface' # VUE_APP_API_URL = 'http://192.168.0.103:10010' VUE_APP_API_URL = 'http://10.50.250.178:8088/gateway_interface' s admin/src/api/business/visitPark.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ import request from '../../utils/request' // æ¥è¯¢ export function fetchList (data) { return request.post('/visitsAdmin/cloudService/business/visitPark/page', data, { trim: true }) } // å建 export function create (data) { return request.post('/visitsAdmin/cloudService/business/visitPark/create', data) } export function batchAuth (data) { return request.post('/visitsAdmin/cloudService/business/visitPark/batchAuth', data) } // ä¿®æ¹ export function updateById (data) { return request.post('/visitsAdmin/cloudService/business/visitPark/updateById', data) } // ä¿®æ¹ export function reUpdate (data) { return request.post('/visitsAdmin/cloudService/business/visitPark/reUpdate', data) } // å é¤ export function deleteById (id) { return request.get(`/visitsAdmin/cloudService/business/visitPark/delete/${id}`) } // æ¹éå é¤ export function deleteByIdInBatch (ids) { return request.get('/visitsAdmin/cloudService/business/visitPark/delete/batch', { params: { ids } }) } admin/src/views/business/internalMember.vue
@@ -1,195 +1,187 @@ <template> <TableLayout1 :permissions="['business:member:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="" prop="keyword"> <el-input v-model="searchForm.keyword" placeholder="请è¾å ¥å§å/ææºå·/å·¥å·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="" prop="hasFace"> <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" clearable placeholder="æ¯å¦æäººè¸"> <el-option label="æ " value="0"></el-option> <el-option label="æ" value="1"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="canVisit"> <el-select v-model="searchForm.canVisit" clearable @keypress.enter.native="search" placeholder="å¯æè®¿"> <el-option label="æ¯" value="1"></el-option> <el-option label="å¦" value="0"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="status"> <el-select v-model="searchForm.status" @keypress.enter.native="search" clearable placeholder="ç¶æ"> <el-option label="æ£å¸¸" value="0"></el-option> <el-option label="ç¦ç¨" value="1"></el-option> <el-option label="æé»/å»ç»" value="2"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="hkStatus"> <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" clearable placeholder="æµ·åº·åæ¥ç¶æ"> <el-option label="å¾ åæ¥" value="0"></el-option> <el-option label="忥æå" value="1"></el-option> <el-option label="åæ¥å¤±è´¥" value="2"></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:menu> <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;">ä¼ä¸ç»ç»æ¶æ</div> <div style="width: 100%; height: calc(100vh - 170px); overflow-y: scroll;"> <Tree :list="companyTree" :defaultProps="{name: 'name', status: 'fsStatus', children: 'childList', id: 'id'}" @callback="callback" /> <TableLayout1 :permissions="['business:member:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item label="" prop="keyword"> <el-input v-model="searchForm.keyword" placeholder="请è¾å ¥å§å/ææºå·/å·¥å·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item label="" prop="hasFace"> <el-select v-model="searchForm.hasFace" @keypress.enter.native="search" clearable placeholder="æ¯å¦æäººè¸"> <el-option label="æ " value="0"></el-option> <el-option label="æ" value="1"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="canVisit"> <el-select v-model="searchForm.canVisit" clearable @keypress.enter.native="search" placeholder="å¯æè®¿"> <el-option label="æ¯" value="1"></el-option> <el-option label="å¦" value="0"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="status"> <el-select v-model="searchForm.status" @keypress.enter.native="search" clearable placeholder="ç¶æ"> <el-option label="æ£å¸¸" value="0"></el-option> <el-option label="ç¦ç¨" value="1"></el-option> <el-option label="æé»/å»ç»" value="2"></el-option> </el-select> </el-form-item> <el-form-item label="" prop="hkStatus"> <el-select v-model="searchForm.hkStatus" @keypress.enter.native="search" clearable placeholder="æµ·åº·åæ¥ç¶æ"> <el-option label="å¾ åæ¥" value="0"></el-option> <el-option label="忥æå" value="1"></el-option> <el-option label="åæ¥å¤±è´¥" value="2"></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:menu> <div style="width: 100%; height: 50px; background: rgba(242, 242, 242, 1); line-height: 50px; text-align: center; font-size: 14px;"> ä¼ä¸ç»ç»æ¶æ</div> <div style="width: 100%; height: calc(100vh - 170px); overflow-y: scroll;"> <Tree :list="companyTree" :defaultProps="{ name: 'name', status: 'fsStatus', children: 'childList', id: 'id' }" @callback="callback" /> </div> </template> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:member:delete', 'business:member:create,business:empower:create']"> <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">忥</el-button></li> <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('æ°å»ºåå·¥', null, department, searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»ºåå·¥</el-button></li> <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人åå¯¼å ¥', searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">人åå¯¼å ¥</el-button></li> <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">æ¹éå é¤</el-button></li> <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" icon="el-icon-plus">ä¸åææ</el-button></li> <li style="float: right"> <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search">æ¯å¦å å«ä¸çº§ç»ç»</el-checkbox> </li> </ul> <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="name" label="å§å" min-width="110px"> <template slot-scope="{row}"> <span>{{ row.name }}</span> <span class="zhuguan" v-if="row.headStatus == 1">主管</span> </template> </el-table-column> <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="idcardDecode" label="身份è¯å·" min-width="100px"></el-table-column> <el-table-column label="æ§å«" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.sex == 1">ç·</span> <span v-if="row.sex == 2">女</span> </template> </el-table-column> <el-table-column prop="companyName" label="æå±é¨é¨" min-width="100px"></el-table-column> <el-table-column prop="status" label="ç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.status == 0" style="color: green">æ£å¸¸</span> <span v-if="row.status == 1" style="color: red">ç¦ç¨</span> <span v-if="row.status == 2" style="color: red">æé»/å»ç»</span> </template> </el-table-column> <el-table-column label="é¨é¨ç±»å" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.companyType == 0">ç¸å ³æ¹ç»ç»</span> <span v-if="row.companyType == 1">å é¨ç»ç»</span> </template> </el-table-column> <el-table-column label="å¨èç¶æ"> <template slot-scope="{row}"> <el-switch @change="changeWorkStatus($event, row)" v-model="row.workStatus" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column label="æ¯å¦å¯æè®¿"> <template slot-scope="{row}"> <el-switch @change="changeCanvisit($event, row)" v-model="row.canVisit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0"> </el-switch> </template> </el-table-column> <el-table-column label="æµ·åº·åæ¥ç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.hkStatus == 0" style="color: #435EBE">å¾ åæ¥</span> <span v-if="row.hkStatus == 1" style="color: green">忥æå</span> <span v-if="row.hkStatus == 2" style="color: red">åæ¥å¤±è´¥</span> <span v-if="row.hkStatus == 3" style="color: red">ä¸ç¬¦åä¸åæ¡ä»¶</span> </template> </el-table-column> <el-table-column label="æ¯å¦ææ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.authStatus == 1" style="color: green">æ¯</span> <span v-if="row.authStatus == 0" style="color: red">å¦</span> </template> </el-table-column> <el-table-column label="é¨ç¦è§è²" min-width="100px"> <template slot-scope="{row}"> <span>{{ (row.roleNames && row.roleNames.length) ? row.roleNames.join(',') : '-' }}</span> </template> </el-table-column> <el-table-column label="é¨ç¦æææ" min-width="170px"> <template slot-scope="{row}"> <div v-if="row.roleId != null && row.roleId != ''"> <div v-if="!row.startTime || !row.endTime">é¿æææ</div> <div v-else> <span>èµ·ï¼{{ row.startTime }}</span><br /> <span>æ¢ï¼{{ row.endTime }}</span> </div> </div> </template> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:member:delete','business:member:create,business:empower:create']"> <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">忥</el-button></li> <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('æ°å»ºåå·¥',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">æ°å»ºåå·¥</el-button></li> <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('人åå¯¼å ¥',searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">人åå¯¼å ¥</el-button></li> <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">æ¹éå é¤</el-button></li> <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()" icon="el-icon-plus">ä¸åææ</el-button></li> <li style="float: right"> <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search" >æ¯å¦å å«ä¸çº§ç»ç»</el-checkbox> </li> </ul> <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="name" label="å§å" min-width="110px"> <template slot-scope="{row}"> <span>{{ row.name }}</span> <span class="zhuguan" v-if="row.headStatus == 1">主管</span> </template> </el-table-column> <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="idcardDecode" label="身份è¯å·" min-width="100px"></el-table-column> <el-table-column label="æ§å«" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.sex == 1">ç·</span> <span v-if="row.sex == 2">女</span> </template> </el-table-column> <el-table-column prop="companyName" label="æå±é¨é¨" min-width="100px"></el-table-column> <el-table-column prop="status" label="ç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.status == 0" style="color: green">æ£å¸¸</span> <span v-if="row.status == 1" style="color: red">ç¦ç¨</span> <span v-if="row.status == 2" style="color: red">æé»/å»ç»</span> </template> </el-table-column> <el-table-column label="é¨é¨ç±»å" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.companyType == 0">ç¸å ³æ¹ç»ç»</span> <span v-if="row.companyType == 1">å é¨ç»ç»</span> </template> </el-table-column> <el-table-column label="å¨èç¶æ"> <template slot-scope="{row}"> <el-switch @change="changeWorkStatus($event, row)" v-model="row.workStatus" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column label="æ¯å¦å¯æè®¿"> <template slot-scope="{row}"> <el-switch @change="changeCanvisit($event, row)" v-model="row.canVisit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0"> </el-switch> </template> </el-table-column> <el-table-column label="æµ·åº·åæ¥ç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.hkStatus == 0" style="color: #435EBE">å¾ åæ¥</span> <span v-if="row.hkStatus == 1" style="color: green">忥æå</span> <span v-if="row.hkStatus == 2" style="color: red">åæ¥å¤±è´¥</span> <span v-if="row.hkStatus == 3" style="color: red">ä¸ç¬¦åä¸åæ¡ä»¶</span> </template> </el-table-column> <el-table-column label="æ¯å¦ææ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.authStatus == 1" style="color: green">æ¯</span> <span v-if="row.authStatus == 0" style="color: red">å¦</span> </template> </el-table-column> <el-table-column label="é¨ç¦è§è²" min-width="100px"> <template slot-scope="{row}"> <span>{{(row.roleNames && row.roleNames.length) ?row.roleNames.join(','): '-'}}</span> </template> </el-table-column> <el-table-column label="é¨ç¦æææ" min-width="170px"> <template slot-scope="{row}"> <div v-if="row.roleId !=null && row.roleId != ''"> <div v-if="!row.startTime || !row.endTime">é¿æææ</div> <div v-else> <span>èµ·ï¼{{row.startTime}}</span><br /> <span>æ¢ï¼{{row.endTime}}</span> </div> </div> <div v-else >-</div> </template> </el-table-column> <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> <el-table-column label="å¡ç" min-width="80px"> <template slot-scope="{row}"> <el-button @click="$refs.cardOpeningRecord.open('å¼å¡è®°å½', row.id)" type="text">{{row.memberCardCount || '0'}}</el-button> </template> </el-table-column> <el-table-column prop="editorName" label="æä½äºº" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æåæä½æ¶é´" min-width="150px"></el-table-column> <el-table-column fixed="right" label="人è¸ä¿¡æ¯" min-width="100px"> <template slot-scope="{row}"> <el-image v-if="row.faceImgFull" style="width: 60px; height: 60px" :src="row.faceImgFull" :preview-src-list="[row.faceImgFull]"> </el-image> </template> </el-table-column> <el-table-column v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" label="æä½" min-width="280" fixed="right" > <template slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('ç¼è¾å工信æ¯',row,department)" v-permissions="['business:empower:update']">ç¼è¾</el-button> <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">éæ°ææ</el-button> <el-button type="text" :loading="heading" style="color: red" icon="el-icon-delete" @click="updateHead(row,0)" v-if="row.headStatus ==1 " v-permissions="['business:member:head']">åæ¶ä¸»ç®¡</el-button> <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row,1)" v-if="row.headStatus == 0" v-permissions="['business:member:head']">设为主管</el-button> <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:member:delete']">å é¤</el-button> </template> </el-table-column> </el-table> <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination" > </pagination> <!-- æ¥ç人åå¼å¡è®°å½ --> <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" /> <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" /> <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" /> <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" /> </template> </TableLayout1> <div v-else>-</div> </template> </el-table-column> <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> <el-table-column label="å¡ç" min-width="80px"> <template slot-scope="{row}"> <el-button @click="$refs.cardOpeningRecord.open('å¼å¡è®°å½', row.id)" type="text">{{ row.memberCardCount || '0'}}</el-button> </template> </el-table-column> <el-table-column prop="editorName" label="æä½äºº" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æåæä½æ¶é´" min-width="150px"></el-table-column> <el-table-column fixed="right" label="人è¸ä¿¡æ¯" min-width="100px"> <template slot-scope="{row}"> <el-image v-if="row.faceImgFull" style="width: 60px; height: 60px" :src="row.faceImgFull" :preview-src-list="[row.faceImgFull]"> </el-image> </template> </el-table-column> <el-table-column v-if="containPermissions(['business:member:update', 'business:member:delete', 'business:empower:create'])" label="æä½" min-width="280" fixed="right"> <template slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('ç¼è¾å工信æ¯', row, department)" v-permissions="['business:empower:update']">ç¼è¾</el-button> <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">éæ°ææ</el-button> <el-button type="text" :loading="heading" style="color: red" icon="el-icon-delete" @click="updateHead(row, 0)" v-if="row.headStatus == 1" v-permissions="['business:member:head']">åæ¶ä¸»ç®¡</el-button> <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row, 1)" v-if="row.headStatus == 0" v-permissions="['business:member:head']">设为主管</el-button> <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:member:delete']">å é¤</el-button> </template> </el-table-column> </el-table> <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> </pagination> <!-- æ¥ç人åå¼å¡è®°å½ --> <cardOpeningRecord ref="cardOpeningRecord" @success="handlePageChange" /> <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" /> <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" /> <OperaMemberRoleWindow ref="OperaMemberRoleWindow" @success="handlePageChange" /> </template> </TableLayout1> </template> <script> @@ -206,8 +198,8 @@ export default { name: 'internalMember', extends: BaseTable, components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow ,OperaMemberImportWindow}, data () { components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow, OperaMemberRoleWindow, OperaMemberImportWindow }, data() { return { TreeList: [], // æç´¢ @@ -219,7 +211,7 @@ canVisit: '', keyword: '', type: 2, companyType:1, companyType: 1, erpOrgId: '', companyId: '', hasFace: '' @@ -232,7 +224,7 @@ department: [] } }, created () { created() { this.config({ module: '人åä¿¡æ¯è¡¨', api: '/business/member', @@ -243,7 +235,7 @@ this.getfindCompanyTreePage() }, methods: { startEmpowerBatch () { startEmpowerBatch() { if (this.tableData.selectedRows.length === 0) { this.$tip.warning('请è³å°éæ©ä¸æ¡æ°æ®') return @@ -254,9 +246,9 @@ ids.push(item.id) names.push(item.name) }) this.$refs.OperaMemberRoleWindow.open('å é¨åå·¥ä¸åæé', ids, names,this.searchForm.companyType) this.$refs.OperaMemberRoleWindow.open('å é¨åå·¥ä¸åæé', ids, names, this.searchForm.companyType) }, empower (id) { empower(id) { var that = this this.$confirm('ç¡®å®éæ°ææå?', 'æç¤º', { confirmButtonText: 'ç¡®å®', @@ -273,7 +265,7 @@ }) }, // è·åç»ç»æ getfindCompanyTreePage () { getfindCompanyTreePage() { fetchList() .then(res => { if (res && res.length > 0) { @@ -285,7 +277,7 @@ } }) }, getDepartmentTree (tree) { getDepartmentTree(tree) { if (tree == null) { return [] } @@ -300,16 +292,16 @@ newItem.children = this.getDepartmentTree(newItem.children) } if(newItem.type === this.searchForm.companyType){ if (newItem.type === this.searchForm.companyType) { //newItem.disabled =false }else{ } else { newItem.disabled = true } return newItem }) }, // åæ¥ä¿¡æ¯ async synchronous () { async synchronous() { this.$dialog.actionConfirm('该æä½é触åå ¨åä¿¡æ¯æ´æ°åéæ°ä¸åï¼è¯·è°¨æ æä½', 'æ¨ç¡®è®¤å ¨é忥å é¨äººåä¿¡æ¯åï¼') .then(() => { this.loading = true @@ -325,9 +317,9 @@ this.loading = false }) }) .catch(() => {}) .catch(() => { }) }, async updateHead (row, type) { async updateHead(row, type) { this.$dialog.actionConfirm('æ¨ç¡®è®¤è¿è¡å½åæä½åï¼', 'é¨é¨ä¸»ç®¡è®¾ç½®æä½æç¤º') .then(() => { this.heading = true @@ -342,10 +334,10 @@ .finally(() => { this.heading = false }) .catch(() => {}) .catch(() => { }) }) }, changeWorkStatus (e, row) { changeWorkStatus(e, row) { this.working = true updateWorkStatus({ id: row.id, workStatus: e }) .then(res => { @@ -358,9 +350,9 @@ .finally(() => { this.working = false }) .catch(() => {}) .catch(() => { }) }, changeCanvisit (e, row) { changeCanvisit(e, row) { this.canvisiting = true updateCanVisit({ id: row.id, canVisit: e }) .then(res => { @@ -373,9 +365,9 @@ .finally(() => { this.canvisiting = false }) .catch(() => {}) .catch(() => { }) }, callback (row) { callback(row) { console.log(row) this.searchForm.erpOrgId = row.erpId this.searchForm.companyId = row.id @@ -386,26 +378,30 @@ </script> <style lang="scss" scoped> @import '@/assets/style/variables.scss'; .box { width: 100%; display: flex; align-items: center; .box_menu { width: 100px; height: 100%; flex-shrink: 0; } .box_tab { flex: 1; height: 100%; } } .zhuguan{ color: $primary-color; border: 1px solid $primary-color; padding: 0px 3px; border-radius: 4px; margin-left: 6px; } @import '@/assets/style/variables.scss'; .box { width: 100%; display: flex; align-items: center; .box_menu { width: 100px; height: 100%; flex-shrink: 0; } .box_tab { flex: 1; height: 100%; } } .zhuguan { color: $primary-color; border: 1px solid $primary-color; padding: 0px 3px; border-radius: 4px; margin-left: 6px; } </style> admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -26,7 +26,7 @@ <el-table-column prop="carrierName" label="è¿è¾å ¬å¸" min-width="100" show-overflow-tooltip /> --> <el-table-column prop="driverName" label="驾驶å" min-width="100" show-overflow-tooltip /> <el-table-column prop="drivierPhone" label="èç³»æ¹å¼" min-width="100" show-overflow-tooltip /> <el-table-column prop="confirmTaskDate" label="确认æ¶é´" min-width="150" show-overflow-tooltip /> <!-- <el-table-column prop="confirmTaskDate" label="确认æ¶é´" min-width="150" show-overflow-tooltip /> --> <el-table-column prop="signDate" label="ç¾å°æ¶é´" min-width="150" show-overflow-tooltip /> <el-table-column prop="callDate" label="å«å·æ¶é´" min-width="150" show-overflow-tooltip /> <el-table-column prop="startDate" label="ä½ä¸å¼å§æ¶é´" min-width="150" show-overflow-tooltip /> admin/src/views/platform/components/PlatformQueuing.vue
@@ -96,6 +96,7 @@ platformId: activePlat.id }).then(() => { Message.success('å«å·æå') this.$emit('success') this.getList() }) } else { admin/src/views/platform/platform.vue
@@ -13,10 +13,10 @@ </el-option> </el-select> </el-form-item> <section> <!-- <section> --> <el-button type="primary" @click="search">æç´¢</el-button> <el-button @click="reset">éç½®</el-button> </section> <!-- </section> --> </el-form> </SearchFormCollapse> <!-- è¡¨æ ¼åå页 --> admin/src/views/vehicle/visitPark.vue
@@ -1,18 +1,9 @@ <template> <TableLayout :permissions="['business:member:query']"> <TableLayout :permissions="['business:visitpark:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form-item title="车çå·" prop="carCode"> <el-input v-model="searchForm.carCode" placeholder="车çå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item title="车主å§å/ææºå·" prop="memberName"> <el-input v-model="searchForm.memberName" placeholder="åå·¥å§å/ææºå·" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item title="车主ç»ç»" prop="companyName"> <el-input v-model="searchForm.companyName" placeholder="车主ç»ç»åç§°" @keypress.enter.native="search"></el-input> </el-form-item> <el-form-item title="å车åºåç§°" prop="parksName"> <el-input v-model="searchForm.parksName" placeholder="å车åºåç§°" @keypress.enter.native="search"></el-input> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> @@ -21,10 +12,7 @@ </el-form> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:member:create', 'business:member:delete']"> <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:cars:delete']">å é¤</el-button></li> --> <ul class="toolbar" v-permissions="['business:visitpark:create', 'business:visitpark:delete']"> </ul> <el-table v-loading="isWorking.search" @@ -49,41 +37,18 @@ <div v-if="row.isdeleted==1" style="color: red">å·²å é¤</div> <div v-else style="color: green"> <span v-if="row.hkStatus==0" style="color: #435EBE">å¾ ä¸å</span> <span v-if="row.hkStatus==1" style="color: green">ä¸åæå</span> <span v-if="row.hkStatus==2" style="color: red">ä¸å失败</span> <span v-if="row.hkStatus==1" style="color: green">é¢çº¦æå</span> <span v-if="row.hkStatus==2" style="color: red">é¢çº¦å¤±è´¥</span> <span v-if="row.hkStatus==2" style="color: red">已忶</span> </div> </template> </el-table-column> <el-table-column label="ç¨æ·ç±»å" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.memberType === 0">å³å¡è®¿å®¢</span> <span v-if="row.memberType === 1">æ®é访客</span> <span v-if="row.memberType === 2">å é¨äººå</span> </template> </el-table-column> <el-table-column prop="memberName" label="å§å" min-width="100px"></el-table-column> <el-table-column prop="memberPhone" label="ææºå·" min-width="100px"></el-table-column> <el-table-column prop="companyName" label="ç»ç»" min-width="100px"></el-table-column> <el-table-column prop="remark" label="夿³¨" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.isdeleted !=2">{{row.remark}}</span> </template> </el-table-column> <el-table-column prop="createDate" label="å建æ¶é´" min-width="140px"></el-table-column> <!-- <el-table-column--> <!-- v-if="containPermissions(['business:member:update', 'business:member:delete'])"--> <!-- label="æä½"--> <!-- min-width="120"--> <!-- fixed="right"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!--<!– <el-button type="text" @click="$refs.operaCarsWindow.open('ç¼è¾è½¦è¾ä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:member:update']">ç¼è¾</el-button>–>--> <!-- <el-button type="text" @click="deleteById(row)" v-if="row.isdeleted !=1" icon="el-icon-delete" v-permissions="['business:parkbook:delete']">å é¤</el-button>--> <!--<!–--> <!-- <el-button type="text" @click="reUpdate(row)" v-if="row.isdeleted !=1 && row.hkStatus ==0" icon="el-icon-edit" v-permissions="['business:parkbook:update']">ç«å»ä¸å</el-button>--> <!--–>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> <pagination @size-change="handleSizeChange" @@ -103,9 +68,6 @@ import Pagination from '@/components/common/Pagination' import OperaCarsWindow from '@/components/business/OperaCarsWindow' import { validity } from '@/utils/util' import { sync } from '@/api/business/cars' import { batchLoss } from '@/api/business/memberCard' import {reUpdate} from "@/api/business/parkBook"; export default { name: 'parkBook', extends: BaseTable, @@ -133,13 +95,6 @@ methods: { validity (startTime, endTime) { return validity(startTime, endTime) }, reUpdate (row) { reUpdate({ id: row.id }) .then(res => { this.$message.success('æä½æå') this.search() }) } } } h5/manifest.json
@@ -92,8 +92,8 @@ "/admin_interface" : { // è¿ä¸ªå段åéä¸ä½ é ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å // "target" : "http://172.20.10.7:10010", // 代çæå¡å¨ååæIPå°å "target" : "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å // "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å // "target" : "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å "changeOrigin" : true, // å 许跨å "pathRewrite" : { "^/admin_interface" : "" h5/pages/driver/index.vue
@@ -40,10 +40,11 @@ </view> </view> <view class="sub"> <view class="time" v-if="item.arriveDate">{{ item.arriveDate.slice(5) }}</view> <view class="time" v-if="item.arriveDate && item.type == 4">{{ item.arriveDate.slice(5) }}</view> <view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">{{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view> <view v-if="item.status == 0" class="sub_btn">确认任å¡</view> <view v-if="item.status == 1" class="sub_btn">ç«å³ç¾å°</view> <view v-if="item.status == 2" class="sub_btn">æ¥çæé</view> <view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">æ¥çæé</view> </view> </view> </view> @@ -129,9 +130,11 @@ console.log(item); if(status == 0){ uni.navigateTo({url: '/pages/driver/taskConfirm?id=' + item.id}); }else if(status == 2){ uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id}) }else{ } // else if(status == 2){ // uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id}) // } else{ uni.navigateTo({url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`}); } }, @@ -317,7 +320,8 @@ display: flex; justify-content: space-between; align-items: center; padding: 0 30rpx 24rpx; height: 68rpx; padding: 0 30rpx 0; .time { font-size: 26rpx; color: #999999; h5/pages/driver/login.vue
@@ -38,7 +38,7 @@ return { form: { username: '18056814089', password: '1' password: '123456' }, isShowProtocol: false, countDown: 0 h5/pages/driver/queueUp.vue
@@ -68,7 +68,7 @@ driverLineUpDetail({ mobile: jobId ? '' : uni.getStorageSync('driverInfo').mobile, queryType: jobId ? 1 : 0, jobId: jobId jobId: jobId, }).then(res => { this.platformGroupList = res.data.platformGroupList if (res.data && res.data.platformGroupList && res.data.platformGroupList.length > 0) { h5/pages/driver/taskDetail.vue
@@ -1,485 +1,546 @@ <template> <view class="main_app"> <view class="status_wrap"> <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode="" ></image> <view class="name" v-if="param.status == 1">请ä¸{{ param.arriveDate.slice(0,11) }}ç°åºç¾å°</view> <view class="name" v-if="param.status == 2">åæ¹æéï¼{{param.lineUpNum}}è¾</view> <view class="name" v-if="param.status == 5">æå°ä½ä¸ä¸</view> <view class="name" v-if="param.status == 6">ä½ä¸å·²å®æ</view> <view class="id_card">{{ param.carCodeFront }}</view> <view class="status">{{statusMap[param.status]}}</view> </view> <!-- --> <view class="main_content"> <view class="line"> <view class="label">叿ºå§å</view> <view class="value">{{param.driverName}}</view> </view> <view class="line"> <view class="label">ææºå·</view> <view class="value">{{param.drivierPhone}}</view> </view> <template v-if="param.type != 4"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value" @click="showDetail = true"> <text class="waybill_num">{{param.billCode}}</text> <text class="btn">è¿å详æ </text> </view> </view> <view class="line"> <view class="label">ä½ä¸ç±»å</view> <view class="value">å¸å ¬å¸å¤å车å¸è´§</view> </view> </template> <template v-else> <view class="line"> <view class="label">ååç¼å·</view> <view class="value">{{param.contractNum}}</view> </view> <view class="line"> <view class="label">å ¥åºç±»å</view> <view class="value">{{param.inType == 0 ? 'æ´æç' : 'ä»¶ç'}}</view> </view> <view class="line"> <view class="label">ä½ä¸é</view> <view class="value">{{param.totalNum}}䏿¯</view> </view> </template> <view class="line"> <view class="label">车çç §</view> <view class="value">åï¼{{param.carCodeFront}} | åï¼{{param.carCodeBack}}</view> </view> <!-- --> <view class="line" v-if="param.status == 1"> <view class="label">è·ç¦»ååº</view> <view class="value"> <view class="">{{param.getDistance}}å ¬é</view> <view class="btn" @click="getLocation"> <image class="icon mr6" src="../../static/driver/position.png"></image> éæ°å®ä½ </view> </view> </view> <view class="line" v-if="param.signDate"> <view class="label">ç¾å°æ¶é´</view> <view class="value">{{param.signDate}}</view> </view> <view class="line" v-if="param.startDate"> <view class="label">å¼å§ä½ä¸</view> <view class="value">{{param.startDate}}</view> </view> <view class="line" v-if="param.doneDate"> <view class="label">ä½ä¸å®æ</view> <view class="value">{{param.doneDate}}</view> </view> <view v-if="param.status == 1" class="warnning"> <u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon> 妿 æ³è·åå®ä½ï¼è¯·ç¨å¾®ä¿¡æ«æååºå¤§å±äºç»´ </view> <!-- <view class="line"> <view class="label">ç¾å°æ¶é´</view> <view class="value">2022</view> </view> <view class="line"> <view class="label">å ¥åæ¶é´</view> <view class="value">2022</view> </view> <view class="line"> <view class="label">ä½ä¸å®æ</view> <view class="value">2022</view> </view> --> <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn"> <image :src=" param.getDistance < signDistance ? require('@/static/driver/btn_qiandao@2x.png') : require('@/static/driver/btn_qiandao_fail@2x.png') " class="img" mode="widthFix" ></image> <view class="handle">{{ param.getDistance > signDistance ? 'æ æ³ç¾å°' : 'ç¾å°' }}</view> <view class="time">{{nowTime}}</view> </view> </view> <view class="space"></view> <!-- çå¾ å«å· --> <view v-if="param.status == 2" class="padding_wrap"> <view class="btn check" @click="handleQueue">æ¥çæéæ åµ</view> </view> <!-- modal --> <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false" > <view class="detail_modal"> <view class="modal_title">è¿å详æ </view> <view class="id_card"> <view class="last">ç</view> <view class="name">AD1111</view> </view> <!-- --> <view class="info"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value">2222</view> </view> <view class="line"> <view class="label">驾驶å</view> <view class="value">2222</view> </view> <view class="line"> <view class="label">æ»è¿è¾é</view> <view class="value">2222</view> </view> <view class="line"> <view class="label">è¿è¾å ¬å¸</view> <view class="value">2222</view> </view> </view> <view class="separate"></view> <view class="contract_list"> <view class="title">ååå·ï¼111</view> <view class="address">aadd</view> <view class="list"> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">é»å±±é»é©¬</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">é»å±±é»é©¬</view> </view> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">é»å±±é»é©¬</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">é»å±±é»é©¬</view> </view> </view> </view> </view> </u-popup> </view> </template> <script> import { driverTaskJobDetail, driverSignInTask } from '@/api'; import { statusMap } from '@/utils/config.js'; import dayjs from 'dayjs'; export default { data() { return { statusMap, param: { status: '0' }, jobId: '', // lat: '', // lnt: '', lat: '31.783205', lnt: '117.262635', nowTime: '', signDistance: uni.getStorageSync('driverGuide').signDistance, showDetail: false, } }, onLoad(option) { this.jobId = option.id // if(option.status && option.status == '1'){ // this.getLocation() // }else{ // this.getDetail() // } this.getDetail() setInterval(() => { this.nowTime = dayjs().format('HH:mm:ss') }) }, methods: { handleSignIn() { const { param, signDistance, lat, lnt, jobId } = this if(param.getDistance > signDistance) return driverSignInTask({ jobId, lat, lnt,signType: 0 }).then(res => { this.showToast('ç¾å°æå') this.getDetail() }) }, getDetail() { const { jobId, lat, lnt } = this driverTaskJobDetail({ jobId: this.jobId, lat, lnt }).then(ress => { this.param = { ...ress.data } }) }, getLocation() { const { jobId } = this uni.getLocation({ type: 'wgs84', success: (res) => { this.lat = res.latitude this.lnt = res.longitude this.getDetail() }, fail:(err) => { this.showToast('è·åå®ä½å¤±è´¥') } }) }, handleQueue() { uni.navigateTo({ url:'/pages/driver/queueUp?jobId=' + this.jobId }) }, } } </script> <style lang="scss"> .main_app { padding: 0; .main_content { background: #ffffff; border-radius: 20rpx 20rpx 0rpx 0rpx; padding: 16rpx 30rpx; position: relative; bottom: 32rpx; z-index: 999; .line { padding: 24rpx 0 28rpx; border-bottom: 1rpx solid #e5e5e5; display: flex; .label { width: 150rpx; font-size: 30rpx; color: #666666; } .value { flex: 1; display: flex; justify-content: space-between; align-items: center; font-size: 30rpx; .waybill_num { flex: 1; } .btn { font-size: 28rpx; color: $uni-color-primary; display: flex; align-items: center; .icon{ width: 30rpx; height: 30rpx; } } } } .warnning { display: flex; color: #ed4545; align-items: center; margin: 40rpx 0; } .signIn_wrap { margin: 80rpx auto; width: 260rpx; height: 260rpx; position: relative; color: #fff; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; .handle { font-weight: 600; font-size: 40rpx; line-height: 56rpx; } .time { color: rgba(255, 255, 255, 0.7); } .img { position: absolute; top: 0; left: 0; width: 100%; z-index: -1; } } } .status_wrap { height: 200rpx; width: 100%; padding: 30rpx; position: relative; color: #fff; .bg { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -1; } .name { font-weight: 600; font-size: 40rpx; line-height: 56rpx; margin-bottom: 12rpx; } .id_card { color: rgba(255, 255, 255, 0.8); } .status { position: absolute; right: 0; top: 30rpx; height: 68rpx; line-height: 68rpx; background: #ffffff; padding: 0 24rpx; border-radius: 34rpx 0rpx 0rpx 34rpx; font-size: 26rpx; color: $uni-color-primary; } } .space { width: 750rpx; height: 200rpx; } .padding_wrap { position: fixed; z-index: 999; padding: 0 30rpx 64rpx; bottom: 0; left: 0; width: 100%; display: flex; justify-content: space-between; .btn { height: 96rpx; line-height: 96rpx; text-align: center; width: 100%; font-size: 36rpx; color: #333333; background: #ffffff; border-radius: 48rpx; border: 1rpx solid #999999; } .check { background: $uni-color-primary; border: 1rpx solid $uni-color-primary; color: #fff; } } } .detail_modal { padding: 36rpx 30rpx; .modal_title { font-weight: 600; font-size: 32rpx; color: #222222; line-height: 44rpx; text-align: center; margin-bottom: 36rpx; } .contract_list { .list { background: #f7f7f7; border-radius: 8rpx; padding: 20rpx; .line { display: flex; margin-bottom: 20rpx; &:nth-of-type(3n) { border-top: 1rpx solid #e5e5e5; padding-top: 20rpx; } .label { color: #666666; width: 86rpx; } .value { flex: 1; color: #222222; } } } .title { font-weight: 600; font-size: 30rpx; color: $uni-color-primary; margin-bottom: 12rpx; } .address { font-size: 26rpx; color: #666666; margin-bottom: 20rpx; } } .info { .line { display: flex; margin-bottom: 20rpx; .label { font-size: 30rpx; color: #666666; width: 150rpx; } .value { flex: 1; font-size: 30rpx; color: #222222; } } } .separate { width: 750rpx; height: 2rpx; margin: 30rpx -30rpx; border: 1rpx solid #e5e5e5; } .id_card { border-radius: 8rpx; display: flex; height: 60rpx; line-height: 60rpx; font-weight: 600; font-size: 36rpx; color: #111111; text-align: center; margin-bottom: 30rpx; .last { background: #e9f5f6; width: 60rpx; border-radius: 8rpx 0rpx 0rpx 8rpx; border: 1rpx solid #dfdede; } .name { width: 186rpx; border: 1rpx solid #dfdede; } } } </style> <template> <view class="main_app"> <view class="status_wrap"> <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image> <view class="name" v-if="param.status == 1">请ä¸{{ param.arriveDate.slice(0,11) }}ç°åºç¾å°</view> <view class="name" v-if="param.status == 2">åæ¹æéï¼{{param.lineUpNum}}è¾</view> <view class="name" v-if="param.status == 3">å ¥åçå¾ </view> <view class="name" v-if="param.status == 5">æå°ä½ä¸ä¸</view> <view class="name" v-if="param.status == 6">ä½ä¸å·²å®æ</view> <view class="id_card">{{ param.carCodeFront }}</view> <view class="status">{{statusMap[param.status]}}</view> </view> <!-- --> <view class="main_content"> <view class="line"> <view class="label">叿ºå§å</view> <view class="value">{{param.driverName}}</view> </view> <view class="line"> <view class="label">ææºå·</view> <view class="value">{{param.drivierPhone}}</view> </view> <template v-if="param.type != 4"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value" @click="wmsDetail"> <text class="waybill_num">{{param.billCode}}</text> <text class="btn">è¿å详æ </text> </view> </view> <view class="line"> <view class="label">ä½ä¸ç±»å</view> <view class="value" v-if="param.type == 0">èªæè½¦å¸è´§</view> <view class="value" v-if="param.type == 1">èªæè½¦è£ è´§</view> <view class="value" v-if="param.type == 2">å¤å车å¸è´§</view> <view class="value" v-if="param.type == 3">å¤åè½¦è£ è´§</view> </view> </template> <template v-else> <view class="line"> <view class="label">ååç¼å·</view> <view class="value">{{param.contractNum}}</view> </view> <view class="line"> <view class="label">å ¥åºç±»å</view> <view class="value">{{param.inType == 0 ? 'æ´æç' : 'ä»¶ç'}}</view> </view> <view class="line"> <view class="label">ä½ä¸é</view> <view class="value">{{param.totalNum}}䏿¯</view> </view> </template> <view class="line"> <view class="label">车çç §</view> <view class="value">åï¼{{param.carCodeFront}} | åï¼{{param.carCodeBack}}</view> </view> <!-- --> <view class="line" v-if="param.status == 1"> <view class="label">è·ç¦»ååº</view> <view class="value"> <view class="">{{param.getDistance}}å ¬é</view> <view class="btn" @click="getLocation"> <image class="icon mr6" src="../../static/driver/position.png"></image> éæ°å®ä½ </view> </view> </view> <view class="line" v-if="param.signDate"> <view class="label">ç¾å°æ¶é´</view> <view class="value">{{param.signDate}}</view> </view> <view class="line" v-if="param.startDate"> <view class="label">å¼å§ä½ä¸</view> <view class="value">{{param.startDate}}</view> </view> <view class="line" v-if="param.doneDate"> <view class="label">ä½ä¸å®æ</view> <view class="value">{{param.doneDate}}</view> </view> <view v-if="param.status == 1" class="warnning"> <u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon> 妿 æ³è·åå®ä½ï¼è¯·ç¨å¾®ä¿¡æ«æååºå¤§å±äºç»´ </view> <!-- <view class="line"> <view class="label">ç¾å°æ¶é´</view> <view class="value">2022</view> </view> <view class="line"> <view class="label">å ¥åæ¶é´</view> <view class="value">2022</view> </view> <view class="line"> <view class="label">ä½ä¸å®æ</view> <view class="value">2022</view> </view> --> <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn"> <image :src=" param.getDistance < signDistance ? require('@/static/driver/btn_qiandao@2x.png') : require('@/static/driver/btn_qiandao_fail@2x.png') " class="img" mode="widthFix"></image> <view class="handle">{{ param.getDistance > signDistance ? 'æ æ³ç¾å°' : 'ç¾å°' }}</view> <view class="time">{{nowTime}}</view> </view> </view> <view class="space"></view> <!-- çå¾ å«å· --> <view v-if="param.status == 2" class="padding_wrap"> <view class="btn check" @click="handleQueue">æ¥çæéæ åµ</view> </view> <!-- modal --> <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false"> <view class="detail_modal"> <view class="modal_title">è¿å详æ </view> <view v-if="wmsInfo.plateNumber" class="id_card"> <text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text> <text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text> <text>·</text> <text>{{ wmsInfo.plateNumber.slice(2) }}</text> </view> <!-- --> <view class="info"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value">{{ wmsInfo.carryBillCode }}</view> </view> <view class="line"> <view class="label">驾驶å</view> <view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view> </view> <view class="line"> <view class="label">æ»è¿è¾é</view> <view class="value">{{ wmsInfo.ioQty }}䏿¯</view> </view> <view class="line"> <view class="label">è¿è¾å ¬å¸</view> <view class="value">{{ wmsInfo.carrierName }}</view> </view> </view> <view class="separate"></view> <view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList"> <view class="title">ååå·ï¼{{ item.contractCode }}</view> <view class="address">æ¶è´§å°ï¼{{ item.address }}</view> <view class="list"> <view class="item" v-for="line in item.platformWmsDetailList"> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">{{ line.materialName }}</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">{{ line.ioQty }}</view> </view> </view> </view> </view> </view> </u-popup> </view> </template> <script> import { driverTaskJobDetail, driverSignInTask, wmsJobDetail } from '@/api'; import { statusMap } from '@/utils/config.js'; import dayjs from 'dayjs'; export default { data() { return { statusMap, param: { status: '0' }, jobId: '', // lat: '', // lnt: '', lat: '31.783205', lnt: '117.262635', nowTime: '', wmsInfo: {}, signDistance: uni.getStorageSync('driverGuide').signDistance, showDetail: false, } }, onLoad(option) { this.jobId = option.id // if(option.status && option.status == '1'){ // this.getLocation() // }else{ // this.getDetail() // } this.getDetail() setInterval(() => { this.nowTime = dayjs().format('HH:mm:ss') }) }, methods: { handleSignIn() { const { param, signDistance, lat, lnt, jobId } = this if (param.getDistance > signDistance) return driverSignInTask({ jobId, lat, lnt, signType: 0 }).then(res => { this.showToast('ç¾å°æå') this.getDetail() }) }, getDetail() { const { jobId, lat, lnt } = this driverTaskJobDetail({ jobId: this.jobId, lat, lnt }).then(ress => { this.param = { ...ress.data } }) }, wmsDetail() { const { param } = this wmsJobDetail({ id: param.id }).then(res => { this.wmsInfo = res.data this.showDetail = true }) }, getLocation() { const { jobId } = this uni.getLocation({ type: 'wgs84', success: (res) => { this.lat = res.latitude this.lnt = res.longitude this.getDetail() }, fail: (err) => { this.showToast('è·åå®ä½å¤±è´¥') } }) }, handleQueue() { uni.navigateTo({ url: '/pages/driver/queueUp?jobId=' + this.jobId }) }, } } </script> <style lang="scss"> .main_app { padding: 0; .main_content { background: #ffffff; border-radius: 20rpx 20rpx 0rpx 0rpx; padding: 16rpx 30rpx; position: relative; bottom: 32rpx; z-index: 999; .line { padding: 24rpx 0 28rpx; border-bottom: 1rpx solid #e5e5e5; display: flex; .label { width: 150rpx; font-size: 30rpx; color: #666666; } .value { flex: 1; display: flex; justify-content: space-between; align-items: center; font-size: 30rpx; .waybill_num { flex: 1; } .btn { font-size: 28rpx; color: $uni-color-primary; display: flex; align-items: center; .icon { width: 30rpx; height: 30rpx; } } } } .warnning { display: flex; color: #ed4545; align-items: center; margin: 40rpx 0; } .signIn_wrap { margin: 80rpx auto; width: 260rpx; height: 260rpx; position: relative; color: #fff; z-index: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; .handle { font-weight: 600; font-size: 40rpx; line-height: 56rpx; } .time { color: rgba(255, 255, 255, 0.7); } .img { position: absolute; top: 0; left: 0; width: 100%; z-index: -1; } } } .status_wrap { height: 200rpx; width: 100%; padding: 30rpx; position: relative; color: #fff; .bg { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: -1; } .name { font-weight: 600; font-size: 40rpx; line-height: 56rpx; margin-bottom: 12rpx; } .id_card { color: rgba(255, 255, 255, 0.8); } .status { position: absolute; right: 0; top: 30rpx; height: 68rpx; line-height: 68rpx; background: #ffffff; padding: 0 24rpx; border-radius: 34rpx 0rpx 0rpx 34rpx; font-size: 26rpx; color: $uni-color-primary; } } .space { width: 750rpx; height: 200rpx; } .padding_wrap { position: fixed; z-index: 999; padding: 0 30rpx 64rpx; bottom: 0; left: 0; width: 100%; display: flex; justify-content: space-between; .btn { height: 96rpx; line-height: 96rpx; text-align: center; width: 100%; font-size: 36rpx; color: #333333; background: #ffffff; border-radius: 48rpx; border: 1rpx solid #999999; } .check { background: $uni-color-primary; border: 1rpx solid $uni-color-primary; color: #fff; } } } .detail_modal { padding: 36rpx 30rpx; .modal_title { font-weight: 600; font-size: 32rpx; color: #222222; line-height: 44rpx; text-align: center; margin-bottom: 36rpx; } .contract_list { .list { background: #f7f7f7; border-radius: 8rpx; padding: 20rpx; .line { display: flex; margin-bottom: 20rpx; &:nth-of-type(3n) { border-top: 1rpx solid #e5e5e5; padding-top: 20rpx; } .label { color: #666666; width: 86rpx; } .value { flex: 1; color: #222222; } } } .title { font-weight: 600; font-size: 30rpx; color: $uni-color-primary; margin-bottom: 12rpx; } .address { font-size: 26rpx; color: #666666; margin-bottom: 20rpx; } } .info { .line { display: flex; margin-bottom: 20rpx; .label { font-size: 30rpx; color: #666666; width: 150rpx; } .value { flex: 1; font-size: 30rpx; color: #222222; } } } .separate { width: 750rpx; height: 2rpx; margin: 30rpx -30rpx; border: 1rpx solid #e5e5e5; } .id_card { display: flex; font-weight: 600; height: 60rpx; line-height: 60rpx; font-size: 32rpx; color: #111111; border-radius: 8rpx; border: 1rpx solid #dfdede; width: 220rpx; margin-bottom: 15rpx; text { &:nth-of-type(1) { background: #e9f5f6; padding: 0 12rpx; } &:nth-of-type(2) { padding-left: 10rpx; } &:nth-of-type(4) { padding-right: 6rpx; } } } } </style> pda/api/index.js
@@ -149,4 +149,12 @@ method: 'post', data }) } // wmsè¿å详æ export const wmsJobDetail = (data) => { return http({ url: 'visitsAdmin/cloudService/web/pdaPlatform/wmsJobDetail', method: 'get', data }) } pda/manifest.json
@@ -18,8 +18,8 @@ "proxy": { "/gateway_interface": { // è¿ä¸ªå段åéä¸ä½ é ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å // "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å "target": "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å "target" : "http://10.50.250.178:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å // "target": "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å "changeOrigin": true, // å 许跨å "pathRewrite": { "^/gateway_interface": "" // éåå°åï¼å¦æå®é æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº pda/pages/index/center.vue
@@ -6,7 +6,8 @@ <view class="platform_list"> <view class="item" :class="{ active: item.id === activePlatform.id }" v-for="(item, index) in activePlatformGroup.platformList" :key="index" @click="platformClick(item)"> {{ item.name }}</view> {{ item.name }} </view> </view> <view class="status_wrap"> <view class="status">ä½ä¸ï¼<text>{{ platformTaskInfo.workNum }}</text></view> @@ -26,7 +27,8 @@ <text>{{ item.carCodeFront.slice(2) }}</text> </view> <view class="status" v-if="item.status != 4 && item.status != 5" :class="{ red: item.status == 8 }"> {{ statusMap[item.status] }}</view> {{ statusMap[item.status] }} </view> <view class="status" v-if="item.status == 4">å«å·ä¸ {{ item.callDateTemp }}</view> <view class="status scs" v-if="item.status == 5">å·²ä½ä¸ {{ item.startDateTemp }}</view> </view> @@ -37,7 +39,7 @@ <view class="line" v-else> <text class="label">è¿è¾åå·</text> <text class="value">{{ item.code }}</text> <text class="primaryColor" @click="handleDetail()">è¿å详æ </text> <text class="primaryColor" @click="handleDetail(item)">è¿å详æ </text> </view> <view class="line"> <text class="label">驾驶å</text> @@ -100,8 +102,8 @@ </view> <view class="line" v-else> <text class="label">è¿è¾åå·</text> <text class="value">{{ item.code }}</text> <text class="primaryColor" @click="handleDetail()">è¿å详æ </text> <text class="value">{{ item.billCode }}</text> <text class="primaryColor" @click="handleDetail(item)">è¿å详æ </text> </view> <view class="line"> <text class="label">驾驶å</text> @@ -124,53 +126,48 @@ </view> </u-popup> <!-- è¿å详æ --> <u-popup :show="showDetail" closeable safeAreaInsetTop round="10" @close="showDetail = false"> <view class="PlatformCallModal" :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"> <view class="title">è¿å详æ </view> <view class="platform_ing" style="padding: 0"> <view class="head"> <view class="code"> <text>ç</text> <text>AD1212</text> </view> <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false"> <view class="detail_modal"> <view class="modal_title">è¿å详æ </view> <view v-if="wmsInfo.plateNumber" class="id_card"> <text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text> <text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text> <text>·</text> <text>{{ wmsInfo.plateNumber.slice(2) }}</text> </view> <!-- --> <view class="info"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value">{{ wmsInfo.carryBillCode }}</view> </view> <view class="line"> <text class="label">è¿è¾åå·</text> <text class="value">11111</text> <view class="label">驾驶å</view> <view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view> </view> <view class="line"> <text class="label">驾驶å</text> <text class="value">11111</text> <view class="label">æ»è¿è¾é</view> <view class="value">{{ wmsInfo.ioQty }}䏿¯</view> </view> <view class="line"> <text class="label">æ»è¿è¾é</text> <text class="value">11111</text> </view> <view class="line"> <text class="label">è¿è¾å ¬å¸</text> <text class="value">11111</text> <view class="label">è¿è¾å ¬å¸</view> <view class="value">{{ wmsInfo.carrierName }}</view> </view> </view> <view class="detail_list"> <view class="item"> <view class="orderId">ååç¼å·ï¼{{ 111 }}</view> <view class="addr">æ¶è´§å°ï¼{{ 111 }}</view> <view class="content"> <view class="separate"></view> <view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList"> <view class="title">ååå·ï¼{{ item.contractCode }}</view> <view class="address">æ¶è´§å°ï¼{{ item.address }}</view> <view class="list"> <view class="item" v-for="line in item.platformWmsDetailList"> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">é»å±±</view> <view class="value">{{ line.materialName }}</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">é»å±±</view> </view> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">é»å±±</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">é»å±±</view> <view class="value">{{ line.ioQty }}䏿¯</view> </view> </view> </view> @@ -213,7 +210,8 @@ finishWork, platformMove, platformErr, platformOverNumber platformOverNumber, wmsJobDetail } from '@/api' import { statusMap @@ -245,6 +243,7 @@ transformPlatId: '', // è½¬ç§»è®°å½æå°id transformId: '', // 转移记å½ä»»å¡id wmsInfo: {} } }, onLoad() { @@ -317,8 +316,13 @@ this.activePlatform = item this.getPlatformTask() }, handleDetail() { this.showDetail = true handleDetail(param) { wmsJobDetail({ id: param.id }).then(res => { this.wmsInfo = res.data this.showDetail = true }) }, handleFinish(item) { finishWork({ @@ -362,7 +366,8 @@ this.platformCallPage = 1 if (callType == 1) { // å ¥åå«å· platformInPark({ jobId: item.id jobId: item.id, platformId: activePlatform.id }).then(res => { this.showToast('å«å·æå') this.getPlatformCallList() @@ -848,4 +853,112 @@ } } } .detail_modal { padding: 36rpx 30rpx; .modal_title { font-weight: 600; font-size: 32rpx; color: #222222; line-height: 44rpx; text-align: center; margin-bottom: 36rpx; } .contract_list { .list { background: #f7f7f7; border-radius: 8rpx; padding: 20rpx; .line { display: flex; margin-bottom: 20rpx; &:nth-of-type(3n) { border-top: 1rpx solid #e5e5e5; padding-top: 20rpx; } .label { color: #666666; width: 92rpx; } .value { flex: 1; color: #222222; } } } .title { font-weight: 600; font-size: 30rpx; color: $uni-color-primary; margin-bottom: 12rpx; } .address { font-size: 26rpx; color: #666666; margin-bottom: 20rpx; } } .info { .line { display: flex; margin-bottom: 20rpx; .label { font-size: 30rpx; color: #666666; width: 150rpx; } .value { flex: 1; font-size: 30rpx; color: #222222; } } } .separate { width: 750rpx; height: 2rpx; margin: 30rpx -30rpx; border: 1rpx solid #e5e5e5; } .id_card { display: flex; font-weight: 600; height: 60rpx; line-height: 60rpx; font-size: 32rpx; color: #111111; border-radius: 8rpx; border: 1rpx solid #dfdede; width: 220rpx; margin-bottom: 15rpx; text { &:nth-of-type(1) { background: #e9f5f6; padding: 0 12rpx; } &:nth-of-type(2) { padding-left: 10rpx; } &:nth-of-type(4) { padding-right: 6rpx; } } } } </style> pda/pages/index/queueup.vue
@@ -44,8 +44,8 @@ </view> <view class="line" v-else> <text class="label">è¿è¾åå·</text> <text class="value">{{ item.code }}</text> <text class="primaryColor" @click="handleDetail()">è¿å详æ </text> <text class="value">{{ item.billCode }}</text> <text class="primaryColor" @click="handleDetail(item)">è¿å详æ </text> </view> <view class="line"> <text class="label">驾驶å</text> @@ -70,7 +70,55 @@ <text>ææ ä½ä¸è½¦è¾</text> </view> </view> <u-picker <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false"> <view class="detail_modal"> <view class="modal_title">è¿å详æ </view> <view v-if="wmsInfo.plateNumber" class="id_card"> <text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text> <text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text> <text>·</text> <text>{{ wmsInfo.plateNumber.slice(2) }}</text> </view> <!-- --> <view class="info"> <view class="line"> <view class="label">è¿è¾åå·</view> <view class="value">{{ wmsInfo.carryBillCode }}</view> </view> <view class="line"> <view class="label">驾驶å</view> <view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view> </view> <view class="line"> <view class="label">æ»è¿è¾é</view> <view class="value">{{ wmsInfo.ioQty }}䏿¯</view> </view> <view class="line"> <view class="label">è¿è¾å ¬å¸</view> <view class="value">{{ wmsInfo.carrierName }}</view> </view> </view> <view class="separate"></view> <view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList"> <view class="title">ååå·ï¼{{ item.contractCode }}</view> <view class="address">æ¶è´§å°ï¼{{ item.address }}</view> <view class="list"> <view class="item" v-for="line in item.platformWmsDetailList"> <view class="line"> <view class="label">ç©æï¼</view> <view class="value">{{ line.materialName }}</view> </view> <view class="line"> <view class="label">æ°éï¼</view> <view class="value">{{ line.ioQty }}䏿¯</view> </view> </view> </view> </view> </view> </u-popup> <u-picker :show="showPlatformgroup" keyName="name" :columns="[platformGroupList]" @@ -81,7 +129,7 @@ </template> <script> import { platformLineUpPage, getPlatformGroupList } from '@/api' import { platformLineUpPage, getPlatformGroupList, wmsJobDetail } from '@/api' export default { data() { return { @@ -92,6 +140,7 @@ total: 0, carCodeFront: '', platformGroup: {}, wmsInfo: {}, platformGroupList: [], platformLineUpList: [] } @@ -105,8 +154,11 @@ } }, methods: { handleDetail() { this.showDetail = true handleDetail(param) { wmsJobDetail({ id: param.id }).then(res => { this.wmsInfo = res.data this.showDetail = true }) }, getPlatformGroup() { getPlatformGroupList({ @@ -123,7 +175,7 @@ getList() { const { page, capacity, platformGroup, carCodeFront } = this platformLineUpPage({ capacity, page, model: { platformGroupId: platformGroup.id, callType: 2, carCodeFront } capacity, page, model: { platformGroupId: platformGroup.id, callType: 3, carCodeFront } }).then(res => { if (res.data) { this.platformLineUpList = [...this.platformLineUpList, ...res.data.records || []] @@ -258,4 +310,111 @@ } } } .detail_modal { padding: 36rpx 30rpx; .modal_title { font-weight: 600; font-size: 32rpx; color: #222222; line-height: 44rpx; text-align: center; margin-bottom: 36rpx; } .contract_list { .list { background: #f7f7f7; border-radius: 8rpx; padding: 20rpx; .line { display: flex; margin-bottom: 20rpx; &:nth-of-type(3n) { border-top: 1rpx solid #e5e5e5; padding-top: 20rpx; } .label { color: #666666; width: 86rpx; } .value { flex: 1; color: #222222; } } } .title { font-weight: 600; font-size: 30rpx; color: $uni-color-primary; margin-bottom: 12rpx; } .address { font-size: 26rpx; color: #666666; margin-bottom: 20rpx; } } .info { .line { display: flex; margin-bottom: 20rpx; .label { font-size: 30rpx; color: #666666; width: 150rpx; } .value { flex: 1; font-size: 30rpx; color: #222222; } } } .separate { width: 750rpx; height: 2rpx; margin: 30rpx -30rpx; border: 1rpx solid #e5e5e5; } .id_card { display: flex; font-weight: 600; height: 60rpx; line-height: 60rpx; font-size: 32rpx; color: #111111; border-radius: 8rpx; border: 1rpx solid #dfdede; width: 220rpx; margin-bottom: 15rpx; text { &:nth-of-type(1) { background: #e9f5f6; padding: 0 12rpx; } &:nth-of-type(2) { padding-left: 10rpx; } &:nth-of-type(4) { padding-right: 6rpx; } } } } </style> server/meeting/meeting_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@ spring: profiles: active: test active: pro application: name: meetingAdmin # å®å ¨é ç½® server/meeting/meeting_service/src/main/resources/application-pro.yml
@@ -22,3 +22,33 @@ redirect-uri: / timing: true des_pwd: 123456SDFKDJF ########################微信æ¯ä»ç¸å ³é ç½®######################## wx: pay: appId: wxfab6da18632e28de appSecret: 4ee3b22afa90287834319fc3c1635271 mchId: 1229817002 mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify keyPath: /usr/local/apiclient_cert.p12 tencent: map: remoteHost: https://apis.map.qq.com appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ ## MQTT## mqtt: host: tcp://192.168.10.198:1883 userName: root passWord: 123456 qos: 1 clientId: ClientId_local #ClientId_localå¿ é¡»å¯ä¸ æ¯å¦ä½ å·²ç»å®äºå«ABC é£ä½ å°±ä¸ç´å«ABC å ¶ä»å°æ¹å°±ä¸è¦ä½¿ç¨ABCäº timeout: 10 keepalive: 20 topic1: A/pick/warn/# #ç¬¦å·æ¯ä»£è¡¨æ´ä¸ªwarnä¸é¢çå ¨é¨åä¸»é¢ æ²¡æçè§£çè¯ å¯ä»¥ç¾åº¦ä»ç»çè§£ä¸ä¸ topic2: A/cmd/resp topic3: ABCF topic4: ABCH server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseRequst.java
@@ -2,7 +2,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; @Data public class BaseRequst<T> { server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -49,8 +49,8 @@ @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") private Integer isdeleted; @ApiModelProperty(value = "ç±»å 0宿³°ç©æµè£ è´§ 1宿³°ç©æµå¸è´§ 2å¸å ¬å¸å¸è´§", example = "1") @ExcelColumn(name="ç±»å 0宿³°ç©æµè£ è´§ 1宿³°ç©æµå¸è´§ 2å¸å ¬å¸å¸è´§") @ApiModelProperty(value = "ç±»å 1宿³°ç©æµè£ è´§ 0宿³°ç©æµå¸è´§ 2å¸å ¬å¸å¸è´§", example = "1") @ExcelColumn(name="ç±»å 1宿³°ç©æµè£ è´§ 0宿³°ç©æµå¸è´§ 2å¸å ¬å¸å¸è´§") private Integer type; @ApiModelProperty(value = "å·¥ä½å¼å§æ¶é´") @ExcelColumn(name="å·¥ä½å¼å§æ¶é´") server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java
@@ -317,7 +317,7 @@ } PlatformGroup group = platformGroupMapper.selectOne(new QueryWrapper<PlatformGroup>().lambda() .eq(PlatformGroup::getIsdeleted,Constants.ZERO) .eq(PlatformGroup::getType,type==0?Constants.ONE:Constants.ZERO) .eq(PlatformGroup::getType,type==0?Constants.ZERO:Constants.ONE) .last("limit 1") );//æ¥è¯¢å¸è´§æå°ç»ç¼ç job.setPlatformGroupId(group!=null?group.getId():null); Member driver = memberMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() @@ -332,7 +332,6 @@ job.setCompanyId(driver.getCompanyId()); job.setCompanyNamePath(driver.getCompanyNamePath()); } platformJobMapper.insert(job); } @@ -390,6 +389,7 @@ job.setIocode(param.getIoCode()); job.setCarrierName(param.getCarrierName()); job.setPlateNumber(param.getPlateNumber()); job.setDriverName(param.getDriverName()); job.setType(Constants.ONE); job.setIoCreatedate(param.getCreateDate()); job.setJobId(model.getId());