From b33b256a0e996df1e8ca1859ba538fe3ea085509 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期三, 25 九月 2024 17:44:13 +0800 Subject: [PATCH] ll --- pda/api/index.js | 8 h5/pages/driver/index.vue | 16 admin/src/views/platform/components/PlatformQueuing.vue | 1 admin/src/views/platform/LogisticsRecord/operationCity.vue | 2 admin/src/views/platform/platform.vue | 4 h5/pages/driver/queueUp.vue | 2 h5/pages/driver/taskDetail.vue | 1031 +++++++++++++++++--------------- pda/pages/index/queueup.vue | 173 +++++ pda/pages/index/center.vue | 199 ++++- h5/pages/driver/login.vue | 2 h5/manifest.json | 4 pda/manifest.json | 4 admin/.env.development | 4 admin/src/views/business/internalMember.vue | 460 +++++++------- 14 files changed, 1,126 insertions(+), 784 deletions(-) diff --git a/admin/.env.development b/admin/.env.development index 0778f82..aeb8ba3 100644 --- a/admin/.env.development +++ b/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 \ No newline at end of file diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue index 8ca8ae6..f0568a1 100644 --- a/admin/src/views/business/internalMember.vue +++ b/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="姝e父" 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="姝e父" 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">姝e父</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">姝e父</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> diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue index a2017c6..3dceb78 100644 --- a/admin/src/views/platform/LogisticsRecord/operationCity.vue +++ b/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 /> diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue index c175a11..973220c 100644 --- a/admin/src/views/platform/components/PlatformQueuing.vue +++ b/admin/src/views/platform/components/PlatformQueuing.vue @@ -96,6 +96,7 @@ platformId: activePlat.id }).then(() => { Message.success('鍙彿鎴愬姛') + this.$emit('success') this.getList() }) } else { diff --git a/admin/src/views/platform/platform.vue b/admin/src/views/platform/platform.vue index d344856..5f097ce 100644 --- a/admin/src/views/platform/platform.vue +++ b/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> <!-- 琛ㄦ牸鍜屽垎椤� --> diff --git a/h5/manifest.json b/h5/manifest.json index 8563963..c43abaf 100644 --- a/h5/manifest.json +++ b/h5/manifest.json @@ -92,8 +92,8 @@ "/admin_interface" : { // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃 // "target" : "http://172.20.10.7:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 - "target" : "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 - // "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + // "target" : "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 "changeOrigin" : true, // 鍏佽璺ㄥ煙 "pathRewrite" : { "^/admin_interface" : "" diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue index f8350f4..7c535b4 100644 --- a/h5/pages/driver/index.vue +++ b/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; diff --git a/h5/pages/driver/login.vue b/h5/pages/driver/login.vue index 7671175..ef753f1 100644 --- a/h5/pages/driver/login.vue +++ b/h5/pages/driver/login.vue @@ -38,7 +38,7 @@ return { form: { username: '18056814089', - password: '1' + password: '123456' }, isShowProtocol: false, countDown: 0 diff --git a/h5/pages/driver/queueUp.vue b/h5/pages/driver/queueUp.vue index eed4c69..b0cb1a9 100644 --- a/h5/pages/driver/queueUp.vue +++ b/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) { diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue index 9d23139..8be07c0 100644 --- a/h5/pages/driver/taskDetail.vue +++ b/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> \ No newline at end of file diff --git a/pda/api/index.js b/pda/api/index.js index a8ee63f..c7c9064 100644 --- a/pda/api/index.js +++ b/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 + }) } \ No newline at end of file diff --git a/pda/manifest.json b/pda/manifest.json index c6e620f..efecef9 100644 --- a/pda/manifest.json +++ b/pda/manifest.json @@ -18,8 +18,8 @@ "proxy": { "/gateway_interface": { // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃 - // "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 - "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + "target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 + // "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 "changeOrigin": true, // 鍏佽璺ㄥ煙 "pathRewrite": { "^/gateway_interface": "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜� diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue index a528592..6d0733b 100644 --- a/pda/pages/index/center.vue +++ b/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> \ No newline at end of file diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue index a62ada9..dcbedc5 100644 --- a/pda/pages/index/queueup.vue +++ b/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> \ No newline at end of file -- Gitblit v1.9.3