From d39cce94b1e2ac194fbf8c76b4925c7dcb41160e Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期五, 06 九月 2024 18:20:45 +0800 Subject: [PATCH] ll --- admin/src/views/platform/LogisticsRecord/subscribe.vue | 298 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 196 insertions(+), 102 deletions(-) diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue index 92cba1b..3aa5208 100644 --- a/admin/src/views/platform/LogisticsRecord/subscribe.vue +++ b/admin/src/views/platform/LogisticsRecord/subscribe.vue @@ -1,133 +1,160 @@ <template> <div class="main_app"> - <QueryForm - v-model="filters" - :query-form-config="queryFormConfig" - @handleQuery="getList(1)" - @clear="clear" - /> - <el-table v-loading="loading" :data="list" stripe> - <el-table-column - prop="name" - label="杞︾墝鍓嶇収鍙�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="杞︾墝鍚庣収鍙�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="椹鹃┒鍛�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鑱旂郴鏂瑰紡" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鍚堝悓鍗曞彿" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鍏ュ簱绫诲瀷" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="棰勭害鍒板満鏃堕棿" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="瀹℃壒缁撴灉" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="瀹℃壒浜�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鎿嶄綔鏃堕棿" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鎿嶄綔" - min-width="80" - align="center" - show-overflow-tooltip - > + <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> + <div> + <el-button type="primary" @click="handleEdit" icon="el-icon-plus" + v-permissions="['business:platformbooks:create']">鏂板缓</el-button> + <el-button type="primary" @click="handleEx" v-permissions="['business:platformbooks:exportExcel']">瀵煎嚭</el-button> + </div> + <el-table class="mb20" v-loading="loading" :data="list" stripe> + <el-table-column prop="contractNum" label="鍚堝悓鍗曞彿" min-width="100" show-overflow-tooltip /> + <el-table-column prop="inReason" label="鍏ュ洯鍘熷洜" min-width="100" show-overflow-tooltip /> + <el-table-column prop="totalNum" label="鎬讳綔涓氶噺(涓囨敮)" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeFront" label="杞︾墝鍓嶇収鍙�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="carCodeBack" label="杞︾墝鍚庣収鍙�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="driverName" label="椹鹃┒鍛�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="driverPhone" label="鑱旂郴鏂瑰紡" min-width="100" show-overflow-tooltip /> + <el-table-column prop="inTypeTemp" label="鍏ュ簱绫诲瀷" min-width="100" show-overflow-tooltip /> + <el-table-column prop="arriveDate" label="棰勭害鍒板満鏃堕棿" min-width="150" show-overflow-tooltip /> + <el-table-column prop="name" label="瀹℃壒缁撴灉" min-width="100" show-overflow-tooltip> <template v-slot="scope"> - <el-button type="text" @click="handleEdit(scope.row)">棰勭害璇︽儏</el-button> + <span v-if="scope.row.status == '0'">寰呭鎵�</span> + <span v-if="scope.row.status == '1'">瀹℃壒涓�</span> + <span v-if="scope.row.status == '2'">瀹℃壒閫氳繃</span> + <span v-if="scope.row.status == '3'">瀹℃壒椹冲洖</span> + <span v-if="scope.row.status == '4'">宸插彇娑�</span> + </template> + </el-table-column> + <el-table-column prop="name" label="褰撳墠瀹℃壒浜�" min-width="100" show-overflow-tooltip /> + <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150" show-overflow-tooltip /> + <el-table-column prop="name" label="鎿嶄綔" min-width="120" align="center" fixed="right" show-overflow-tooltip> + <template v-slot="scope"> + <el-button type="text" v-permissions="['business:platformbooks:detail']" + @click="handleDetail(scope.row)">棰勭害璇︽儏</el-button> </template> </el-table-column> </el-table> - <pagination - @size-change="handleSizeChange" - @current-change="getList" - :pagination="pagination" - /> + <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> + <!-- --> + <GlobalWindow :title="param.id ? '缂栬緫鐗╂祦杞﹂绾�' : '鏂板鐗╂祦杞﹂绾�'" center :visible.sync="isShowEdit" width="600px" + :confirm-working="subLoading" @confirm="onSubmit"> + <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px"> + <div class="param_title">杩愯緭淇℃伅</div> + <el-form-item label="鍏ュ洯鍘熷洜" prop="inReason"> + <el-select v-model="param.inReason" class="w300" placeholder="璇烽�夋嫨"> + <el-option v-for="item in reasonList" :key="item.id" :label="item.reason" :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍚堝悓鍙�" prop="contractNum"> + <el-input v-model="param.contractNum" class="w300" placeholder="璇疯緭鍏ュ悎鍚屽彿"></el-input> + </el-form-item> + <el-form-item label="鍒板満鏃堕棿" prop="arriveDate"> + <el-date-picker v-model="param.arriveDate" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" class="w300" + placeholder="璇烽�夋嫨"> + </el-date-picker> + </el-form-item> + <el-form-item label="鍏ュ簱绫诲瀷" prop="inType"> + <div> + <el-radio v-model="param.inType" :label="0">鏁翠欢鐩�</el-radio> + <el-radio v-model="param.inType" :label="1">浠剁儫</el-radio> + </div> + </el-form-item> + <el-form-item label="鎬昏繍杈撻噺" prop="totalNum"> + <el-input v-model="param.totalNum" placeholder="璇疯緭鍏�" class="w300"></el-input> + <span class="ml10">涓囨敮</span> + </el-form-item> + <el-form-item label="鍑嗚繍璇佺収鐗�" prop="transportImgFull"> + <UploadFaceImg :file="{ 'imgurlfull': param.transportImgFull, 'imgurl': param.transportImg }" + :uploadData="{ folder: 'PLATFORM' }" @uploadSuccess="uploadSuccess" @uploadEnd="isUploading = false" + @uploadBegin="isUploading = true" /> + </el-form-item> + <div class="param_title">鍙告満/杞﹁締淇℃伅</div> + <el-form-item label="鍙告満濮撳悕" prop="driverName"> + <el-input v-model="param.driverName" placeholder="璇疯緭鍏�" class="w300"></el-input> + </el-form-item> + <el-form-item label="鍙告満鎵嬫満鍙�" prop="driverPhone"> + <el-input v-model="param.driverPhone" placeholder="璇疯緭鍏�" class="w300"></el-input> + </el-form-item> + <el-form-item label="杞﹀墠鐗岀収鍙�" prop="carCodeFront"> + <el-input v-model="param.carCodeFront" placeholder="璇疯緭鍏�" class="w300"></el-input> + </el-form-item> + <el-form-item label="杞﹀悗鐗岀収鍙�" prop="carCodeBack"> + <el-input v-model="param.carCodeBack" placeholder="璇疯緭鍏�" class="w300"></el-input> + </el-form-item> + </el-form> + </GlobalWindow> + <!-- --> + <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> </div> </template> <script> import Pagination from '@/components/common/Pagination' import QueryForm from '@/components/common/QueryForm' +import { platformBooksPage, platformReasonList, platformBooksApply } from '@/api' +import DriverDetail from "@/views/task/driverDetail" +import GlobalWindow from '@/components/common/GlobalWindow' +import UploadFaceImg from '@/components/common/UploadFaceImg' export default { components: { Pagination, - QueryForm + QueryForm, + DriverDetail, + GlobalWindow, + UploadFaceImg }, - data () { + data() { return { + isShowDriver: false, loading: false, pagination: { - capacity: 10, - page: 1 + pageSize: 10, + page: 1, + total: 0 }, - filters: {}, + filters: { + selDate: [] + }, list: [], - total: 0, + isShowEdit: false, + subLoading: false, param: {}, - rules: {}, + reasonList: [], + rules: { + contractNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + totalNum: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + driverName: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + driverPhone: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + carCodeFront: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + carCodeBack: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }], + + inReason: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + arriveDate: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + inType: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + driverName: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], + }, queryFormConfig: { formItems: [ { - filed: 'aaaa', + filed: 'carCodeFront', type: 'input', label: '杞︾墝鍙�' }, { - filed: 'bbb', + filed: 'driverName', type: 'input', label: '椹鹃┒鍛�' }, { - filed: 'cc', + filed: 'contractNum', type: 'input', label: '鍚堝悓鍗曞彿' }, { filed: 'selDate', - type: 'daterange', + type: 'datetimerange', label: '鎿嶄綔鏃堕棿' } ], @@ -135,26 +162,93 @@ }, } }, + created() { + this.getList() + }, methods: { - handleSub () { + getList(page) { + const { pagination, filters } = this + this.loading = true + platformBooksPage({ + model: { + ...filters, + arriveDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, + arriveDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, + }, + capacity: pagination.pageSize, + page: page || pagination.page, + }).then(res => { + this.loading = false + this.list = res.records || [] + this.list.forEach(item => { + item.inTypeTemp = item.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' + }) + this.pagination.total = res.total || 0 + }, () => { + this.loading = false + }) + }, + handleEx() { + + }, + onSubmit() { + this.$refs['ruleForm'].validate((valid) => { + const param = this.param + if (valid) { + platformBooksApply({...param}).then(res => { + + }) + } + }) + }, + uploadSuccess(file) { + this.$set(this.param, 'transportImg', file.imgurl) + this.$set(this.param, 'transportImgFull', file.imgurlfull) + }, + handleEdit(row) { + this.isShowEdit = true + this.getplatformReason() + }, + getplatformReason() { + platformReasonList().then(res => { + this.reasonList = res || [] + }) + }, + handleSub() { this.$refs.ruleForm.validate((valid) => { if (valid) { alert('submit!') } }) }, - getList (page) { }, - clear () { }, - handleEdit (row) { - this.isShowEdit = true + clear() { + this.pagination.page = 1 + this.filters = { + selDate: [] + } + this.getList() }, - handleDel () { }, - handleSizeChange (capacity) { - this.pagination.capacity = capacity + handleDetail(row) { + this.isShowDriver = true + this.$nextTick(() => { + this.$refs.DriverDetailRef.id = row.id + this.$refs.DriverDetailRef.type = 6 + this.$refs.DriverDetailRef.getDetail() + this.$refs.DriverDetailRef.isShowModal = true + }) + }, + handleDel() { }, + handleSizeChange(capacity) { + this.pagination.pageSize = capacity } } } </script> - -<style> -</style> +<style lang="scss" scoped> +.param_title { + font-size: 18px; + font-weight: 600; + color: #000000; + margin-bottom: 15px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3