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