|
@@ -0,0 +1,195 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-form inline>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-input>
|
|
|
|
|
+ <template #append>
|
|
|
|
|
+ <el-button>搜索</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Plus" @click="openCarOwner('新增车主','')">新增</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Edit">编辑</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Delete">删除</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Download">导入</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Download">导入模板</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Upload">导出</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="Memo">操作记录</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button icon="ChatLineRound">其他</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <el-table :data="pricingList">
|
|
|
|
|
+ <el-table-column label="车辆类型" align="center" width="180" prop="vehicle_type"></el-table-column>
|
|
|
|
|
+ <el-table-column label="初始费用" align="center" width="180" prop="start_fee"></el-table-column>
|
|
|
|
|
+ <el-table-column label="单位费用" align="center" width="180" prop="unit_fee"></el-table-column>
|
|
|
|
|
+ <el-table-column label="车辆类型" align="center" width="180" prop="vehicle_type"></el-table-column>
|
|
|
|
|
+ <el-table-column label="每日最大费用" align="center" width="180" prop="daily_max_fee"></el-table-column>
|
|
|
|
|
+ <el-table-column label="vip折扣" align="center" width="180" prop="vip_discount"></el-table-column>
|
|
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-button text type="primary" icon="MessageBox">备注</el-button>
|
|
|
|
|
+ <el-button @click="openCarOwner('编辑车主', scope.row)" icon="edit" text type="primary">编辑</el-button>
|
|
|
|
|
+ <el-button @click="deleteCarOwner(scope.row)" icon="delete" text type="primary">删除</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <el-dialog v-model="carOwnerShow" :title="carOwnerTitle" width="650">
|
|
|
|
|
+ <el-form label-width="100" size="large">
|
|
|
|
|
+ <el-form-item label="名称:">
|
|
|
|
|
+ <el-input v-model="carOwnerData.owner_name"/>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="姓氏:">
|
|
|
|
|
+ <el-input v-model="carOwnerData.owner_surname"/>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="手机:">
|
|
|
|
|
+ <el-input v-model="carOwnerData.owner_phone"/>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="vip:">
|
|
|
|
|
+ <el-radio-group v-model="carOwnerData.is_vip" size="large" fill="#409eff">
|
|
|
|
|
+ <el-radio-button label="否" :value="false" />
|
|
|
|
|
+ <el-radio-button label="是" :value="true" />
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="vip过期时间:">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="carOwnerData.vip_expire_time"
|
|
|
|
|
+ type="date"
|
|
|
|
|
+ placeholder="当前日期"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <el-button @click="carOwnerShow = false" size="large">取消</el-button>
|
|
|
|
|
+ <el-button @click="carOwnerOperation" type="primary" size="large">确认</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script setup>
|
|
|
|
|
+import { obtainPricingList, addPricing, editPricing, removePricing } from '@/api/pricing'
|
|
|
|
|
+import { onMounted, reactive, ref } from 'vue'
|
|
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
|
|
+const pricingList = reactive([1])
|
|
|
|
|
+const pricingShow = ref(false)
|
|
|
|
|
+const pricingTitle = ref('')
|
|
|
|
|
+const pricingData = reactive({
|
|
|
|
|
+ id: 0,
|
|
|
|
|
+ vehicle_type: '',
|
|
|
|
|
+ start_time: '',
|
|
|
|
|
+ start_fee: 0,
|
|
|
|
|
+ unit_time: '',
|
|
|
|
|
+ unit_fee: 0,
|
|
|
|
|
+ daily_max_fee: 0,
|
|
|
|
|
+ is_vip_free: false,
|
|
|
|
|
+ vip_discount: 0,
|
|
|
|
|
+ description: ''
|
|
|
|
|
+})
|
|
|
|
|
+const getPricingList = () => {
|
|
|
|
|
+ obtainPricingList().then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ pricingList.length = 0
|
|
|
|
|
+ pricingList.push(...res.data.list)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const deleteCarOwner = (data) => {
|
|
|
|
|
+ ElMessageBox.confirm(
|
|
|
|
|
+ '确定要删除该车主信息吗?',
|
|
|
|
|
+ '提示',
|
|
|
|
|
+ {
|
|
|
|
|
+ confirmButtonText: '确认',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning',
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ removeCarOwner(data.ID).then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'success',
|
|
|
|
|
+ message: '删除成功',
|
|
|
|
|
+ })
|
|
|
|
|
+ getCarOwnerList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'error',
|
|
|
|
|
+ message: '删除失败',
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: 'info',
|
|
|
|
|
+ message: '取消删除',
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const openCarOwner = (head, data) => {
|
|
|
|
|
+ carOwnerShow.value = true
|
|
|
|
|
+ carOwnerTitle.value = head
|
|
|
|
|
+ if (head === '新增车主') {
|
|
|
|
|
+ carOwnerData.is_vip = false
|
|
|
|
|
+ carOwnerData.owner_surname = ''
|
|
|
|
|
+ carOwnerData.owner_name = ''
|
|
|
|
|
+ carOwnerData.owner_phone = ''
|
|
|
|
|
+ carOwnerData.vip_expire_time = ''
|
|
|
|
|
+ } else {
|
|
|
|
|
+ carOwnerData.id = data.ID
|
|
|
|
|
+ carOwnerData.is_vip = data.is_vip
|
|
|
|
|
+ carOwnerData.owner_surname = data.owner_surname
|
|
|
|
|
+ carOwnerData.owner_phone = data.owner_phone
|
|
|
|
|
+ carOwnerData.owner_name = data.owner_name
|
|
|
|
|
+ carOwnerData.vip_expire_time = data.vip_expire_time
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const carOwnerOperation = async () => {
|
|
|
|
|
+ if (carOwnerTitle.value === '新增车主') {
|
|
|
|
|
+ await addCarOwner(carOwnerData).then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage.success('添加成功')
|
|
|
|
|
+ carOwnerShow.value = false
|
|
|
|
|
+ getCarOwnerList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error('添加失败')
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ await editCarOwner(carOwnerData).then(res => {
|
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
|
+ ElMessage.success('更新成功')
|
|
|
|
|
+ carOwnerShow.value = false
|
|
|
|
|
+ getCarOwnerList()
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.error('更新失败')
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ getPricingList()
|
|
|
|
|
+})
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
|
+
|
|
|
|
|
+</style>
|