Commit a7fdc1c7 by weix

运单相关功能

parent 96dc17bb
...@@ -10499,6 +10499,11 @@ ...@@ -10499,6 +10499,11 @@
"is-plain-obj": "^1.0.0" "is-plain-obj": "^1.0.0"
} }
}, },
"sortablejs": {
"version": "1.10.2",
"resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
"integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
},
"source-list-map": { "source-list-map": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
...@@ -11877,6 +11882,14 @@ ...@@ -11877,6 +11882,14 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true "dev": true
}, },
"vuedraggable": {
"version": "2.24.3",
"resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.3.tgz",
"integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==",
"requires": {
"sortablejs": "1.10.2"
}
},
"vuex": { "vuex": {
"version": "3.6.2", "version": "3.6.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz",
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
"vue-clipboard2": "^0.3.1", "vue-clipboard2": "^0.3.1",
"vue-jsonp": "^2.0.0", "vue-jsonp": "^2.0.0",
"vue-router": "^3.2.0", "vue-router": "^3.2.0",
"vuedraggable": "^2.24.3",
"vuex": "^3.4.0" "vuex": "^3.4.0"
}, },
"devDependencies": { "devDependencies": {
......
const getActions = (h, value, data) => { const getActions = (h, value, data) => {
let result = value.filter(n => { let result = value.filter(n => {
let { filter = () => true } = n; let {filter = () => true} = n;
return filter.call(n, data); return filter.call(n, data);
}); });
return result.map(a => { return result.map(a => h('span', {class: 'btn', on: {click: () => a.click(data)}, key: a.prop}, a.label))
if (a.isShow === undefined || a.isShow(data)) { }
return h(
"span",
{
class: "el-button el-button--text",
on: { click: () => a.click(data) },
key: a.prop
},
a.label
);
}
});
};
export default { export default {
functional: true, functional: true,
render: (h, { props: { value, data } }) => { render: (h, {props: {value, data}}) => {
return h("div", { class: "" }, getActions(h, value, data)); return h('div', {class: 'el-button el-button--text'}, getActions(h, value, data))
} }
}; }
<template functional> <template functional>
<span>{{ props.value | formatDate }}</span> <span>{{props.value | dateFilter('1')}}</span>
</template> </template>
<template functional> <template functional>
<span>{{props.value}}</span> <span>{{props.value==0||props.value?props.value:'/'}}</span>
</template> </template>
<template> <template>
<router-link :to="{path,query: params}">{{ value }}</router-link> <router-link :to="{path,query: params}">{{ value ? value : '/' }}</router-link>
</template> </template>
<script> <script>
export default { export default {
...@@ -16,15 +16,15 @@ export default { ...@@ -16,15 +16,15 @@ export default {
} }
} }
}, },
computed:{ computed: {
//路由path //路由path
path(){ path () {
// console.info(this.data) // console.info(this.data)
const {path} = this.query(this.data) const { path } = this.query(this.data)
return path return path
}, },
params(){ params () {
const {payload} = this.query(this.data) const { payload } = this.query(this.data)
// console.log(payload) // console.log(payload)
return payload return payload
} }
......
<template> <template>
<el-table :data="data" style="width: 100%;" v-bind="dataSource.attrs"> <el-table :data="data"
<el-table-column style="width: 100%;"
type="index" v-bind="dataSource.attrs">
align="center" <el-table-column type="index" align="center" width="50" label="编号"></el-table-column>
width="50"
label="编号"
></el-table-column>
<el-table-column <el-table-column
v-for="n in orderConfig.headers" v-for="n in orderConfig.headers"
:prop="n.prop" :prop="n.prop"
:label="n.name" :label="n.name"
:key="n.prop" :key="n.prop"
v-bind="{ ...columnAttrs, ...n.attrs }" v-bind="{...columnAttrs,...n.attrs}">
> <template slot-scope="{row}">
<template slot-scope="{ row }"> <Cell :config="n" :data="row" v-if="!n.copy"/>
<Cell :config="n" :data="row" v-if="!n.copy" /> <copyAndMore :config="n" :data="row" v-else/>
<copyAndMore :config="n" :data="row" v-else />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</template> </template>
<script> <script>
import Cell from "./cell"; import Cell from './cell'
import copyAndMore from "./copyAndMore"; import copyAndMore from "./copyAndMore";
export default { export default {
name: "Row.vue", name: "Row",
components: { components:{
Cell, Cell,
copyAndMore copyAndMore
}, },
props: { props: {
orderConfig: { orderConfig: {
type: Object, type:Object,
default: {} default: {}
}, },
data: Array data: Array
}, },
data() { data(){
return { return {
columnAttrs: { columnAttrs: {
align: "center", align: 'center',
resizable: false resizable: false
}, },
dataSource: { dataSource: {
on: this.getTableEvents(), on: this.getTableEvents(),
attrs: { attrs: {
border: true, border: true,
stripe: true stripe: true,
},
...this.orderConfig,
}, },
...this.orderConfig
} }
}; },
created () {
console.info(this.data)
}, },
methods: { methods: {
getTableEvents() { getTableEvents() {
let { hasCheckbox = false } = this.orderConfig, let {hasCheckbox = false} = this.orderConfig, events = {}, _this = this;
events = {},
_this = this;
if (hasCheckbox) { if (hasCheckbox) {
// 绑定事件 // 绑定事件
Object.assign(events, { Object.assign(events, {
"selection-change"(v) { 'selection-change'(v) {
_this.checked = v; _this.checked = v;
} },
// 'sort-change'(column) { // 'sort-change'(column) {
// _this.$emit('sortChange', column) // _this.$emit('sortChange', column)
// }, // },
...@@ -74,10 +71,8 @@ export default { ...@@ -74,10 +71,8 @@ export default {
// }, // },
}); });
} }
return events; return events
} }
} }
}; }
</script> </script>
<style scoped></style>
<template>
<div>
<el-switch
v-model="data.status"
@change="changeStatus"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</div>
</template>
<script>
export default {
name: "switchOrCustom",
props: ["data"],
methods: {
changeStatus(val) {
this.$emit('switchStatus',this.data)
}
}
};
</script>
<style lang="scss">
</style>
...@@ -7,6 +7,7 @@ import Link from './Link.vue'; ...@@ -7,6 +7,7 @@ import Link from './Link.vue';
import Format from './Format.vue'; import Format from './Format.vue';
import Popover from './Popover.vue'; import Popover from './Popover.vue';
import MoreCell from "./MoreCell"; import MoreCell from "./MoreCell";
import Switch from "./Switch";
export { export {
Date, Date,
...@@ -17,5 +18,6 @@ export { ...@@ -17,5 +18,6 @@ export {
Link, Link,
Format, Format,
Popover, Popover,
MoreCell MoreCell,
Switch
} }
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<div>{{ data[config.copy] }}</div> <div>{{ data[config.copy] }}</div>
<i class="el-icon-document-copy"></i> <i class="el-icon-document-copy"></i>
</div> </div>
<div v-else></div>
</div> </div>
</template> </template>
......
<template> <template>
<el-table <el-table
ref="singleTable"
:data="config.data" :data="config.data"
style="width: 100%" style="width: 100%"
class="container-table"
v-on="cfg.on" v-on="cfg.on"
v-bind="cfg.attrs" v-bind="cfg.attrs">
>
<!-- <el-table-column v-if="cfg.hasCheckbox" v-bind="selectionAttrs" type="selection" width="55" label="xx"></el-table-column>--> <!-- <el-table-column v-if="cfg.hasCheckbox" v-bind="selectionAttrs" type="selection" width="55" label="xx"></el-table-column>-->
<el-table-column type="expand" v-if="orderConfig"> <el-table-column type="expand" v-if="orderConfig">
<template slot-scope="{ row }"> <template slot-scope="{row}">
<Row :orderConfig="orderConfig" :data="row.orderInfoList"></Row> <Row :orderConfig="orderConfig" :data="row.orderInfoList"></Row>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column type="index" align="center" width="50" label="编号"></el-table-column>
type="index"
align="center"
width="50"
label="编号"
></el-table-column>
<el-table-column <el-table-column
v-for="n in cfg.headers" v-for="n in cfg.headers"
v-if="n.disabled" v-if="n.disabled"
:prop="n.prop" :prop="n.prop"
:label="n.name" :label="n.name"
:key="n.prop" :key="n.prop"
v-bind="{ ...columnAttrs, ...n.attrs }" v-bind="{...columnAttrs,...n.attrs}">
> <template slot-scope="{row}">
<template slot-scope="{ row }"> <copyAndMore :config="n" :data="row" v-if="n.copy"/>
<Cell :config="n" :data="row" v-if="!n.copy" /> <SwitchOrCustom @switchStatus="switchStatus" :data="row" v-else-if="n.switch"/>
<copyAndMore :config="n" :data="row" v-else /> <Cell :config="n" :data="row" v-else/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</template> </template>
<script> <script>
import Cell from "./cell"; import Cell from './cell'
import Row from "./Row"; import Row from './Row'
import SwitchOrCustom from './Switch'
import copyAndMore from "./copyAndMore"; import copyAndMore from "./copyAndMore";
export default { export default {
components: { components: {
Cell, Cell,
copyAndMore,
Row, Row,
copyAndMore SwitchOrCustom
}, },
props: { props: {
config: { config: {
type: Object, type:Object,
default: {} default: {}
}, },
orderConfig: Object orderConfig: Object
}, },
watch: { watch: {
"config.headers": { "config.headers": {
handler(newVal, oldVal) { handler(newVal,oldVal){
this.updateDataList(newVal); // console.log(oldVal)
// console.log(newVal)
// this.cfg.headers=newVal
// this.$forceUpdate()
this.updateDataList(newVal)
} }
}, },
cfg: { cfg: {
handler(newVal, oldVal) { handler(newVal,oldVal){
console.log(newVal); console.log(newVal)
},
deep: true
}, },
"config.data": { deep: true,
handler(newVal) {
if (newVal.length > 0 && !!this.config.isSelect) {
// 这的判断是因为要默认选择第一条数据而加的
this.$nextTick(() => {
this.$refs.singleTable.setCurrentRow(this.config.data[0]);
});
}
}, },
immediate: true
}
}, },
data() { data() {
return { return {
columnAttrs: { columnAttrs: {
align: "left", align: 'center',
resizable: false resizable: false
}, },
cfg: { cfg: {
on: this.getTableEvents(), on: this.getTableEvents(),
attrs: { attrs: {
border: true, border: true,
stripe: true stripe: true,
}, },
...this.config ...this.config,
}, },
checked: [] checked: [],
}; }
}, },
methods: { methods: {
getTableEvents() { getTableEvents() {
let { hasCheckbox = false } = this.config, let {hasCheckbox = false} = this.config, events = {}, _this = this;
events = {},
_this = this;
if (hasCheckbox) { if (hasCheckbox) {
// 绑定事件 // 绑定事件
Object.assign(events, { Object.assign(events, {
"selection-change"(v) { 'selection-change'(v) {
_this.checked = v; _this.checked = v;
}, },
"sort-change"(column) { 'sort-change'(column) {
_this.$emit("sortChange", column); // if (column.order == 'descending') {
}, // this.selectResult.orderFlag = column.prop;
"row-dblclick"(v) { // this.selectResult.order = 'desc';
// } else if (column.order == 'ascending') {
// this.selectResult.orderFlag = column.prop;
// this.selectResult.order = 'asc';
// } else {
// this.selectResult.orderFlag = '';
// this.selectResult.order = '';
// }
// this.sortRule.order = column.order;
// this.sortRule.prop = column.prop;
// this.page = 1;
// this.getData()
_this.$emit('sortChange', column)
},
'row-dblclick'(v) {
//双击进入订单详情 //双击进入订单详情
_this.$emit("orderClick", v); _this.$emit('orderClick', v)
}, },
"current-change"(v) {
// 选择
_this.$emit("selectCurrentChange", v);
}
// 'cell-click'(v) { // 'cell-click'(v) {
// _this.$emit('orderClick', v) // _this.$emit('orderClick', v)
// }, // },
}); });
} }
return events; return events
}, },
updateDataList(newVal) { updateDataList(newVal){
let newData = []; let newData = [];
newData = newData.concat(newVal); newData = newData.concat(newVal);
this.cfg.headers = []; this.cfg.headers = [];
this.cfg.headers.push(...newData); this.cfg.headers.push(...newData)
this.cfg.data = []; this.cfg.data = []
this.cfg.data.push(...this.config.data); this.cfg.data.push(...this.config.data)
console.log(this.cfg); console.log(this.cfg)
},
switchStatus(val){
this.$emit('activityStatus', val)
} }
} }
}; }
</script> </script>
<style lang="scss" scoped>
//.container-table{
// ::v-deep{
// .el-table, .el-table__expanded-cell{
// background-color: rgba(0,0,0,0.1);
// }
// .el-table__expanded-cell:hover{
// background-color: rgba(0,0,0,0.1)!important;
// }
// }
//}
</style>
...@@ -5,6 +5,38 @@ ...@@ -5,6 +5,38 @@
const dataSource = { const dataSource = {
'localOrgId': [], 'localOrgId': [],
'localTransportId': [], 'localTransportId': [],
'RunTypes': [
{
'id': '1',
'name': '同城用车',
'isShow': true
},
{
'id': '2',
'name': '跨城出行',
'isShow': true
},
{
'id': '3',
'name': '接送用车',
'isShow': true
},
{
'id': '4',
'name': '公务用车',
'isShow': false
},
{
'id': '5',
'name': '货运',
'isShow': true
},
{
'id': '6',
'name': '包车',
'isShow': true
}
],
'operateList': [], 'operateList': [],
'Typecities': [ 'Typecities': [
{ {
...@@ -138,6 +170,52 @@ const dataSource = { ...@@ -138,6 +170,52 @@ const dataSource = {
'name': '预约' 'name': '预约'
} }
], ],
'waybillStatusList': [
{
id: '0',
name: '派单中'
},
{
id: '1',
name: '已派单'
},
{
id: '2',
name: '开始行程'
},
{
id: '4',
name: '乘客上车'
},
{
id: '6',
name: '结束服务'
},
{
id: '11',
name: '用户已取消'
},
{
id: '12',
name: '司机拒单'
},
{
id: '13',
name: '系统销单'
},
{
id: '14',
name: '司机已取消'
},
{
id: '15',
name: '同程已取消'
},
{
id: '16',
name: '调度已取消'
}
],
'paymentList': [ 'paymentList': [
{ {
'id': '1', 'id': '1',
......
...@@ -666,6 +666,63 @@ export default { ...@@ -666,6 +666,63 @@ export default {
return '/' return '/'
} }
}, },
BrandText (type) {
switch (type) {
case '61fdff1d455c4ab8a2efc564c245b905':
return '华哥出行'
case 'ea72c5a2563d3e3b16181c416ebbdf72':
return '刘备出行'
case 'dad52b5719e3202e32a6619e14d0ccec':
return '领航约车'
default :
}
},
waybillOrderStatusText (status) {
status = Number(status)
switch (status) {
case 0:
return '派单中'
case 1:
return '已派单'
case 2:
return '开始行程'
case 3:
return '已出发-行程开始'
case 4:
return '乘客上车'
case 5:
return '服务中-已到达'
case 6:
return '结束服务'
case 7:
return '派单失败'
case 11:
return '用户已取消'
case 12:
return '司机拒单'
case 13:
return '系统销单'
case 14:
return '司机已取消'
case 15:
return '同程已取消'
case 16:
return '调度已取消'
default :
}
},
carTypeListText(val) { carTypeListText(val) {
let type = Number(val) let type = Number(val)
switch (type) { switch (type) {
......
...@@ -43,6 +43,12 @@ export function organizationsdeptsList(data = {}, parentid, id) { ...@@ -43,6 +43,12 @@ export function organizationsdeptsList(data = {}, parentid, id) {
return get(url, data) return get(url, data)
} }
/*查询部门人员新(有分页)*/
export function organizationsdeptsListNew(data = {}, parentid, id) {
const url = process.env.VUE_APP_BASE_API2_ + '/organize/organization/' + parentid + '/depts/' + id + '/v2'
return get(url, data)
}
/*删除部门*/ /*删除部门*/
export function organizationsdeptsDeleteS(data = {}, parentid, deptid) { export function organizationsdeptsDeleteS(data = {}, parentid, deptid) {
const url = process.env.VUE_APP_BASE_API2_ + '/organize/organization/' + parentid + '/depts?deptId=' + deptid const url = process.env.VUE_APP_BASE_API2_ + '/organize/organization/' + parentid + '/depts?deptId=' + deptid
......
...@@ -4,6 +4,11 @@ export function getRegionManageList(data = {}) { ...@@ -4,6 +4,11 @@ export function getRegionManageList(data = {}) {
const url = process.env.VUE_APP_BASE_API5 + '/area/V2/condition'; const url = process.env.VUE_APP_BASE_API5 + '/area/V2/condition';
return get(url, data) return get(url, data)
} }
// 根据品牌获取列表
export function getRegionManageListByPlatform(u ,data = {}) {
const url = 'https://' + u + '/brand/area/V2/condition';
return get(url, data)
}
//虚拟号配置查询列表 //虚拟号配置查询列表
export function getConfigurationList(platformId,startPage,pageNumber) { export function getConfigurationList(platformId,startPage,pageNumber) {
const url = process.env.VUE_APP_BASE_API5 + `/virtualNumber/select/virtualNumber/table/${platformId}/${startPage}/${pageNumber}`; const url = process.env.VUE_APP_BASE_API5 + `/virtualNumber/select/virtualNumber/table/${platformId}/${startPage}/${pageNumber}`;
......
...@@ -183,6 +183,21 @@ export const routes = [ ...@@ -183,6 +183,21 @@ export const routes = [
}, },
children: [ children: [
{ {
path: 'order-manager',
name: 'OrderManager',
component: () =>
import ('@/views/business/waybillManagement/index.vue'),
meta: { icon: 'el-icon-document', title: '运单列表' }
},
{
path: 'waybill-Detail',
name: 'waybillDetail',
component: () =>
import ('@/views/business/waybillManagement/waybillDetail.vue'),
meta: { title: '运单详情' },
hidden: true
},
{
path: 'complaint-list', path: 'complaint-list',
name: 'complaintList', name: 'complaintList',
component: () => component: () =>
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</div> </div>
<div> <div>
<span> 自定义分组 </span> <span> 自定义分组 </span>
<div> <div v-if="departmentdatas.length > 0 && departmentdatas[0].hasOwnProperty('children')">
<div <div
class="text itemlist" class="text itemlist"
...@@ -53,10 +53,12 @@ ...@@ -53,10 +53,12 @@
<i class="el-icon-more list-ico-btn"></i> <i class="el-icon-more list-ico-btn"></i>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="editorBtn(items)" <el-dropdown-item @click.native="editorBtn(items)"
>编辑</el-dropdown-item >编辑
</el-dropdown-item
> >
<el-dropdown-item @click.native="deleteDepartments(items)" <el-dropdown-item @click.native="deleteDepartments(items)"
>删除</el-dropdown-item >删除
</el-dropdown-item
> >
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
...@@ -181,31 +183,41 @@ ...@@ -181,31 +183,41 @@
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" v-on:click="editorBtn(scope.row)" <el-button type="text" v-on:click="editorBtn(scope.row)"
>编辑</el-button >编辑
</el-button
> >
<el-button <el-button
type="text" type="text"
@click="shiftOut(scope.row)" @click="shiftOut(scope.row)"
style="color: #d9001b" style="color: #d9001b"
v-if="!butStatus" v-if="!butStatus"
>删除</el-button >删除
</el-button
> >
<el-button type="text" @click="shiftOutL(scope.row)" v-else <el-button type="text" @click="shiftOutL(scope.row)" v-else
>移出</el-button >移出
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination" v-if="total > rows"> <div class="pagination" style="text-align: right;">
<el-pagination <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page="current_change" :current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="10" :page-size="10"
layout="total, sizes, prev, pager, next, jumper" layout="total, prev, pager, next, jumper"
:total="total" :total="total"
> >
<!-- <el-pagination-->
<!-- @size-change="handleSizeChange"-->
<!-- @current-change="handleCurrentChange"-->
<!-- :current-page="current_change"-->
<!-- :page-sizes="[10, 20, 50, 100]"-->
<!-- :page-size="10"-->
<!-- layout="total, sizes, prev, pager, next, jumper"-->
<!-- :total="total"-->
<!-- >-->
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
...@@ -273,14 +285,16 @@ ...@@ -273,14 +285,16 @@
type="text" type="text"
v-on:click="auditUserF(1, scope.row)" v-on:click="auditUserF(1, scope.row)"
v-if="scope.row.status * 1 == 0" v-if="scope.row.status * 1 == 0"
>通过</el-button >通过
</el-button
> >
<el-button <el-button
type="text" type="text"
@click="auditUserF(2, scope.row)" @click="auditUserF(2, scope.row)"
style="color: #d9001b" style="color: #d9001b"
v-if="scope.row.status * 1 == 0" v-if="scope.row.status * 1 == 0"
>驳回</el-button >驳回
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
...@@ -352,6 +366,7 @@ import { ...@@ -352,6 +366,7 @@ import {
organizationsInfo, organizationsInfo,
organizationuser, organizationuser,
organizationsdeptsList, organizationsdeptsList,
organizationsdeptsListNew,
organizationsdeptOut, organizationsdeptOut,
organizationOut, organizationOut,
organizationOthers1, organizationOthers1,
...@@ -524,6 +539,7 @@ export default { ...@@ -524,6 +539,7 @@ export default {
this.getData(this.billState, this.page, this.month, this.rows, this.sort); this.getData(this.billState, this.page, this.month, this.rows, this.sort);
}, },
handleCurrentChange(page) { handleCurrentChange(page) {
debugger
this.page = page; this.page = page;
this.getData(this.billState, this.page, this.month, this.rows, this.sort); this.getData(this.billState, this.page, this.month, this.rows, this.sort);
}, },
...@@ -803,8 +819,8 @@ export default { ...@@ -803,8 +819,8 @@ export default {
}); });
}, },
handleNodeClick(data) { handleNodeClick(data) {
this.searchinput=""; this.searchinput = "";
this.tableData=[]; this.tableData = [];
this.searchinputStatus = true; this.searchinputStatus = true;
this.butStatus = true; this.butStatus = true;
this.total = 0; this.total = 0;
...@@ -824,9 +840,15 @@ export default { ...@@ -824,9 +840,15 @@ export default {
this.search = data.label; this.search = data.label;
this.page = 1; this.page = 1;
this.removeShow = true; this.removeShow = true;
organizationsdeptsList({}, this.parentid, data.deptid).then((res) => { organizationsdeptsListNew({page: this.page, rows: this.rows}, this.parentid, data.deptid).then((res) => {
this.tableData = res.data.member; // this.tableData = res.data.member;
this.total = this.memberCount; // this.total = this.memberCount;
if(res.status === 200) {
this.tableData = res.data.detail;
this.total = res.data.total;
}else {
this.$message.error(res.msg);
}
}); });
}, },
getdepartmentdata() { getdepartmentdata() {
...@@ -1036,18 +1058,22 @@ export default { ...@@ -1036,18 +1058,22 @@ export default {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
padding: 30px; padding: 30px;
background: #ffffff; background: #ffffff;
.OrderListBoxRight { .OrderListBoxRight {
width: 100%; width: 100%;
.OrderListHeader { .OrderListHeader {
text-align: right; text-align: right;
margin-bottom: 16px; margin-bottom: 16px;
} }
.pagination { .pagination {
margin-top: 20px; margin-top: 20px;
text-align: center; text-align: center;
} }
} }
} }
.text { .text {
font-size: 14px; font-size: 14px;
} }
...@@ -1061,9 +1087,11 @@ export default { ...@@ -1061,9 +1087,11 @@ export default {
justify-content: space-between; justify-content: space-between;
padding-right: 0; padding-right: 0;
} }
.itemlist .el-icon-folder { .itemlist .el-icon-folder {
font-size: 18px; font-size: 18px;
} }
.itemlist .list-ico-btn { .itemlist .list-ico-btn {
transform: rotate(90deg); transform: rotate(90deg);
-ms-transform: rotate(90deg); -ms-transform: rotate(90deg);
...@@ -1073,25 +1101,30 @@ export default { ...@@ -1073,25 +1101,30 @@ export default {
color: #717171; color: #717171;
font-size: 13px; font-size: 13px;
} }
.itemlist > span:nth-child(1):hover { .itemlist > span:nth-child(1):hover {
background-color: #f5f7fa; background-color: #f5f7fa;
color: #1f53e6; color: #1f53e6;
} }
.itemlist > .active { .itemlist > .active {
background-color: #f5f7fa; background-color: #f5f7fa;
color: #1f53e6; color: #1f53e6;
} }
.adddepartment { .adddepartment {
display: flex; display: flex;
background: #fff; background: #fff;
padding: 8px 0; padding: 8px 0;
} }
.adddepartment > button { .adddepartment > button {
background: rgba(60, 108, 241, 1); background: rgba(60, 108, 241, 1);
height: 40px; height: 40px;
margin: 0 auto; margin: 0 auto;
width: 90%; width: 90%;
} }
.adddepartment > button:hover { .adddepartment > button:hover {
background: #3c6cf1; background: #3c6cf1;
border-color: #66b1ff; border-color: #66b1ff;
......
...@@ -139,8 +139,8 @@ export default { ...@@ -139,8 +139,8 @@ export default {
let search = this.form; let search = this.form;
let params = { let params = {
platformId: search.platformId, platformId: search.platformId,
transportIds: [this.transportId], transportIds: this.form.transportIds,
complaintLabel: search.complainCategory, // 投诉类别:1客户投诉2司机投诉 complaintLabel: this.form.complainCategory, // 投诉类别:1客户投诉2司机投诉
complaintType: search.complainWay, // 投诉类型:1线上投诉2电话投诉3建议 complaintType: search.complainWay, // 投诉类型:1线上投诉2电话投诉3建议
orderSource: search.orderSourceList, orderSource: search.orderSourceList,
status: search.processingStatus, status: search.processingStatus,
...@@ -153,7 +153,7 @@ export default { ...@@ -153,7 +153,7 @@ export default {
}; };
let loadingInstance = Loading.service({fullscreen: true}); let loadingInstance = Loading.service({fullscreen: true});
let res = await exportComplaint(params) let res = await exportComplaint(params)
let blob = new Blob([res], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"}); let blob = new Blob([res], {type: "application/vnd.openxmlformatsnh[nh-officedocument.spreadsheetml.sheet;charset=utf-8"});
let link = document.createElement('a'); let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob); link.href = window.URL.createObjectURL(blob);
loadingInstance.close(); loadingInstance.close();
......
<template>
<div id="demo">
<el-amap ref="maps" v-if="!!startLat" vid="amapDemo" :amap-manager="amapManager" :events="mapEvents"
class="amap-demo">
</el-amap>
</div>
</template>
<script>
import VueAMap from 'vue-amap'
let amapManager = new VueAMap.AMapManager()
export default {
name: 'maps',
props: ['startLat', 'startLng', 'endLat', 'endLng', 'polylines', 'opsList'],
data () {
return {
amapManager,
mapEvents: {}
}
},
watch: {
polylines (newValue) {
if (newValue.length > 0) {
this.reload(newValue)
}
}
},
created () {
this.initMap()
},
methods: {
initMap () {
let that = this
this.mapEvents = {
init (o) {
o.setMapStyle('amap://styles/macaron') // 自定义的高德地图的样式,我选的是马卡龙
let marker = new AMap.Marker({ // 点图标
position: [that.startLng, that.startLat]
})
o.setZoomAndCenter(16, [that.startLng, that.startLat])
marker.setMap(o)
o.plugin(['AMap.Driving'], function () {
var driving = new AMap.Driving({
map: o,
policy: 'REAL_TRAFFIC'
})
// driving.search(new AMap.LngLat(that.startLng, that.startLat), new AMap.LngLat(that.endLng, that.endLat), {}, function (status, result) {
driving.search(new AMap.LngLat(that.startLng, that.startLat), new AMap.LngLat(that.endLng, that.endLat), { waypoints: that.opsList ? that.opsList : [] }, function (status, result) {
if (status === 'complete') {
console.log('绘制成功')
} else {
console.log('绘制失败', result)
}
})
o.addControl(driving)
})
},
click: (e) => {
console.info(e)
},
mouseover: e => {
// e.target.setOptions({
// strokeColor: "#f31f2a",
// strokeWeight: 8
// });
},
mouseout: e => {
// e.target.setOptions({
// strokeColor: "#f31f2a",
// strokeWeight: 6
// });
}
}
if (this.polylines.length > 0) {
this.reload(this.polylines)
}
},
reload (path) {
let o = amapManager.getMap()
let Polyline = new AMap.Polyline({
map: o,
path: path, // 这里是轨迹的坐标拼成的数组
showDir: true,
strokeColor: '#28F', // 线颜色
// strokeOpacity: 1, //线透明度
strokeWeight: 6 // 线宽
// strokeStyle: "solid" //线样式
})
Polyline.setMap(o)
this.movingPolyline()
},
movingPolyline () {
let o = amapManager.getMap()
let passedPolyline = new AMap.Polyline({
map: o,
// path: lineArr,
strokeColor: '#AF5', // 线颜色
// strokeOpacity: 1, //线透明度
strokeWeight: 6 // 线宽
// strokeStyle: "solid" //线样式
})
let marker = new AMap.Marker({
map: o,
position: this.polylines[0],
icon: 'https://webapi.amap.com/images/car.png',
offset: new AMap.Pixel(-26, -13),
autoRotation: true,
angle: -90
})
marker.setMap(o)
marker.moveAlong(this.polylines, 2000)
marker.on('moving', function (e) {
passedPolyline.setPath(e.passedPath)
})
o.setFitView()
}
}
}
</script>
<style lang="scss" scoped>
.amap-demo {
width: 100%;
height: 100vh;
}
</style>
...@@ -117,9 +117,10 @@ ...@@ -117,9 +117,10 @@
<script> <script>
import bus from '@/utils/bus' import bus from '@/utils/bus'
import axios from 'axios' import axios from 'axios'
export default { export default {
name: 'JoiningEnterprise', name: 'JoiningEnterprise',
data () { data() {
return { return {
Business: '', Business: '',
BusinessName: '', BusinessName: '',
...@@ -131,26 +132,28 @@ export default { ...@@ -131,26 +132,28 @@ export default {
User: JSON.parse(sessionStorage.getItem('User')) User: JSON.parse(sessionStorage.getItem('User'))
} }
}, },
created () { created() {
bus.$emit('loginType', 1) bus.$emit('loginType', 1)
if (this.User.accounttype != 'AUTHENTICATED') { if (this.User.accounttype != 'AUTHENTICATED') {
this.$router.push('/Real') this.$router.push('/Real')
} }
}, },
methods: { methods: {
BusinessNameFun (val) { BusinessNameFun(val) {
console.info(val) console.info(val)
this.options.find(item => { if (item.organizeid == val) return this.BusinessName = item } this.options.find(item => {
if (item.organizeid == val) return this.BusinessName = item
}
) )
}, },
ToRenZheng () { ToRenZheng() {
this.$router.push('/CreateEnterprise') this.$router.push('/CreateEnterprise')
}, },
callbackT () { callbackT() {
this.dialogVisibletype = false this.dialogVisibletype = false
this.dialogVisible = true this.dialogVisible = true
}, },
addType (type) { addType(type) {
if (type.manager) { if (type.manager) {
// 认证过 // 认证过
this.Join() this.Join()
...@@ -159,7 +162,7 @@ export default { ...@@ -159,7 +162,7 @@ export default {
this.ToRenZheng() this.ToRenZheng()
} }
}, },
organizeNameType (type) { organizeNameType(type) {
if (type.manager) { if (type.manager) {
// 认证过 // 认证过
// this.dialogVisibletype = true; // this.dialogVisibletype = true;
...@@ -169,7 +172,7 @@ export default { ...@@ -169,7 +172,7 @@ export default {
return '该企业还未创建企业账户,是否去创建账户?' return '该企业还未创建企业账户,是否去创建账户?'
} }
}, },
callbackText (type) { callbackText(type) {
if (type.manager) { if (type.manager) {
// 认证过 // 认证过
return '立即加入' return '立即加入'
...@@ -178,7 +181,7 @@ export default { ...@@ -178,7 +181,7 @@ export default {
return '提交资料,创建企业账户' return '提交资料,创建企业账户'
} }
}, },
Join () { Join() {
const data = { const data = {
organizeId: this.BusinessName.organizeid organizeId: this.BusinessName.organizeid
} }
...@@ -191,20 +194,21 @@ export default { ...@@ -191,20 +194,21 @@ export default {
this.dialogVisible = false this.dialogVisible = false
this.dialogVisibletype = false this.dialogVisibletype = false
this.$message.success(res.msg) this.$message.success(res.msg)
this.$router.push({ path: '/login' }) this.$router.push({path: '/login'})
} else { } else {
this.dialogVisible = false this.dialogVisible = false
this.dialogVisibletype = false this.dialogVisibletype = false
this.$message.error(res.msg) this.$message.error(res.msg)
this.$router.push({ path: '/login' }) this.$router.push({path: '/login'})
} }
}) })
}, },
handleClose () { handleClose() {
this.dialogVisible = false this.dialogVisible = false
}, },
selectJoin () { selectJoin() {
console.info(this.BusinessName) console.info(this.BusinessName)
if (!this.BusinessName) return this.$message.error('请选择企业名称');
this.dialogVisible = false this.dialogVisible = false
if (this.BusinessName.manager) { if (this.BusinessName.manager) {
...@@ -215,7 +219,7 @@ export default { ...@@ -215,7 +219,7 @@ export default {
this.dialogVisibletype = true this.dialogVisibletype = true
} }
}, },
remoteMethod (query) { remoteMethod(query) {
// toLowerCase 将所有大写字母转成小写字母 // toLowerCase 将所有大写字母转成小写字母
console.log(query) console.log(query)
if (query !== '') { if (query !== '') {
...@@ -253,20 +257,25 @@ export default { ...@@ -253,20 +257,25 @@ export default {
.el-avatar > img { .el-avatar > img {
width: 100%; width: 100%;
} }
.JoiningEnterprise { .JoiningEnterprise {
display: flex; display: flex;
height: 100%; height: 100%;
padding-top: 120px; padding-top: 120px;
overflow: auto; overflow: auto;
justify-content: center; justify-content: center;
.JoiningEnterpriseBox { .JoiningEnterpriseBox {
margin-top: 48px; margin-top: 48px;
.JoiningEnterpriseBoxHeader { .JoiningEnterpriseBoxHeader {
display: flex; display: flex;
div { div {
width: 445px; width: 445px;
height: 300px; height: 300px;
position: relative; position: relative;
span { span {
display: block; display: block;
width: 90px; width: 90px;
...@@ -287,36 +296,44 @@ export default { ...@@ -287,36 +296,44 @@ export default {
right: 20px; right: 20px;
bottom: 15px; bottom: 15px;
} }
span:hover { span:hover {
color: #00a0e9; color: #00a0e9;
cursor: pointer; cursor: pointer;
} }
} }
div:nth-child(1) { div:nth-child(1) {
background: url("./../../assets/img/joini.png") no-repeat; background: url("./../../assets/img/joini.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
margin-right: 30px; margin-right: 30px;
} }
div:nth-child(2) { div:nth-child(2) {
background: url("./../../assets/img/headerleft.png") no-repeat; background: url("./../../assets/img/headerleft.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
} }
.part1-top { .part1-top {
display: flex; display: flex;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
padding-top: 10px; padding-top: 10px;
& > div { & > div {
margin-left: 20px; margin-left: 20px;
h4 { h4 {
font-weight: bold; font-weight: bold;
font-size: 18px; font-size: 18px;
} }
p { p {
margin: 10px 0; margin: 10px 0;
} }
.mainColor { .mainColor {
display: inline-block; display: inline-block;
margin-left: 20px; margin-left: 20px;
...@@ -334,29 +351,35 @@ export default { ...@@ -334,29 +351,35 @@ export default {
color: rgba(48, 49, 51, 1); color: rgba(48, 49, 51, 1);
padding: 30px 0; padding: 30px 0;
} }
.JoiningfunctionBox { .JoiningfunctionBox {
ul { ul {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
max-width: 1000px; max-width: 1000px;
li { li {
width: 445px; width: 445px;
height: 180px; height: 180px;
border: 1px solid rgba(223, 223, 223, 1); border: 1px solid rgba(223, 223, 223, 1);
margin-bottom: 33px; margin-bottom: 33px;
display: flex; display: flex;
div:nth-child(1) { div:nth-child(1) {
width: 180px; width: 180px;
height: 100%; height: 100%;
background: url("./../../assets/img/joi.png") no-repeat; background: url("./../../assets/img/joi.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
div:nth-child(2) { div:nth-child(2) {
width: 219px; width: 219px;
margin: 28px 22px 0px 22px; margin: 28px 22px 0px 22px;
span { span {
display: block; display: block;
} }
span:nth-child(1) { span:nth-child(1) {
width: 67px; width: 67px;
font-size: 16px; font-size: 16px;
...@@ -367,6 +390,7 @@ export default { ...@@ -367,6 +390,7 @@ export default {
border-bottom: 3px solid rgba(223, 223, 223, 1); border-bottom: 3px solid rgba(223, 223, 223, 1);
margin-bottom: 14px; margin-bottom: 14px;
} }
span:nth-child(2) { span:nth-child(2) {
font-size: 16px; font-size: 16px;
font-family: MicrosoftYaHei; font-family: MicrosoftYaHei;
...@@ -375,6 +399,7 @@ export default { ...@@ -375,6 +399,7 @@ export default {
} }
} }
} }
li:nth-child(odd) { li:nth-child(odd) {
margin-right: 30px; margin-right: 30px;
} }
......
...@@ -251,7 +251,6 @@ export default { ...@@ -251,7 +251,6 @@ export default {
}, },
methods: { methods: {
carDetail(row) { carDetail(row) {
debugger
this.$router.push({path: '/transports/driver-detail', query: {id: row.userId, type: row}}) this.$router.push({path: '/transports/driver-detail', query: {id: row.userId, type: row}})
}, },
searchByInfo() { searchByInfo() {
...@@ -310,7 +309,6 @@ export default { ...@@ -310,7 +309,6 @@ export default {
if (!!res.data) { if (!!res.data) {
res.data.content.forEach(item => { res.data.content.forEach(item => {
if (item.status == '5' || item.status == '1') { if (item.status == '5' || item.status == '1') {
debugger
return item.operatingStatus = '停运' return item.operatingStatus = '停运'
} else return item.operatingStatus = '上线' } else return item.operatingStatus = '上线'
}) })
......
...@@ -210,7 +210,7 @@ ...@@ -210,7 +210,7 @@
<el-card <el-card
class="box-card" class="box-card"
style="margin: 20px 0" style="margin: 20px 0"
v-if="!isEmptyObject(certificationInfo)" v-if="!isEmptyObject(certificationInfo) && 1 !== 1"
> >
<div <div
slot="header" slot="header"
...@@ -598,7 +598,6 @@ export default { ...@@ -598,7 +598,6 @@ export default {
autidComment: '', autidComment: '',
driverId: this.$route.query.type.userId, driverId: this.$route.query.type.userId,
} }
debugger
driverAudit(json).then((res) => { driverAudit(json).then((res) => {
if (res.status == 200) { if (res.status == 200) {
this.$message({ this.$message({
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment