| | |
| | | methods: { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.time = [] |
| | | this.search() |
| | | }, |
| | |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.time = [] |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | |
| | | }, |
| | | reset () { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | // this.search() |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.searchForm.radio = '' |
| | | this.time = [] |
| | | this.search() |
| | | } |
| | |
| | | reset () { |
| | | this.$refs.searchForm.resetFields() |
| | | this.time = [] |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.searchForm.radio = '' |
| | | this.time = [] |
| | | this.search() |
| | | } |
| | |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.searchForm.radio = '' |
| | | this.time = [] |
| | | this.search() |
| | | } |
| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm |
| | | v-model="filters" |
| | | :query-form-config="queryFormConfig" |
| | | @handleQuery="getList(1)" |
| | | @clear="clear" |
| | | /> |
| | | <div class="query_btns" style="margin: 16px 0 0" v-permissions="['business:visits:create', 'business:visits:exportExcel']"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" v-permissions="['business:visits:create']">新建</el-button> |
| | | <el-button type="primary" :loading="exLoading" @click="exportExcel" v-permissions="['business:visits:exportExcel']">导出</el-button> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="query_btns" style="margin: 16px 0 0" |
| | | v-permissions="['business:visits:create', 'business:visits:exportExcel']"> |
| | | <el-button type="primary" @click="handleEdit()" icon="el-icon-plus" |
| | | v-permissions="['business:visits:create']">新建</el-button> |
| | | <el-button type="primary" :loading="exLoading" @click="exportExcel" |
| | | v-permissions="['business:visits:exportExcel']">导出</el-button> |
| | | </div> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="dataList" |
| | | stripe |
| | | row-key="id" |
| | | default-expand-all |
| | | > |
| | | <el-table v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all> |
| | | <el-table-column type="selection" width="55" align="center"></el-table-column> |
| | | <el-table-column |
| | | prop="carNos" |
| | | label="入园车辆" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="companyName" |
| | | label="公司名称" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="name" |
| | | label="联系人信息" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="phone" |
| | | label="手机号" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="receptMemberName" |
| | | label="被访人" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column prop="carNos" label="入园车辆" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="公司名称" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="联系人信息" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="receptMemberName" label="被访人" min-width="100px"></el-table-column> |
| | | <el-table-column label="拜访时间" min-width="160px"> |
| | | <template slot-scope="{ row }"> |
| | | <span>起:{{ row.starttime }}</span |
| | | ><br /> |
| | | <span>起:{{ row.starttime }}</span><br /> |
| | | <span>止:{{ row.endtime }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="reason" |
| | | label="拜访事由" |
| | | min-width="100" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="status" |
| | | fixed="right" |
| | | label="状态" |
| | | align="center" |
| | | min-width="100" |
| | | > |
| | | <el-table-column prop="reason" label="拜访事由" min-width="100"></el-table-column> |
| | | <el-table-column prop="status" fixed="right" label="状态" align="center" min-width="100"> |
| | | <template slot-scope="{ row }"> |
| | | <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0" |
| | | >待提交审批</span |
| | | > |
| | | <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)" |
| | | >处理中</span |
| | | > |
| | | <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)" |
| | | >已同意</span |
| | | > |
| | | <span style="color: rgba(245, 154, 35, 0.996)" v-if="row.status === 0">待提交审批</span> |
| | | <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)">处理中</span> |
| | | <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)">已同意</span> |
| | | <span style="color: gray" v-if="row.status === 3">已拒绝</span> |
| | | <span v-if="row.status === 4" style="color: gray">取消</span> |
| | | <span v-if="row.status === 5" style="color: green">下发成功</span> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="100" fixed="right"> |
| | | <template slot-scope="{ row }"> |
| | | <el-button |
| | | type="text" |
| | | @click="handleDetail(row)" |
| | | v-permissions="['business:company:update']" |
| | | >查看详情</el-button |
| | | > |
| | | <el-button type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">查看详情</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" /> |
| | | <ReportDetail v-if="isShowReport" ref="VisReportDetailRef" /> |
| | | <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit" ref="operaVisitsWindowRef" /> |
| | | <OperaVisitsReportWindow @close="isShowEdit = false" @success="getList" v-if="isShowEdit" |
| | | ref="operaVisitsWindowRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | Pagination, |
| | | OperaVisitsReportWindow |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | isShowEdit: false, |
| | | exLoading: false, |
| | |
| | | total: 0 |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | exportExcel () { |
| | | exportExcel() { |
| | | this.$dialog.exportConfirm('确认导出吗?') |
| | | .then(() => { |
| | | this.exLoading = true |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | handleEdit () { |
| | | handleEdit() { |
| | | this.isShowEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.operaVisitsWindowRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail (row) { |
| | | handleDetail(row) { |
| | | this.isShowReport = true |
| | | this.$nextTick(() => { |
| | | this.$nextTick(() => { |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | getList (page) { |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | pagination.page = page || pagination.page |
| | | this.loading = true |
| | | fetchList({ |
| | | model: { ...filters }, |
| | | ...pagination |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear () { |
| | | clear() { |
| | | this.filters = { |
| | | type: 2 |
| | | } |
| | | this.getList(0) |
| | | this.getList(1) |
| | | }, |
| | | handleSizeChange (capacity) { |
| | | handleSizeChange(capacity) { |
| | | this.pagination.capacity = capacity |
| | | this.getList() |
| | | } |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | </style> |
| | | <style lang="scss" scoped></style> |
| | |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startTime = '' |
| | | this.searchForm.radio = '0' |
| | | this.searchForm.radio = '' |
| | | this.searchForm.endTime = '' |
| | | this.time = [] |
| | | this.search() |
| | |
| | | <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="组织" min-width="250px"> |
| | | <template slot-scope="{ row }"> |
| | | <span>{{row.companyName || row.visitCompanyName || '' }}</span> |
| | | <span>{{ row.companyName || row.visitCompanyName || '' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="carType" label="车辆类型" min-width="100px"> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="进场门禁" min-width="100px"> |
| | | <!-- <el-table-column label="进场门禁" min-width="100px"> |
| | | <template slot-scope="{ row }"> |
| | | <!– <span v-if="row.type === 1">-</span> –> |
| | | <span>{{ row.deviceName || '-' }}</span> |
| | |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startTime = '' |
| | | this.searchForm.radio = '0' |
| | | this.searchForm.radio = '' |
| | | this.searchForm.endTime = '' |
| | | this.time = [] |
| | | this.search() |
| | | }, |
| | | seleTime(e) { |
| | | if(e && e.length >2){ |
| | | if (e && e.length > 2) { |
| | | this.searchForm.startTime = e[0] |
| | | this.searchForm.endTime = e[1] |
| | | this.searchForm.radio = null |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.changeRadio('0') |
| | | this.search() |
| | | // this.search() |
| | | }, |
| | | methods: { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.time = [] |
| | | this.search() |
| | | }, |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:deviceevent:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="姓名/手机号" prop="keyWords"> |
| | | <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="组织" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="培训开始时间" prop="eventType"> |
| | | <el-date-picker |
| | | @change="seleTime" |
| | | v-model="time" |
| | | type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <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> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="name" label="人员姓名" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardNo" label="证件号" min-width="150px"></el-table-column> |
| | | <el-table-column prop="companyName" label="组织名称" min-width="150px"></el-table-column> |
| | | <el-table-column prop="startTime" label="开始日期" min-width="150px"></el-table-column> |
| | | <el-table-column prop="endTime" label="结束日期" min-width="150px"></el-table-column> |
| | | <el-table-column label="人脸照片" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image |
| | | v-if="row.faceImg" |
| | | style="width: 80px; height: 80px" |
| | | :src="row.faceImg" |
| | | :preview-src-list="[row.faceImg]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createName" label="操作人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="创建时间" min-width="150px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | <TableLayout :permissions="['business:deviceevent:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="姓名/手机号" prop="keyWords"> |
| | | <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="组织" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="培训开始时间" prop="eventType"> |
| | | <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <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> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="name" label="人员姓名" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="idcardNo" label="证件号" min-width="150px"></el-table-column> |
| | | <el-table-column prop="companyName" label="组织名称" min-width="150px"></el-table-column> |
| | | <el-table-column prop="startTime" label="开始日期" min-width="150px"></el-table-column> |
| | | <el-table-column prop="endTime" label="结束日期" min-width="150px"></el-table-column> |
| | | <el-table-column label="人脸照片" min-width="80px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.faceImg" style="width: 80px; height: 80px" :src="row.faceImg" |
| | | :preview-src-list="[row.faceImg]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createName" label="操作人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="创建时间" min-width="150px"></el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | name: 'DeviceEvent', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // 搜索 |
| | | searchForm: { |
| | |
| | | time1: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: '培训有效期列表', |
| | | api: '/business/trainTime', |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeRadio (e) { |
| | | changeRadio(e) { |
| | | if (e === '0') { |
| | | this.searchForm.startTimeStart = timeForMat(0)[0] |
| | | this.searchForm.startTimeEnd = timeForMat(0)[1] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | seleTime (e) { |
| | | if(e && e.length > 1) { |
| | | seleTime(e) { |
| | | if (e && e.length > 1) { |
| | | this.searchForm.startTimeStart = e[0] |
| | | this.searchForm.startTimeEnd = e[1] |
| | | this.searchForm.radio = null |
| | | this.search() |
| | | } |
| | | }, |
| | | changeRadio1 (e) { |
| | | changeRadio1(e) { |
| | | if (e === '0') { |
| | | this.searchForm.endTimeStart = timeForMat(0)[0] |
| | | this.searchForm.endTimeEnd = timeForMat(0)[1] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | seleTime1 (e) { |
| | | if (e && e.length > 1 ) { |
| | | seleTime1(e) { |
| | | if (e && e.length > 1) { |
| | | this.searchForm.endTimeStart = e[0] |
| | | this.searchForm.endTimeEnd = e[1] |
| | | this.searchForm.radio1 = null |
| | | this.search() |
| | | } |
| | | }, |
| | | reset () { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.time = [] |
| | | this.time1 = [] |
| | | this.searchForm.radio = '0' |
| | | this.searchForm.radio = '' |
| | | this.searchForm.radio1 = '0' |
| | | this.changeRadio('0') |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:visitevent:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="姓名/手机号" prop="keyWords"> |
| | | <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车牌号" prop="carNo"> |
| | | <el-input v-model="searchForm.carNo" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="组织名称" prop="visitorWorkUint"> |
| | | <el-input v-model="searchForm.visitorWorkUint" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="事件类型" prop="eventType"> |
| | | <el-select v-model="searchForm.eventType" placeholder="请选择"> |
| | | <el-option label="访客登记" value="541200006"></el-option> |
| | | <el-option label="访客签离" value="541200007"></el-option> |
| | | <el-option label="访客通行" value="541200060"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="起始时间" prop="carNo"> |
| | | <el-date-picker |
| | | @change="seleTime" |
| | | v-model="time" |
| | | type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <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> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:visitevent:exportExcel']"> |
| | | <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']" @click="exportExcel">导出</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column prop="personName" label="姓名" min-width="100px"></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 prop="visitorWorkUint" label="组织" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beVisitedPersonOrg" label="被访人组织" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventTypeName" label="事件类型" min-width="100px"></el-table-column> |
| | | <el-table-column label="抓拍图" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.captureUrlFull!=null" |
| | | style="width: 80px; height: 80px" |
| | | :src="row.captureUrlFull" |
| | | :preview-src-list="[row.captureUrlFull]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="事件时间" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | <TableLayout :permissions="['business:visitevent:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="姓名/手机号" prop="keyWords"> |
| | | <el-input v-model="searchForm.keyWords" placeholder="请输入姓名/手机号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车牌号" prop="carNo"> |
| | | <el-input v-model="searchForm.carNo" placeholder="请输入车牌号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="组织名称" prop="visitorWorkUint"> |
| | | <el-input v-model="searchForm.visitorWorkUint" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="事件类型" prop="eventType"> |
| | | <el-select v-model="searchForm.eventType" placeholder="请选择"> |
| | | <el-option label="访客登记" value="541200006"></el-option> |
| | | <el-option label="访客签离" value="541200007"></el-option> |
| | | <el-option label="访客通行" value="541200060"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="起始时间" prop="carNo"> |
| | | <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <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> |
| | | </el-radio-group> |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:visitevent:exportExcel']"> |
| | | <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']" |
| | | @click="exportExcel">导出</el-button></li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="personName" label="姓名" min-width="100px"></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 prop="visitorWorkUint" label="组织" min-width="100px"></el-table-column> |
| | | <el-table-column prop="carNo" label="车牌号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beVisitedPersonName" label="被访人" min-width="100px"></el-table-column> |
| | | <el-table-column prop="beVisitedPersonOrg" label="被访人组织" min-width="100px"></el-table-column> |
| | | <el-table-column prop="eventTypeName" label="事件类型" min-width="100px"></el-table-column> |
| | | <el-table-column label="抓拍图" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <el-image v-if="row.captureUrlFull != null" style="width: 80px; height: 80px" :src="row.captureUrlFull" |
| | | :preview-src-list="[row.captureUrlFull]"> |
| | | </el-image> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createDate" label="事件时间" min-width="100px"></el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | name: 'VisitEvent', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // 搜索 |
| | | searchForm: { |
| | |
| | | time: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: '访客事件推送记录表', |
| | | api: '/business/visitEvent', |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | seleTime (e) { |
| | | seleTime(e) { |
| | | this.searchForm.startTime = e[0] |
| | | this.searchForm.endTime = e[1] |
| | | this.searchForm.radio = null |
| | | this.search() |
| | | }, |
| | | changeRadio (e) { |
| | | changeRadio(e) { |
| | | if (e === '0') { |
| | | this.searchForm.startTime = timeForMat(0)[0] |
| | | this.searchForm.endTime = timeForMat(0)[1] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.time = [] |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | this.searchForm.radio = '' |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.searchForm.radio = '' |
| | | this.time = [] |
| | | this.search() |
| | | } |
| | |
| | | @click="exportExcel">导出</el-button> |
| | | </li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe |
| | | @selection-change="handleSelectionChange"> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <!-- <el-table-column type="selection" align="center" width="55"></el-table-column> --> |
| | | <el-table-column prop="name" label="会议主题" align="center" min-width="120px" show-overflow-tooltip> |
| | | <template slot-scope="{ row }"> |
| | |
| | | <template slot-scope="{ row }"> |
| | | <template> |
| | | <el-button type="text" @click="$refs.operaBookingsDetailWindow.open('会议详情', row)">查看详情</el-button> |
| | | <el-button v-if="row.meetingStatus == '1' && row.creator===userInfo.id" type="text" |
| | | @click="$refs.operaBookingsWindow.open('编辑会议预约', row)" >编辑</el-button> |
| | | <el-button type="text" v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" @click="handleStart(row)">开始</el-button> |
| | | <el-button type="text" v-if="row.creator===userInfo.id && row.meetingStatus == '2'" @click="handleEnd(row)">结束</el-button> |
| | | <el-button v-if="row.creator===userInfo.id &&(row.meetingStatus == '1' || row.meetingStatus == '4')" type="text" @click="cancelMeeting(row.id)">撤回</el-button> |
| | | <el-button v-if="row.meetingStatus == '1' && row.creator === userInfo.id" type="text" |
| | | @click="$refs.operaBookingsWindow.open('编辑会议预约', row)">编辑</el-button> |
| | | <el-button type="text" |
| | | v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')" |
| | | @click="handleStart(row)">开始</el-button> |
| | | <el-button type="text" v-if="row.creator === userInfo.id && row.meetingStatus == '2'" |
| | | @click="handleEnd(row)">结束</el-button> |
| | | <el-button v-if="row.creator === userInfo.id && (row.meetingStatus == '1' || row.meetingStatus == '4')" |
| | | type="text" @click="cancelMeeting(row.id)">撤回</el-button> |
| | | </template> |
| | | <!-- <el-button v-else type="text" @click="deleteById(row)" v-permissions="['business:bookings:delete']">删除</el-button> --> |
| | | </template> |
| | |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.date = [] |
| | | this.searchForm.radio = '0' |
| | | this.searchForm.radio = '' |
| | | this.searchForm.startTime = '' |
| | | this.searchForm.endTime = '' |
| | | this.changeRadio('0') |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | }, |
| | | copy(row) { |
| | | const text = `${row.realName} 邀请您加入会议\n会议主题:${row.name}\n会议室:${row.roomName}\n会议时间:${row.meetingTime}\n点击链接直接加入会议:\n${this.link}?id=${row.id}` |
| | |
| | | <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="dutyCompanyName"> |
| | | <el-input v-model="searchForm.dutyCompanyName" placeholder="请输入责任部门" clearable @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.dutyCompanyName" placeholder="请输入责任部门" clearable |
| | | @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="隐患区域" prop="areaId"> |
| | | <el-select v-model="searchForm.areaId" placeholder="请选择隐患区域" clearable @change="search"> |
| | | <el-option |
| | | v-for="item in areaList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-select v-model="searchForm.areaId" placeholder="请选择隐患区域" clearable @change="search"> |
| | | <el-option v-for="item in areaList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="隐患类型" prop="cateId"> |
| | | <el-select v-model="searchForm.cateId" placeholder="请选择隐患类型" clearable @change="search"> |
| | | <el-option |
| | | v-for="item in cateList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-option v-for="item in cateList" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </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> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="提报时间" prop="startTime"> |
| | | <el-date-picker |
| | | @change="seleTime" |
| | | v-model="time" |
| | | @keypress.enter.native="search" |
| | | type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | <el-date-picker @change="seleTime" v-model="time" @keypress.enter.native="search" type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio"> |
| | |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:hiddendanger:create', 'business:hiddendanger:exportExcel']"> |
| | | <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']" @click="handleEdit">新建</el-button></li> |
| | | <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']" @click="handleEx">导出</el-button></li> |
| | | <li><el-button type="primary" icon="el-icon-plus" v-permissions="['business:hiddendanger:create']" |
| | | @click="handleEdit">新建</el-button></li> |
| | | <li><el-button type="primary" v-permissions="['business:hiddendanger:exportExcel']" |
| | | @click="handleEx">导出</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <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="dutyCompanyName" label="责任部门" min-width="150px"></el-table-column> |
| | | <el-table-column prop="areaName" label="隐患区域" min-width="150px"></el-table-column> |
| | |
| | | <el-table-column prop="createDate" label="提报时间" min-width="150px"></el-table-column> |
| | | <el-table-column label="处理结果" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span class="status-blue" v-if="row.status === 0">待处理</span> |
| | | <span class="status-green" v-if="row.status === 1">已处理</span> |
| | | <span class="status-red" v-if="row.status === 2">已退回</span> |
| | | <span class="status-blue" v-if="row.status === 0">待处理</span> |
| | | <span class="status-green" v-if="row.status === 1">已处理</span> |
| | | <span class="status-red" v-if="row.status === 2">已退回</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="editDate" label="操作时间" min-width="150px"></el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | min-width="100" |
| | | fixed="right" |
| | | > |
| | | <el-table-column label="操作" min-width="100" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" icon="el-icon-edit" @click="$refs.OperaHiddenDangerWindow.open('隐患随手拍详情',row)" >查看详情</el-button> |
| | | <el-button type="text" icon="el-icon-edit" |
| | | @click="$refs.OperaHiddenDangerWindow.open('隐患随手拍详情', row)">查看详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange"/> |
| | | <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="handlePageChange" /> |
| | | <!-- 新建 --> |
| | | <HiddenDangerParam @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="HiddenDangerParamRef" /> |
| | | <HiddenDangerParam @close="isShowEdit = false" @success="search" v-if="isShowEdit" ref="HiddenDangerParamRef" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | export default { |
| | | name: 'Empower', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination ,OperaHiddenDangerWindow, HiddenDangerParam}, |
| | | data () { |
| | | components: { TableLayout, Pagination, OperaHiddenDangerWindow, HiddenDangerParam }, |
| | | data() { |
| | | return { |
| | | isShowEdit: false, |
| | | // 搜索 |
| | |
| | | time: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: '隐患随手拍管理', |
| | | api: '/business/hiddenDanger', |
| | |
| | | this.loadParams() |
| | | }, |
| | | methods: { |
| | | handleEx () { |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导出吗?') |
| | | .then(() => { |
| | | this.exLoading = true |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | handleEdit () { |
| | | handleEdit() { |
| | | this.isShowEdit = true |
| | | this.$nextTick(() => { |
| | | this.$refs.HiddenDangerParamRef.isShowModal = true |
| | | }) |
| | | }, |
| | | changeRadio (e) { |
| | | changeRadio(e) { |
| | | this.searchForm.radio = e |
| | | if (e === '0') { |
| | | this.searchForm.queryStartTime = timeForMat(0)[0] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | loadParams () { |
| | | loadParams() { |
| | | allList({ |
| | | }) |
| | | .then(res => { |
| | |
| | | .finally(() => { |
| | | }) |
| | | }, |
| | | seleTime (e) { |
| | | seleTime(e) { |
| | | this.searchForm.queryStartTime = e[0] |
| | | this.searchForm.queryEndTime = e[1] |
| | | this.searchForm.radio = null |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | // this.search() |
| | | this.time = [] |
| | | this.searchForm = { |
| | | memberName: '', |
| | | companyName: '', |
| | | queryStartTime: '', |
| | | companyName: '', |
| | | queryEndTime: '', |
| | | areaId: null, |
| | | cateId: null, |
| | | status: null, |
| | | radio: '' |
| | | } |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | |
| | | <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> |
| | |
| | | </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> |
| | | </el-form-item> |
| | | <el-form-item label="出发时间" prop="startTime"> |
| | | <el-date-picker |
| | | @change="seleTime" |
| | | v-model="time" |
| | | @keypress.enter.native="search" |
| | | type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | <el-date-picker @change="seleTime" v-model="time" @keypress.enter.native="search" type="datetimerange" |
| | | format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" |
| | | range-separator="至" start-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> |
| | |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul |
| | | class="toolbar" |
| | | v-permissions="[ |
| | | 'business:carusebook:create', |
| | | 'business:carusebook:exportExcel', |
| | | ]" |
| | | > |
| | | <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 |
| | | > |
| | | <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 |
| | | > |
| | | <el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">导出</el-button> |
| | | </li> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <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="carCode" |
| | | label="车牌号" |
| | | min-width="100px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="memberName" |
| | | label="提报人" |
| | | min-width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="memberNames" |
| | | label="乘车人" |
| | | min-width="180px" |
| | | ></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="memberNames" label="乘车人" min-width="180px"></el-table-column> |
| | | <el-table-column prop="companyName" label="所属组织" min-width="150px"></el-table-column> |
| | | <el-table-column label="用车时间" min-width="170px"> |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.startTime">起:{{ row.startTime.slice(0,16) }}</span |
| | | ><br /> |
| | | <span v-if="row.endTime">止:{{ row.endTime.slice(0,16) }}</span> |
| | | <span v-if="row.startTime">起:{{ row.startTime.slice(0, 16) }}</span><br /> |
| | | <span v-if="row.endTime">止:{{ row.endTime.slice(0, 16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="planUseDate" |
| | | label="出发时间" |
| | | min-width="150px" |
| | | > |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="planUseDate" label="出发时间" min-width="150px"> |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.planUseDate">{{ row.planUseDate.slice(0, 16) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="目的地" min-width="200px"> |
| | | <template slot-scope="{ row }"> |
| | | <span class="status-green" v-if="row.type === 0">【市内】</span> |
| | |
| | | </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 |
| | | label="操作" |
| | | min-width="160" |
| | | align="center" |
| | | fixed="right" |
| | | > |
| | | <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="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 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 |
| | | > |
| | | <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> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <!-- --> |
| | | <el-dialog title="用车撤销" :visible.sync="isShowBack" width="520px"> |
| | | <el-form |
| | | :model="backParam" |
| | | :rules="rules" |
| | | ref="backForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <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-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 type="primary" @click="backSubmit">确定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <OperaCarUseBookWindow |
| | | ref="OperaDetailsWindow" |
| | | @success="handlePageChange" |
| | | /> |
| | | <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" /> |
| | | <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" /> |
| | | </TableLayout> |
| | | </template> |
| | |
| | | name: 'Empower', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | // 搜索 |
| | | searchForm: { |
| | |
| | | } |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: '用车申请管理', |
| | | api: '/business/carUseBook', |
| | |
| | | this.loadParams() |
| | | }, |
| | | methods: { |
| | | rowRevokeClick (row) { |
| | | rowRevokeClick(row) { |
| | | this.isShowBack = true |
| | | this.backParam = {} |
| | | this.$set(this.backParam, 'id', row.id) |
| | |
| | | this.$refs.backForm.clearValidate() |
| | | }) |
| | | }, |
| | | backSubmit () { |
| | | backSubmit() { |
| | | revokeById({ ...this.backParam }).then(res => { |
| | | this.$tip.success('撤销成功') |
| | | this.isShowBack = false |
| | | this.search() |
| | | }) |
| | | }, |
| | | handleEx () { |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导出吗?') |
| | | .then(() => { |
| | | this.exLoading = true |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | changeRadio (e) { |
| | | changeRadio(e) { |
| | | this.searchForm.radio = e |
| | | if (e === '0') { |
| | | this.searchForm.queryStartTime = timeForMat(0)[0] |
| | |
| | | } |
| | | this.search() |
| | | }, |
| | | handleEdit () { |
| | | handleEdit() { |
| | | this.$refs.OperaParamWindow.open() |
| | | }, |
| | | loadParams () { |
| | | loadParams() { |
| | | allList({ |
| | | }) |
| | | .then(res => { |
| | |
| | | .finally(() => { |
| | | }) |
| | | }, |
| | | seleTime (e) { |
| | | seleTime(e) { |
| | | this.searchForm.queryStartTime = e[0] |
| | | this.searchForm.queryEndTime = e[1] |
| | | this.searchForm.radio = null |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.radio = '0' |
| | | this.changeRadio('0') |
| | | // this.search() |
| | | this.time = [] |
| | | this.searchForm = { |
| | | memberName: '', |
| | | companyName: '', |
| | | queryStartTime: '', |
| | | queryEndTime: '', |
| | | type: null, |
| | | status: null, |
| | | radio: '' |
| | | } |
| | | // this.changeRadio('0') |
| | | this.search() |
| | | } |
| | | } |
| | | } |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0 |
| | | } |
| | | this.getList() |
| | | }, |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0 |
| | | } |
| | | this.getList() |
| | | }, |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0 |
| | | } |
| | | this.getList() |
| | | }, |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0, |
| | | } |
| | | this.changeRadio('0') |
| | | this.getList() |
| | | // this.changeRadio('0') |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDriver = true |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0 |
| | | } |
| | | this.changeRadio('0') |
| | | this.getList() |
| | | // this.changeRadio('0') |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | |
| | | this.pagination.page = 1 |
| | | this.filters = { |
| | | selDate: [], |
| | | fastdate: 0 |
| | | } |
| | | this.getList() |
| | | }, |
| | |
| | | }, |
| | | clear() { |
| | | this.filters = { |
| | | fastdate: 0, |
| | | selDate: [] |
| | | } |
| | | this.changeRadio('0') |
| | | this.getList() |
| | | // this.changeRadio('0') |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.pageSize = capacity |
| | |
| | | this.loading = true |
| | | taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => { |
| | | this.headData = res |
| | | this.getList(page) |
| | | this.getList(1) |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | |
| | | { name: '访客报备', id: 1 }, |
| | | { name: '用车申请', id: 2 }, |
| | | { name: '隐患随手拍', id: 3 }, |
| | | { name: '物流车申请', id: 4 }, |
| | | { name: '物流车申请', id: 6 }, |
| | | { name: '考勤代办', id: 7 }, |
| | | ], |
| | | startDate: dayjs().format('YYYY-MM-DD'), |
| | |
| | | <template>
|
| | | <view class="main_app">
|
| | | <view class="main_app" :style="{height: windowHeight + 'px'}">
|
| | | <view class="status_wrap">
|
| | | <view class="name">{{ info.categoryName }}</view>
|
| | | <view v-if="info.status == '0'" class="status">{{ statusMap[info.status] }}</view>
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" style="height: 90rpx;border: 1px solid red;"></view> |
| | | <view class="emyty"></view>
|
| | | <view class="main_footer" v-if="info.status == 0 && info.checkUserId == userInfo.memberId">
|
| | | <view v-if="info.status == 0 && info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">退回</view>
|
| | |
| | | </u-popup>
|
| | | <!-- 转交 -->
|
| | | <u-popup :show="isShowTransfer" :round="10" safeAreaInsetBottom mode="bottom" @close="isShowTransfer = false">
|
| | | <view class="appr_modal">
|
| | | <view class="appr_modal tran_modal">
|
| | | <view class="title">选择员工</view>
|
| | | <view class="search_inp df_ac">
|
| | | <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
|
| | | <input v-model="transferModel.queryParam" @confirm="getMemList()" type="text" placeholder="搜索人员姓名"
|
| | | <input v-model="transferModel.queryParam" @focus="showKeyboard = true" @blur="showKeyboard = false" @confirm="getMemList()" type="text" placeholder="搜索人员姓名"
|
| | | placeholder-style="color: #999999;" />
|
| | | </view>
|
| | | <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view> |
| | | <view class="member_list">
|
| | | <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view>
|
| | | |
| | | <view v-for="item in memberList" :key="item.id" class="line">
|
| | | <image v-if="item.faceImg" :src="item.faceImg" class="avatar"></image>
|
| | | <span v-else class="img_name">{{ item.realname && item.realname.slice(0, 1) }}</span>
|
| | |
| | | </view>
|
| | | <view class="empty"></view>
|
| | | </view>
|
| | | <view class="Transfer_footer">
|
| | | <view v-if="!showKeyboard" class="Transfer_footer">
|
| | | <view class="btn" @click="isShowTransfer = fales">取消</view>
|
| | | <view class="btn active" @click="enterTransfer">确认转交</view>
|
| | | </view>
|
| | |
| | | flowList: [],
|
| | |
|
| | | id: '',
|
| | | type: '',
|
| | | type: '', |
| | | windowHeight: '',
|
| | | cateList: [{
|
| | | name: '访客申请',
|
| | | id: 0
|
| | |
| | |
|
| | | videoPlay: false,
|
| | | videoContext: null,
|
| | | videoUrl: ''
|
| | | videoUrl: '', |
| | | showKeyboard: false,
|
| | | }
|
| | | },
|
| | | onLoad(op) {
|
| | | onLoad(op) { |
| | | const result = uni.getWindowInfo()
|
| | | this.windowHeight = result.windowHeight
|
| | | uni.setStorageSync('ywinfo', {})
|
| | | this.id = op.id
|
| | | this.getDetail()
|
| | | this.getDetail() |
| | | // this.handleTransfer()
|
| | | },
|
| | | methods: {
|
| | | priviewImage(url) {
|
| | |
| | | findListFlowDanger({
|
| | | hiddenDangerId: id
|
| | | }).then(res => {
|
| | | this.flowList = res.data
|
| | | this.flowList = res.data || []
|
| | | })
|
| | | },
|
| | | onSubmit() {
|
| | |
| | | icon: 'none'
|
| | | })
|
| | | transferHiddenDanger({
|
| | | checkUserId: transferParam.id,
|
| | | checkUserId: transferParam.memberId,
|
| | | id
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | |
| | | .main_app {
|
| | | background-color: #fff;
|
| | | padding-bottom: 0;
|
| | |
|
| | | position: relative;
|
| | | .flow_title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | |
| | | }
|
| | |
|
| | | .flow_wrap {
|
| | | padding: 30rpx 0 90rpx;
|
| | |
|
| | | padding: 30rpx 0 30rpx;
|
| | | background-color: #fff;
|
| | | .list {
|
| | | .item {
|
| | | display: flex;
|
| | | margin-bottom: 48rpx;
|
| | | position: relative;
|
| | |
|
| | | .separate {
|
| | | position: absolute;
|
| | | width: 4rpx;
|
| | |
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | | flex-wrap: wrap;
|
| | |
|
| | | .img_wrap {
|
| | | margin-top: 24rpx;
|
| | | width: 156rpx;
|
| | |
| | | width: 100%;
|
| | | z-index: 9999;
|
| | | left: 0;
|
| | | padding: 30rpx 10rpx 60rpx;
|
| | | padding: 10rpx 10rpx 30rpx;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | background: #ffffff;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .tran_modal{ |
| | | height: 1260rpx; |
| | | }
|
| | | .emyty {
|
| | | width: 750rpx;
|
| | | height: 20rpx;
|
| | |
| | | }
|
| | |
|
| | | .member_list {
|
| | | height: 920rpx;
|
| | | height: 900rpx;
|
| | | overflow: auto;
|
| | |
|
| | | // border: 1px solid;
|
| | | .line {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
| | | <template>
|
| | | <view class="main_app" :class="{ popupShow: isShowSelMem }">
|
| | | <view class="main_app" :style="{ height: windowHeight + 'px' }" :class="{ popupShow: isShowSelMem }">
|
| | | <view class="search_inp df_ac">
|
| | | <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
|
| | | <input v-model="param.queryParam" @confirm="initData()" type="text" placeholder="搜索"
|
| | |
| | | <image @click="changeMem(item, index)" v-if="!item.checked" src="@/static/meeting/icon/ic_choose@2x.png"
|
| | | mode="widthFix" class="checked"></image>
|
| | | <text></text>
|
| | | </view> |
| | | </view>
|
| | | <view class="" style="height: 220rpx;"></view>
|
| | | <view v-if="memberList.length == 0" class="empty_wrap"> |
| | | <image src="@/static/empty.png" mode=""></image> |
| | | <text>暂无数据</text> |
| | | <view v-if="memberList.length == 0" class="empty_wrap">
|
| | | <image src="@/static/empty.png" mode=""></image>
|
| | | <text>暂无数据</text>
|
| | | </view>
|
| | | </view>
|
| | | <!-- -->
|
| | |
| | | </view>
|
| | | <image @click="openSeleter" class="open_icon" src="@/static/staff/renyuan_ic_open.png" mode=""></image>
|
| | | </view>
|
| | | <view class="btn" @click="onSubmit">确认({{ selList.length }}/{{ param.limitNum }})</view>
|
| | | <view class="btn" @click="onSubmit">确认({{ selList.length }})</view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <u-popup catchtouchmove :show="isShowSelMem" :round="12" mode="bottom" @close="closeModal">
|
| | | <view class="modal">
|
| | | <view class="modal_header">
|
| | | <text class="status">已选择:{{ selList.filter(i => i.checkedTemp).length }}人</text>
|
| | | <text class="status">已选择:{{selList.filter(i => i.checkedTemp).length}}人</text>
|
| | | <text class="btn" @click="subSelMem">确认</text>
|
| | | </view>
|
| | | <view class="modal_mem_list">
|
| | |
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | userPagePost
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs'
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | memberList: [],
|
| | | selList: [],
|
| | | param: {
|
| | | limitNum: ''
|
| | | },
|
| | | pagination: {
|
| | | page: 1,
|
| | | capacity: 40
|
| | | },
|
| | | import {
|
| | | userPagePost
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs'
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | memberList: [],
|
| | | selList: [],
|
| | | param: {
|
| | | limitNum: ''
|
| | | },
|
| | | windowHeight: '',
|
| | | pagination: {
|
| | | page: 1,
|
| | | capacity: 40
|
| | | },
|
| | |
|
| | | isShowSelMem: false
|
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | | this.param = {
|
| | | limitNum: option.limitNum,
|
| | | queryParam: '',
|
| | | startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
|
| | | endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
|
| | | }
|
| | | this.initData()
|
| | | },
|
| | | mounted() {
|
| | | this.$eventBus.$on('applePeoDetail', (res) => {
|
| | | setTimeout(() => {
|
| | | res.forEach(item => {
|
| | | this.memberList.forEach(mem => {
|
| | | if (item.id == mem.id) {
|
| | | mem.checked = true
|
| | | }
|
| | | })
|
| | | isShowSelMem: false
|
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | | const result = uni.getWindowInfo()
|
| | | this.windowHeight = result.windowHeight
|
| | | this.param = {
|
| | | // limitNum: option.limitNum,
|
| | | queryParam: '',
|
| | | startTime: dayjs(Number(option.startTime)).format('YYYY-MM-DD HH:mm:ss'),
|
| | | endTime: dayjs(Number(option.endTime)).format('YYYY-MM-DD HH:mm:ss'),
|
| | | }
|
| | | this.initData()
|
| | | },
|
| | | mounted() {
|
| | | this.$eventBus.$on('applePeoDetail', (res) => {
|
| | | setTimeout(() => {
|
| | | res.forEach(item => {
|
| | | this.memberList.forEach(mem => {
|
| | | if (item.id == mem.id) {
|
| | | mem.checked = true
|
| | | }
|
| | | })
|
| | | this.selList = this.memberList.filter(i => i.checked)
|
| | | this.$nextTick(() => {
|
| | | this.$forceUpdate()
|
| | | })
|
| | | }, 500)
|
| | | })
|
| | | this.selList = this.memberList.filter(i => i.checked)
|
| | | this.$nextTick(() => {
|
| | | this.$forceUpdate()
|
| | | })
|
| | | }, 500)
|
| | | })
|
| | | },
|
| | | methods: {
|
| | | onSubmit() {
|
| | | this.$eventBus.$emit('applePeo', this.selList)
|
| | | uni.navigateBack()
|
| | | },
|
| | | changeMem(item, index) {
|
| | | // const { selList, param } = this
|
| | | // if (this.selList.length == param.limitNum && !item.checked) return uni.showToast({
|
| | | // title: `该会议可容纳${param.limitNum}人`,
|
| | | // icon: 'none'
|
| | | // })
|
| | | // item.checked = !item.checked
|
| | | // this.selList = this.memberList.filter(i => i.checked)
|
| | | // // |
| | | item.checked = !item.checked
|
| | | const i = this.selList.findIndex(a => a.id === item.id)
|
| | | if (item.checked && i === -1) {
|
| | | this.selList.push(item)
|
| | | } else {
|
| | | this.selList.splice(i, 1)
|
| | | }
|
| | | this.$forceUpdate()
|
| | | },
|
| | | openSeleter() {
|
| | | this.isShowSelMem = true
|
| | | this.selList.forEach(item => {
|
| | | item.checkedTemp = true
|
| | | })
|
| | | this.$forceUpdate()
|
| | | },
|
| | | initData() {
|
| | | const {
|
| | | param,
|
| | | pagination
|
| | | } = this
|
| | | userPagePost({
|
| | | ...param,
|
| | | querySpecial: 1, type: 2, companyType: 1, workStatus: 0
|
| | |
|
| | | }).then(res => {
|
| | | this.memberList = res.data || []
|
| | | this.memberList.forEach(i => {
|
| | | const index = this.selList.findIndex(ite => ite.id === i.id)
|
| | | i.checked = index > -1
|
| | | })
|
| | | })
|
| | | },
|
| | | methods: {
|
| | | onSubmit() {
|
| | | this.$eventBus.$emit('applePeo', this.selList)
|
| | | uni.navigateBack()
|
| | | },
|
| | | changeMem(item, index) {
|
| | | // const { selList, param } = this
|
| | | // if (this.selList.length == param.limitNum && !item.checked) return uni.showToast({
|
| | | // title: `该会议可容纳${param.limitNum}人`,
|
| | | // icon: 'none'
|
| | | // })
|
| | | // item.checked = !item.checked
|
| | | // this.selList = this.memberList.filter(i => i.checked)
|
| | | // // |
| | | item.checked = !item.checked
|
| | | const i = this.selList.findIndex(a => a.id === item.id)
|
| | | if (item.checked && i === -1) {
|
| | | this.selList.push(item)
|
| | | } else {
|
| | | this.selList.splice(i, 1)
|
| | | }
|
| | | this.$forceUpdate()
|
| | | },
|
| | | openSeleter() {
|
| | | this.isShowSelMem = true
|
| | | this.selList.forEach(item => {
|
| | | item.checkedTemp = true
|
| | | })
|
| | | this.$forceUpdate()
|
| | | },
|
| | | initData() {
|
| | | const {
|
| | | param,
|
| | | pagination
|
| | | } = this
|
| | | userPagePost({
|
| | | ...param, |
| | | querySpecial: 1, type: 2, companyType: 1,workStatus:0
|
| | |
|
| | | }).then(res => {
|
| | | this.memberList = res.data || []
|
| | | this.memberList.forEach(i => {
|
| | | const index = this.selList.findIndex(ite => ite.id === i.id)
|
| | | i.checked = index > -1
|
| | | })
|
| | | })
|
| | | },
|
| | | closeModal() {
|
| | | this.selList.forEach(item => {
|
| | | item.checkedTemp = true
|
| | | })
|
| | | this.isShowSelMem = false
|
| | | },
|
| | | subSelMem() {
|
| | | const {
|
| | | memberList
|
| | | } = this
|
| | | this.selList = this.selList.filter(i => i.checkedTemp)
|
| | | memberList.forEach(ite => {
|
| | | const index = this.selList.findIndex(i => i.id === ite.id)
|
| | | ite.checked = index > -1
|
| | | })
|
| | | this.isShowSelMem = false
|
| | | this.$forceUpdate()
|
| | | },
|
| | | handleRemove(i) {
|
| | | this.selList[i].checkedTemp = false
|
| | | this.$forceUpdate()
|
| | | },
|
| | | }
|
| | | };
|
| | | closeModal() {
|
| | | this.selList.forEach(item => {
|
| | | item.checkedTemp = true
|
| | | })
|
| | | this.isShowSelMem = false
|
| | | },
|
| | | subSelMem() {
|
| | | const {
|
| | | memberList
|
| | | } = this
|
| | | this.selList = this.selList.filter(i => i.checkedTemp)
|
| | | memberList.forEach(ite => {
|
| | | const index = this.selList.findIndex(i => i.id === ite.id)
|
| | | ite.checked = index > -1
|
| | | })
|
| | | this.isShowSelMem = false
|
| | | this.$forceUpdate()
|
| | | },
|
| | | handleRemove(i) {
|
| | | this.selList[i].checkedTemp = false
|
| | | this.$forceUpdate()
|
| | | },
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss">
|
| | | .modal {
|
| | | padding: 40rpx 30rpx;
|
| | | max-height: 1000rpx;
|
| | | .main_app {
|
| | | position: relative;
|
| | | }
|
| | |
|
| | | .modal_header {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | padding-bottom: 20rpx;
|
| | | .modal {
|
| | | padding: 40rpx 30rpx;
|
| | | max-height: 1000rpx;
|
| | |
|
| | | .status {
|
| | | font-weight: 600;
|
| | | }
|
| | | .modal_header {
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | padding-bottom: 20rpx;
|
| | |
|
| | | .btn {
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | }
|
| | |
|
| | | .modal_mem_list {
|
| | | max-height: 860rpx;
|
| | | overflow: auto;
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding: 30rpx 0;
|
| | |
|
| | | .avatar {
|
| | | width: 64rpx;
|
| | | height: 64rpx;
|
| | | border-radius: 50%;
|
| | | overflow: hidden;
|
| | | margin-right: 20rpx;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | background-color: $uni-color-primary;
|
| | | color: #fff;
|
| | | }
|
| | |
|
| | | .content {
|
| | | flex: 1;
|
| | |
|
| | | .depart {
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | }
|
| | |
|
| | | .info {
|
| | | display: flex;
|
| | | margin-bottom: 16rpx;
|
| | |
|
| | | .name {
|
| | | font-size: 30rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .btn {
|
| | | width: 80rpx;
|
| | | height: 48rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | font-size: 24rpx;
|
| | | color: #333333;
|
| | | border-radius: 4rpx;
|
| | | border: 1rpx solid #999999;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .sub_wrap {
|
| | | position: fixed;
|
| | | bottom: 0;
|
| | | background-color: #fff;
|
| | | left: 0;
|
| | | width: 100%;
|
| | | box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
|
| | | padding: 30rpx 30rpx 42rpx;
|
| | |
|
| | | .sel_mem {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | .members {
|
| | | width: 500rpx;
|
| | | color: $uni-color-primary;
|
| | | white-space: nowrap;
|
| | | overflow: hidden; //文本超出隐藏
|
| | | text-overflow: ellipsis;
|
| | | margin-right: 20rpx;
|
| | | }
|
| | |
|
| | | .open_icon {
|
| | | width: 44rpx;
|
| | | height: 44rpx;
|
| | | }
|
| | | .status {
|
| | | font-weight: 600;
|
| | | }
|
| | |
|
| | | .btn {
|
| | | width: 690rpx;
|
| | | height: 88rpx;
|
| | | line-height: 88rpx;
|
| | | background: $uni-color-primary;
|
| | | border-radius: 44rpx;
|
| | | color: #fff;
|
| | | text-align: center;
|
| | | margin-top: 22rpx;
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | }
|
| | |
|
| | | .member_list { |
| | | height: calc( 100vh - 130rpx ); |
| | | overflow: auto; |
| | | margin-top: 10rpx;
|
| | | .modal_mem_list {
|
| | | max-height: 860rpx;
|
| | | overflow: auto;
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding: 30rpx 0;
|
| | | |
| | |
|
| | | .avatar {
|
| | | width: 64rpx;
|
| | | height: 64rpx;
|
| | | border-radius: 50%;
|
| | | overflow: hidden;
|
| | | margin-right: 20rpx;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | | background-color: $uni-color-primary;
|
| | | color: #fff;
|
| | | }
|
| | |
|
| | | .content {
|
| | |
| | | .name {
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .tag {
|
| | | font-size: 24rpx;
|
| | | border-radius: 4rpx;
|
| | | border: 1rpx solid #f62710;
|
| | | color: #f62710;
|
| | | padding: 0rpx 6rpx;
|
| | | margin-left: 8rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .checked {
|
| | | width: 48rpx;
|
| | | .btn {
|
| | | width: 80rpx;
|
| | | height: 48rpx;
|
| | | line-height: 48rpx;
|
| | | text-align: center;
|
| | | font-size: 24rpx;
|
| | | color: #333333;
|
| | | border-radius: 4rpx;
|
| | | border: 1rpx solid #999999;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .sub_wrap {
|
| | | position: fixed;
|
| | | bottom: 0;
|
| | | background-color: #fff;
|
| | | left: 0;
|
| | | width: 100%;
|
| | | box-shadow: 0rpx 0rpx 6rpx 0rpx #b2b2b2;
|
| | | padding: 30rpx 30rpx 42rpx;
|
| | |
|
| | | .sel_mem {
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | .members {
|
| | | width: 500rpx;
|
| | | color: $uni-color-primary;
|
| | | white-space: nowrap;
|
| | | overflow: hidden; //文本超出隐藏
|
| | | text-overflow: ellipsis;
|
| | | margin-right: 20rpx;
|
| | | }
|
| | |
|
| | | .open_icon {
|
| | | width: 44rpx;
|
| | | height: 44rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .btn {
|
| | | width: 690rpx;
|
| | | height: 88rpx;
|
| | | line-height: 88rpx;
|
| | | background: $uni-color-primary;
|
| | | border-radius: 44rpx;
|
| | | color: #fff;
|
| | | text-align: center;
|
| | | margin-top: 22rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .member_list {
|
| | | height: calc(100vh - 130rpx);
|
| | | overflow: auto;
|
| | | margin-top: 10rpx;
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | padding: 30rpx 0;
|
| | |
|
| | | .avatar {
|
| | | width: 64rpx;
|
| | | height: 64rpx;
|
| | | border-radius: 50%;
|
| | | overflow: hidden;
|
| | | margin-right: 20rpx;
|
| | | }
|
| | |
|
| | | .content {
|
| | | flex: 1;
|
| | |
|
| | | .depart {
|
| | | font-size: 24rpx;
|
| | | color: #666666;
|
| | | }
|
| | |
|
| | | .info {
|
| | | display: flex;
|
| | | margin-bottom: 16rpx;
|
| | |
|
| | | .name {
|
| | | font-size: 30rpx;
|
| | | }
|
| | |
|
| | | .tag {
|
| | | font-size: 24rpx;
|
| | | border-radius: 4rpx;
|
| | | border: 1rpx solid #f62710;
|
| | | color: #f62710;
|
| | | padding: 0rpx 6rpx;
|
| | | margin-left: 8rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .empty {
|
| | | width: 100%;
|
| | | height: 280rpx;
|
| | | .checked {
|
| | | width: 48rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .search_inp {
|
| | | height: 72rpx;
|
| | | background: #f7f7f7;
|
| | | border-radius: 4rpx;
|
| | | padding-left: 16rpx;
|
| | |
|
| | | .search {
|
| | | width: 28rpx;
|
| | | }
|
| | |
|
| | | input {
|
| | | flex: 1;
|
| | | font-size: 28rpx;
|
| | | color: #333333;
|
| | | }
|
| | | .empty {
|
| | | width: 100%;
|
| | | height: 280rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .search_inp {
|
| | | height: 72rpx;
|
| | | background: #f7f7f7;
|
| | | border-radius: 4rpx;
|
| | | padding-left: 16rpx;
|
| | |
|
| | | .search {
|
| | | width: 28rpx;
|
| | | }
|
| | |
|
| | | input {
|
| | | flex: 1;
|
| | | font-size: 28rpx;
|
| | | color: #333333;
|
| | | }
|
| | | }
|
| | | </style> |
| | |
| | | <text>预计用车时段</text> |
| | | </view> |
| | | <view class="value" @click="$goBack()"> |
| | | <text |
| | | class="mr6" |
| | | :style="{ color: param.startTime ? '#000000' : '#999999' }" |
| | | > |
| | | <text class="mr6" :style="{ color: param.startTime ? '#000000' : '#999999' }"> |
| | | <text v-if="param.startTime"> |
| | | {{ param.startTime.slice(5, 16) }}至{{ |
| | | param.endTime.slice(5, 16) |
| | |
| | | <text>申请车辆</text> |
| | | </view> |
| | | <view class="value" @click="$goBack()"> |
| | | <input |
| | | type="text" |
| | | disabled |
| | | placeholder="请输入申请车辆" |
| | | v-model="param.carCode" |
| | | placeholder-style="color: #999999;" |
| | | /> |
| | | <input type="text" disabled placeholder="请输入申请车辆" v-model="param.carCode" |
| | | placeholder-style="color: #999999;" /> |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | |
| | | <text>预计出发时间</text> |
| | | </view> |
| | | <view class="value" @click="isShowDatetime = true"> |
| | | <text |
| | | class="mr6" |
| | | :style="{ color: param.planUseDate ? '#000000' : '#999999' }" |
| | | >{{ param.planUseDate ? param.planUseDate : "请选择" }}</text |
| | | > |
| | | <text class="mr6" :style="{ color: param.planUseDate ? '#000000' : '#999999' }">{{ param.planUseDate ? |
| | | param.planUseDate : "请选择" }}</text> |
| | | <u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon> |
| | | </view> |
| | | </view> |
| | |
| | | <text>目的地</text> |
| | | </view> |
| | | <view class="value"> |
| | | <input |
| | | type="text" |
| | | placeholder="请输入" |
| | | v-model="param.addr" |
| | | placeholder-style="color: #999999;" |
| | | /> |
| | | <input type="text" placeholder="请输入" v-model="param.addr" placeholder-style="color: #999999;" /> |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | |
| | | <text>乘车人员</text> |
| | | </view> |
| | | <view class="value" @click="selPeople"> |
| | | <text |
| | | class="mr6" |
| | | :style="{ |
| | | color: |
| | | param.memberList && param.memberList.length > 0 |
| | | ? '#000000' |
| | | : '#999999', |
| | | }" |
| | | > |
| | | <text class="mr6" :style="{ |
| | | color: |
| | | param.memberList && param.memberList.length > 0 |
| | | ? '#000000' |
| | | : '#999999', |
| | | }"> |
| | | <text v-if="param.memberNames"> |
| | | <text v-for="(mem, i) in param.memberList" :key="mem.id"> |
| | | <template v-if="i < 2"> |
| | |
| | | <text v-if="i < 1 && param.memberList.length > 1">,</text> |
| | | </template> |
| | | </text> |
| | | <text v-if="param.memberList.length > 2" |
| | | >等{{ param.memberList.length }}人</text |
| | | > |
| | | <text v-if="param.memberList.length > 2">等{{ param.memberList.length }}人</text> |
| | | </text> |
| | | <text v-else>请选择</text> |
| | | </text> |
| | |
| | | <text>用车事由</text> |
| | | </view> |
| | | <view class="value"> |
| | | <textarea |
| | | type="text" |
| | | placeholder="请输入" |
| | | :maxlength="-1" |
| | | v-model="param.content" |
| | | placeholder-style="color: #999999;" |
| | | /> |
| | | <textarea type="text" placeholder="请输入" :maxlength="-1" v-model="param.content" |
| | | placeholder-style="color: #999999;" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="tip"> |
| | | <view class="title">注意事项:</view> |
| | | <view class="line" |
| | | >1、公司车辆外出需办理用车申请表,经批准后方可外出(借出)。</view |
| | | > |
| | | <view class="line">1、公司车辆外出需办理用车申请表,经批准后方可外出(借出)。</view> |
| | | <view class="line">2、市外用车需总经办审批。</view> |
| | | <view class="line" |
| | | >3、借出车辆必须遵守交通规则,安全行驶。对于车辆发生交通意外,对当事人及第三方造成人身伤害及损失,公司可以协助处理保险公司赔偿相关事宜,但不承担任何责任和费用。</view |
| | | > |
| | | <view class="line" |
| | | >4、公司借给申请人用车,申请借车人为第一责任人,不允许转借给其他人使用,若要借给他人使用。责任人要承担全部责任。</view |
| | | > |
| | | <view class="sub_btn" @click="handleSub">提交</view> |
| | | <view class="line">3、借出车辆必须遵守交通规则,安全行驶。对于车辆发生交通意外,对当事人及第三方造成人身伤害及损失,公司可以协助处理保险公司赔偿相关事宜,但不承担任何责任和费用。</view> |
| | | <view class="line">4、公司借给申请人用车,申请借车人为第一责任人,不允许转借给其他人使用,若要借给他人使用。责任人要承担全部责任。</view> |
| | | <view class="sub_btn" @click="handleSub">提交</view> |
| | | </view> |
| | | <!-- --> |
| | | <!-- :minDate="new Date(param.startTime).getTime()" |
| | | :maxDate="new Date(param.endTime).getTime()" --> |
| | | <u-datetime-picker |
| | | :show="isShowDatetime" |
| | | @confirm="confirmDate" |
| | | :minDate="new Date(param.startTime).getTime()" |
| | | :maxDate="new Date(param.endTime).getTime()" |
| | | @cancel="isShowDatetime = false" |
| | | mode="datetime" |
| | | ></u-datetime-picker> |
| | | <u-datetime-picker :show="isShowDatetime" @confirm="confirmDate" :minDate="new Date(param.startTime).getTime()" |
| | | :maxDate="new Date(param.endTime).getTime()" @cancel="isShowDatetime = false" mode="datetime"></u-datetime-picker> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | mounted() { |
| | | this.$eventBus.$on('applePeo', (res) => { |
| | | this.$set(this.param, 'memberList', res) |
| | | this.$set(this.param, 'memberIds', res.map(i => i.id).join(',')) |
| | | this.$set(this.param, 'memberIds', res.map(i => i.memberId).join(',')) |
| | | this.$set(this.param, 'memberNames', res.map(i => i.realname).join(',')) |
| | | }) |
| | | }, |
| | |
| | | console.log(option) |
| | | this.param = { ...option } |
| | | this.minDate = new Date().getTime() |
| | | this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm') |
| | | this.param.planUseDate = dayjs(this.param.startTime).format('YYYY-MM-DD HH:mm') |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page{ |
| | | background-color: #f7f7f7; |
| | | } |
| | | page { |
| | | background-color: #f7f7f7; |
| | | } |
| | | |
| | | .main_wrap { |
| | | .line { |
| | | display: flex; |
| | |
| | | align-items: center; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | padding: 30rpx; |
| | | background-color: #fff; |
| | | width: 750rpx; |
| | | margin: 0 -30rpx; |
| | | background-color: #fff; |
| | | width: 750rpx; |
| | | margin: 0 -30rpx; |
| | | |
| | | .label { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | |
| | | text { |
| | | &:nth-child(1) { |
| | | color: #e42d2d; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .value { |
| | | flex: 1; |
| | | height: 100%; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | |
| | | input { |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .upload_line { |
| | | padding: 30rpx; |
| | | width: 750rpx; |
| | | margin: 0 -30rpx; |
| | | background-color: #fff; |
| | | width: 750rpx; |
| | | margin: 0 -30rpx; |
| | | background-color: #fff; |
| | | |
| | | textarea { |
| | | margin-top: 12rpx; |
| | | width: 100%; |
| | |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | |
| | | .adduser_list_item_ipt1_upload { |
| | | margin-top: 24rpx; |
| | | width: 120rpx; |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | overflow: hidden; |
| | | |
| | | image { |
| | | width: 100%; |
| | | height: 100%; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .sub_btn { |
| | | // position: fixed; |
| | | // bottom: 84rpx; |
| | | // left: 30rpx; |
| | | margin-top: 60rpx; |
| | | margin-top: 60rpx; |
| | | width: 690rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | |
| | | font-size: 30rpx; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .tip { |
| | | background: #f7f7f7; |
| | | padding: 30rpx 30rpx 10rpx; |
| | | margin: 0 -30rpx; |
| | | |
| | | .title { |
| | | line-height: 40rpx; |
| | | margin-bottom: 22rpx; |
| | | } |
| | | |
| | | .line { |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | |
| | | .main_app { |
| | | padding-bottom: 0; |
| | | // padding-top: 10rpx; |