admin/src/api/business/carUseBook.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/components/business/OperaCarUseBookWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/approvalConfiguration.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/business/approvalReport.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/meeting/components/OperaBookingsWindow.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/operation/serviceCar/apprConfig.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
admin/src/views/operation/serviceCar/apprRecord.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/applicationRecord/applicationRecord.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/appointmentDetails/appointmentDetails.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
h5/pages/staff/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
admin/src/api/business/carUseBook.js
@@ -41,8 +41,10 @@ return request.get(`/visitsAdmin/cloudService/business/carUseBook/delete/${id}`) } // 撤销 export function revokeById (id) { return request.get(`/visitsAdmin/cloudService/business/carUseBook/revoke?id=${id}`) export function revokeById (params) { return request.get('/visitsAdmin/cloudService/business/carUseBook/revoke', { params }) } // 根据ID查询 export function detail (id) { admin/src/components/business/OperaCarUseBookWindow.vue
@@ -122,9 +122,9 @@ :visible.sync="isShowProblem" width="480px" > <el-form :model="dealForm" ref="dealForm" > <el-form :model="dealForm" :rules="rules" ref="dealForm" > <!-- <el-form-item label="派车司机" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.driverParam === 1"> --> <el-form-item label="派车司机" prop="driverId" required v-if="model.approveDateVO!=null && model.approveDateVO.driverParam == 1"> <el-form-item label="派车司机" prop="driverId" v-if="model.approveDateVO!=null && model.approveDateVO.driverParam == 1"> <el-select v-model="dealForm.driverId" style="width: 300px" filterable clearable placeholder="请选择派遣司机"> <el-option v-for="item in memberList" @@ -200,6 +200,9 @@ }, backForm: { checkInfo: null }, rules: { driverId: [{ required: true, message: '请选择派遣司机', trigger: 'blur' }] } } }, @@ -263,7 +266,7 @@ objId: this.dataId, objType: this.model.type == 1 ? 4 : 3, status: 3, checkInfo: this.dealForm.checkInfo checkInfo: this.backForm.checkInfo }).then(res => { this.$tip.apiSuccess('退回成功') this.getDetail() admin/src/views/business/approvalConfiguration.vue
@@ -30,18 +30,57 @@ > <div class="head">{{ item.remark }}</div> <div class="content"> <!-- 审批 --> <template v-if="item.type == 0"> <template v-if="item.memberType == '0'"> <div>被访人</div> </template> <template v-if="item.memberType == '2'"> <div>部门主管</div> </template> <template v-if="item.memberType == '1'"> <div v-if="item.objIds && item.objIds.length === 1 "> <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span> <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span> <span >{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span > <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span > <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span > </div> <div v-else-if="item.objIds && item.objIds.length > 1"> <span>{{ item.objIds[0].name }} 等</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span> <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span > <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span > </div> <div v-else>请选择</div> <i class="el-icon-arrow-right"></i> </template> </template> <!-- 抄送 --> <template v-if="item.type == 1"> <div v-if="item.objIds && item.objIds.length === 1"> <span >{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span > </div> <div v-else-if="item.objIds && item.objIds.length > 1"> <span>{{ item.objIds[0].name }} 等</span> </div> <div v-else>请选择</div> <i v-if="item.memberType == '1'" class="el-icon-arrow-right" ></i> </template> </div> </div> <div class="arrows"> @@ -72,12 +111,12 @@ <template v-if="apprList[activeIndex].type == '1'"> <div class="config_data_item_reviewed_content"> <div v-for="mem in apprList[activeIndex].objIds" v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" class="config_data_item_reviewed_content_item" > <span>{{ mem.name }}</span> <i class="el-icon-close"></i> <i @click="memDel(memIndex)" class="el-icon-close"></i> </div> <span class="add" @click="selStaff">+添加</span> </div> admin/src/views/business/approvalReport.vue
@@ -26,6 +26,15 @@ > <div class="head">{{ item.remark }}</div> <div class="content"> <!-- 审批 --> <template v-if="item.type == 0"> <template v-if="item.memberType == '0'"> <div>被访人</div> </template> <template v-if="item.memberType == '2'"> <div>部门主管</div> </template> <template v-if="item.memberType == '1'"> <div v-if="item.objIds && item.objIds.length === 1"> <span >{{ item.objIds[0].name }} @@ -49,6 +58,25 @@ </div> <div v-else>请选择</div> <i class="el-icon-arrow-right"></i> </template> </template> <!-- 抄送 --> <template v-if="item.type == 1"> <div v-if="item.objIds && item.objIds.length === 1"> <span >{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span > </div> <div v-else-if="item.objIds && item.objIds.length > 1"> <span>{{ item.objIds[0].name }} 等</span> </div> <div v-else>请选择</div> <i v-if="item.memberType == '1'" class="el-icon-arrow-right" ></i> </template> </div> </div> <div class="arrows"> admin/src/views/meeting/components/OperaBookingsWindow.vue
@@ -198,7 +198,7 @@ userList({ page: 1, capacity: 9999, model: { realname: this.filterText, memberType: 2 } model: { realname: this.filterText, memberType: 2, companyType: 1 } }) .then(res => { console.log('userList', res) admin/src/views/operation/serviceCar/apprConfig.vue
@@ -30,18 +30,54 @@ > <div class="head">{{ item.remark }}</div> <div class="content"> <!-- 审批 --> <template v-if="item.type == 0"> <template v-if="item.memberType == '2'"> <div>部门主管</div> </template> <template v-if="item.memberType == '1'"> <div v-if="item.objIds && item.objIds.length === 1 "> <span>{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span> <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span> <span >{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span > <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span > <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span > </div> <div v-else-if="item.objIds && item.objIds.length > 1"> <span>{{ item.objIds[0].name }} 等</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span> <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span> <span v-if="item.approveType == 0 && item.type == '0'"> 或签</span > <span v-if="item.approveType == 1 && item.type == '0'"> 会签</span > </div> <div v-else>请选择</div> <i class="el-icon-arrow-right"></i> </template> </template> <!-- 抄送 --> <template v-if="item.type == 1"> <div v-if="item.objIds && item.objIds.length === 1"> <span >{{ item.objIds[0].name }} {{ item.objIds[0].companyName }}</span > </div> <div v-else-if="item.objIds && item.objIds.length > 1"> <span>{{ item.objIds[0].name }} 等</span> </div> <div v-else>请选择</div> <i v-if="item.memberType == '1'" class="el-icon-arrow-right" ></i> </template> </div> </div> <div class="arrows"> @@ -72,12 +108,12 @@ <template v-if="apprList[activeIndex].type == '1'"> <div class="config_data_item_reviewed_content"> <div v-for="mem in apprList[activeIndex].objIds" v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" class="config_data_item_reviewed_content_item" > <span>{{ mem.name }}</span> <i class="el-icon-close"></i> <i @click="memDel(memIndex)" class="el-icon-close"></i> </div> <span class="add" @click="selStaff">+添加</span> </div> admin/src/views/operation/serviceCar/apprRecord.vue
@@ -1,18 +1,43 @@ <template> <TableLayout :permissions="['business:empower:query']"> <!-- 搜索表单 --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline > <el-form-item label="申请人" prop="memberName"> <el-input v-model="searchForm.memberName" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.memberName" placeholder="请输入姓名/手机号" @keypress.enter.native="search" ></el-input> </el-form-item> <el-form-item label="申请人组织" prop="companyName"> <el-input v-model="searchForm.companyName" placeholder="请输入申请人组织" clearable @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.companyName" placeholder="请输入申请人组织" clearable @keypress.enter.native="search" ></el-input> </el-form-item> <el-form-item label="车牌号" prop="carCode"> <el-input v-model="searchForm.carCode" placeholder="请输入车牌号" clearable @keypress.enter.native="search"></el-input> <el-input v-model="searchForm.carCode" placeholder="请输入车牌号" clearable @keypress.enter.native="search" ></el-input> </el-form-item> <el-form-item label="状态" prop="status"> <el-select v-model="searchForm.status" @change="search" clearable placeholder="状态"> <el-select v-model="searchForm.status" @change="search" clearable placeholder="状态" > <el-option label="申请中" value="0"></el-option> <el-option label="审核中" value="1"></el-option> <el-option label="审批通过" value="2"></el-option> @@ -21,7 +46,12 @@ </el-select> </el-form-item> <el-form-item label="目的地类型" prop="type"> <el-select v-model="searchForm.type" @change="search" clearable placeholder="目的地类型"> <el-select v-model="searchForm.type" @change="search" clearable placeholder="目的地类型" > <el-option label="市内用车" value="0"></el-option> <el-option label="市外用车" value="1"></el-option> </el-select> @@ -37,10 +67,15 @@ :default-time="['00:00:00', '23:59:59']" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> end-placeholder="结束日期" > </el-date-picker> </el-form-item> <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio"> <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio" > <el-radio-button label="0">当天</el-radio-button> <el-radio-button label="1">近7天</el-radio-button> <el-radio-button label="2">近30天</el-radio-button> @@ -52,9 +87,30 @@ </el-form> <!-- 表格和分页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['business:carusebook:create','business:carusebook:exportExcel']"> <li><el-button type="primary" @click="handleEdit" icon="el-icon-plus" v-permissions="['business:carusebook:create']">新建</el-button></li> <li><el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">导出</el-button></li> <ul class="toolbar" v-permissions="[ 'business:carusebook:create', 'business:carusebook:exportExcel', ]" > <li> <el-button type="primary" @click="handleEdit" icon="el-icon-plus" v-permissions="['business:carusebook:create']" >新建</el-button > </li> <li> <el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']" >导出</el-button > </li> </ul> <el-table v-loading="isWorking.search" @@ -63,16 +119,33 @@ @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55"></el-table-column> <el-table-column prop="memberName" label="提报人" min-width="80px"></el-table-column> <el-table-column prop="companyName" label="所属组织" min-width="150px"></el-table-column> <el-table-column prop="carCode" label="车牌号" min-width="100px"></el-table-column> <el-table-column prop="memberName" label="提报人" min-width="80px" ></el-table-column> <el-table-column prop="companyName" label="所属组织" min-width="150px" ></el-table-column> <el-table-column prop="carCode" label="车牌号" min-width="100px" ></el-table-column> <el-table-column label="用车时间" min-width="170px"> <template slot-scope="{row}"> <span>起:{{row.startTime || ''}}</span><br> <span>止:{{row.endTime || ''}}</span> <span>起:{{ row.startTime || "" }}</span ><br /> <span>止:{{ row.endTime || "" }}</span> </template> </el-table-column> <el-table-column prop="planUseDate" label="出发时间" min-width="150px"></el-table-column> <el-table-column prop="planUseDate" label="出发时间" min-width="150px" ></el-table-column> <el-table-column label="目的地" min-width="200px"> <template slot-scope="{row}"> <span class="status-green" v-if="row.type === 0">【市内】</span> @@ -90,17 +163,40 @@ </template> </el-table-column> <el-table-column prop="createDate" label="申请时间" min-width="150px"></el-table-column> <el-table-column prop="editDate" label="操作时间" min-width="150px"></el-table-column> <el-table-column prop="createDate" label="申请时间" min-width="150px" ></el-table-column> <el-table-column prop="editDate" label="操作时间" min-width="150px" ></el-table-column> <el-table-column label="操作" min-width="140" min-width="160" align="center" fixed="right" > <template slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.OperaDetailsWindow.open('公务车申请详情',row)" >查看详情</el-button> <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >撤销</el-button> <el-button type="text" icon="el-icon-edit" @click="$refs.OperaDetailsWindow.open('公务车申请详情', row)" >查看详情</el-button > <!-- <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >撤销</el-button> --> <el-button v-if=" (row.status === 0 || row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime() " type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >撤销</el-button > </template> </el-table-column> </el-table> @@ -111,7 +207,33 @@ > </pagination> </template> <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange"/> <!-- --> <el-dialog title="用车撤销" :visible.sync="isShowBack" width="520px"> <el-form :model="backParam" :rules="rules" ref="backForm" label-width="100px" class="demo-ruleForm" > <el-form-item label="说明" prop="info"> <el-input type="textarea" :rows="4" v-model="backParam.info" placeholder="请输入撤销说明" ></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="isShowBack = false">取消</el-button> <el-button type="primary" @click="backSubmit">确定</el-button> </span> </el-dialog> <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" /> <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search"/> </TableLayout> </template> @@ -143,7 +265,13 @@ }, cateList: [], areaList: [], time: [] time: [], isShowBack: false, backParam: {}, rules: { info: [{ required: true, message: '请输入', trigger: 'blur' }] } } }, created () { @@ -159,7 +287,19 @@ }, methods: { rowRevokeClick (row) { revokeById(row.id) this.isShowBack = true this.backParam = {} this.$set(this.backParam, 'id', row.id) this.$nextTick(() => { this.$refs.backForm.clearValidate() }) }, backSubmit () { revokeById({ ...this.backParam }).then(res => { this.$tip.success('撤销成功') this.isShowBack = false this.search() }) }, handleEx () { this.$dialog.exportConfirm('确认导出吗?') h5/pages/applicationRecord/applicationRecord.vue
@@ -37,7 +37,7 @@ > <view class="box_list_item_head"> <text>{{ item.name }}提交的访客申请</text> <text class="loading">{{ statusMap[item.status] }}</text> <text class="loading" :class="{error: item.status == 3}">{{ statusMap[item.status] }}</text> </view> <view class="box_list_item_nr"> <view class="box_list_item_nr_item"> @@ -93,7 +93,7 @@ 0: '待审核', 1: '已提交', 2: '审核通过', 3: '审核不通过', 3: '审核驳回', 4: '取消', 5: '下发成功', 6: '下发失败', h5/pages/appointmentDetails/appointmentDetails.vue
@@ -20,9 +20,9 @@ </view> <view class="box_list"> <view class="box_list_label">拜访信息</view> <view class="box_list_tips" v-if="info.status == 6 || info.status == 3" <!-- <view class="box_list_tips" v-if="info.status == 6 || info.status == 3" >请注意查看出入门禁下发情况,如若下发失败需重新申请</view > > --> <view class="box_list_item"> <view class="box_list_item_label">被访人员:</view> <view class="box_list_item_val" h5/pages/staff/index.vue
@@ -139,21 +139,17 @@ // } this.getTaskInfo() // 刷新token // const token = uni.getStorageSync('token') // if (token) { // refreshToken().then(res => { // if (res.code && res.code === 200) { // this.$store.commit('setToken', res.data) // console.log('res', res.data); // // setTimeout(() => { // // this.getTaskInfo() // // }, 1000) // } // }) // } setTimeout(() => { refreshToken().then(res => { if (res.code && res.code === 200) { this.$store.commit('setToken', res.data) } }) }, 3000) }, mounted() { this.$eventBus.$on('taskBack', () => { console.log('----'); this.getTaskInfo() }) }, @@ -174,7 +170,7 @@ stagingHead({ isDetail: '1' }).then(res => { this.taskInfo = res.data this.taskInfo = res.data || '' }) }, }