46 changed files with 665 additions and 461 deletions
After Width: | Height: | Size: 120 KiB |
@ -0,0 +1,241 @@ |
|||
.head-container { |
|||
padding-top: 4px; |
|||
padding-bottom: 6px; |
|||
background-color: #ffffff; |
|||
border-radius: 4px; |
|||
|
|||
.filter-item { |
|||
display: inline-block; |
|||
vertical-align: middle; |
|||
margin: 0 3px 10px 0; |
|||
|
|||
input { |
|||
height: 30.5px; |
|||
line-height: 30.5px; |
|||
} |
|||
} |
|||
|
|||
.el-form-item-label { |
|||
margin: 0 3px 9px 0; |
|||
display: inline-block; |
|||
text-align: right; |
|||
vertical-align: middle; |
|||
font-size: 14px; |
|||
color: #606266; |
|||
line-height: 30.5px; |
|||
padding: 0 7px 0 7px; |
|||
} |
|||
|
|||
.el-button + .el-button { |
|||
margin-left: 0 !important; |
|||
} |
|||
|
|||
.el-select__caret.el-input__icon.el-icon-arrow-up { |
|||
line-height: 30.5px; |
|||
} |
|||
|
|||
.date-item { |
|||
display: inline-block; |
|||
vertical-align: middle; |
|||
margin-bottom: 10px; |
|||
height: 30.5px !important; |
|||
width: 230px !important; |
|||
} |
|||
} |
|||
|
|||
.el-avatar { |
|||
display: inline-block; |
|||
text-align: center; |
|||
background: #ccc; |
|||
color: #fff; |
|||
white-space: nowrap; |
|||
position: relative; |
|||
overflow: hidden; |
|||
vertical-align: middle; |
|||
width: 32px; |
|||
height: 32px; |
|||
line-height: 32px; |
|||
border-radius: 16px; |
|||
} |
|||
|
|||
.logo-con { |
|||
height: 60px; |
|||
padding: 13px 0 0; |
|||
|
|||
img { |
|||
height: 32px; |
|||
width: 135px; |
|||
display: block; |
|||
//margin: 0 auto; |
|||
} |
|||
} |
|||
|
|||
#el-login-footer { |
|||
height: 40px; |
|||
line-height: 40px; |
|||
position: fixed; |
|||
bottom: 0; |
|||
width: 100%; |
|||
text-align: center; |
|||
color: #fff; |
|||
font-family: Arial, serif; |
|||
font-size: 12px; |
|||
letter-spacing: 1px; |
|||
} |
|||
|
|||
#el-main-footer { |
|||
background: none repeat scroll 0 0 white; |
|||
border-top: 1px solid #e7eaec; |
|||
overflow: hidden; |
|||
padding: 10px 6px 0 6px; |
|||
height: 33px; |
|||
font-size: 0.7rem !important; |
|||
color: #7a8b9a; |
|||
letter-spacing: 0.8px; |
|||
font-family: Arial, sans-serif !important; |
|||
position: fixed; |
|||
bottom: 0; |
|||
z-index: 99; |
|||
width: 100%; |
|||
} |
|||
|
|||
.eladmin-upload { |
|||
border: 1px dashed #c0ccda; |
|||
border-radius: 5px; |
|||
height: 45px; |
|||
line-height: 45px; |
|||
width: 368px; |
|||
} |
|||
|
|||
.my-blockquote { |
|||
margin: 0 0 10px; |
|||
padding: 15px; |
|||
line-height: 22px; |
|||
border-left: 5px solid #00437B; |
|||
border-radius: 0 2px 2px 0; |
|||
background-color: #f2f2f2; |
|||
} |
|||
|
|||
.my-code { |
|||
position: relative; |
|||
padding: 15px; |
|||
line-height: 20px; |
|||
border-left: 5px solid #ddd; |
|||
color: #333; |
|||
font-family: Courier New, serif; |
|||
font-size: 12px |
|||
} |
|||
|
|||
.el-tabs { |
|||
margin-bottom: 25px; |
|||
} |
|||
|
|||
|
|||
//修改侧边栏菜单颜色和高度 |
|||
.el-menu-item, .el-submenu__title { |
|||
height: 40px; |
|||
line-height: 40px; |
|||
} |
|||
|
|||
#app .sidebar-container .el-submenu .el-menu-item { |
|||
} |
|||
|
|||
#app .sidebar-container .nest-menu .el-submenu > .el-submenu__title, #app .sidebar-container .el-submenu .el-menu-item { |
|||
} |
|||
|
|||
#app .sidebar-container { |
|||
//background-color: #544b32 !important; |
|||
} |
|||
|
|||
.el-form-item--small.el-form-item { |
|||
margin-bottom: 12px !important; |
|||
} |
|||
|
|||
.el-form-item--mini.el-form-item { |
|||
margin-bottom: 10px !important; |
|||
} |
|||
|
|||
//去除编辑文本框为数字时的上下箭头start |
|||
.el-form--inline .el-form-item__content { |
|||
width: auto !important; |
|||
} |
|||
|
|||
input[type="number"] { |
|||
-moz-appearance: textfield; |
|||
} |
|||
|
|||
input[type="number"]::-webkit-inner-spin-button, |
|||
input[type="number"]::-webkit-outer-spin-button { |
|||
-webkit-appearance: none; |
|||
} |
|||
|
|||
//去除编辑文本框为数字时的上下箭头end |
|||
|
|||
//设置计数器文字居左 |
|||
.el-input-number--mini .el-input__inner { |
|||
text-align: left; |
|||
} |
|||
|
|||
.el-table:not(.el-table–scrollable-x) .el-table__fixed-right { |
|||
height: 100% !important; |
|||
} |
|||
|
|||
// 修改弹出框距离 |
|||
.el-dialog__body { |
|||
padding-top: 0px !important; |
|||
} |
|||
|
|||
//表格标题样式 |
|||
.el-table { |
|||
.el-table__header-wrapper, |
|||
.el-table__fixed-header-wrapper { |
|||
th { |
|||
word-break: break-word; |
|||
background-color: #f5f5f5; |
|||
color: #515a6e; |
|||
height: 35px; |
|||
font-size: 13px; |
|||
} |
|||
|
|||
td { |
|||
color: #f8f8f9; |
|||
} |
|||
} |
|||
|
|||
.el-table__body-wrapper { |
|||
.el-button [class*="el-icon-"] + span { |
|||
margin-left: 1px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
//表格固定列最后一行显示不全(https://mp.weixin.qq.com/s/HpoykJNtsynsW4UMHitZbQ) |
|||
.el-table__fixed-right { |
|||
height: 100% !important; |
|||
} |
|||
|
|||
//表头与内容错位 |
|||
.el-table--scrollable-y .el-table__body-wrapper { |
|||
overflow-y: overlay !important; |
|||
} |
|||
//左侧边框不显示start https://blog.csdn.net/m0_37922443/article/details/126487240 |
|||
.el-table__row td:not(.is-hidden):last-child { |
|||
right: -1px; |
|||
} |
|||
|
|||
thead th:not(.is-hidden):last-child { |
|||
right: -1px; |
|||
} |
|||
//左侧边框不显示end |
|||
|
|||
.el-select { |
|||
width: 100%; |
|||
} |
|||
.site-navbar__menu { |
|||
line-height: 50px; |
|||
height: 50px; |
|||
} |
|||
.el-menu.el-menu--horizontal { |
|||
border-bottom: 0; |
|||
} |
|||
|
@ -1,3 +1,4 @@ |
|||
@import "normalize"; // api: https://github.com/necolas/normalize.css/ |
|||
@import "variables"; // 站点变量 |
|||
@import "base"; |
|||
@import 'eladmin'; |
|||
|
@ -0,0 +1,57 @@ |
|||
import httpRequest from '@/utils/httpRequest' |
|||
|
|||
export default class Dict { |
|||
constructor(dict = {}) { |
|||
this.dict = dict |
|||
} |
|||
async init(names) { |
|||
if (names === undefined || names === null) { |
|||
throw new Error('need Dict names') |
|||
} |
|||
const ps = [] |
|||
names.forEach(n => { |
|||
ps.push(httpRequest({ |
|||
url: httpRequest.adornUrl(`/api/dict/dictDetail?code=${n}&page=0&size=9999`), |
|||
method: 'get' |
|||
}).then(({data}) => { |
|||
this.dict[n] = [...data.content] |
|||
})) |
|||
}) |
|||
await Promise.all(ps) |
|||
} |
|||
|
|||
get() { |
|||
return this.dict |
|||
} |
|||
} |
|||
|
|||
const myDict = new Dict() |
|||
|
|||
function dictDetail (names) { |
|||
return { |
|||
data () { |
|||
return { |
|||
dicts: names, |
|||
dictsOpt: myDict.get('contract_type') |
|||
} |
|||
}, |
|||
filters: { |
|||
dictLabel (index, array) { |
|||
const value = String(index) |
|||
const valueToLabelMap = new Map(array.map(item => [String(item.value), item.label])) |
|||
const label = valueToLabelMap.get(value) |
|||
return label |
|||
} |
|||
}, |
|||
beforeCreate () { |
|||
myDict.init(names).then(() => { |
|||
this.dictsOpt = myDict.get() |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
|
|||
export { |
|||
dictDetail |
|||
} |
|||
|
@ -0,0 +1,80 @@ |
|||
<template> |
|||
<el-dialog |
|||
title="文件上传" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="visible" |
|||
width="500px"> |
|||
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="80px"> |
|||
<el-form-item label="文件名" prop="name"> |
|||
<el-input v-model="dataForm.name" placeholder="文件名"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="上传"> |
|||
<el-upload |
|||
ref="upload" |
|||
:limit="1" |
|||
:before-upload="beforeUpload" |
|||
:auto-upload="false" |
|||
:headers="headers" |
|||
:on-success="handleSuccess" |
|||
:on-error="handleError" |
|||
:action="$baseUrl + '/api/localStorage' + '?name=' + dataForm.name" |
|||
> |
|||
<div class="eladmin-upload"><i class="el-icon-upload" />添加文件</div> |
|||
<div slot="tip" class="el-upload__tip">可上传任意格式文件,且不超过100M</div> |
|||
</el-upload> |
|||
</el-form-item> |
|||
</el-form> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="visible = false">取消</el-button> |
|||
<el-button type="primary" @click="upload">确定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
name: '' |
|||
}, |
|||
headers: { 'Authorization': 'Bearer ' + this.$cookie.get('token') } |
|||
} |
|||
}, |
|||
methods: { |
|||
init (id) { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
}) |
|||
}, |
|||
beforeUpload(file) { |
|||
let isLt2M = true |
|||
isLt2M = file.size / 1024 / 1024 < 100 |
|||
if (!isLt2M) { |
|||
this.$message.error('上传文件大小不能超过 100MB!') |
|||
} |
|||
this.dataForm.name = file.name |
|||
return isLt2M |
|||
}, |
|||
handleSuccess(response, file, fileList) { |
|||
this.$notify({title: '上传成功',type: 'success'}) |
|||
this.$refs.upload.clearFiles() |
|||
}, |
|||
handleError(e, file, fileList) { |
|||
const msg = JSON.parse(e.message) |
|||
this.$notify({ |
|||
title: msg.message, |
|||
type: 'error', |
|||
duration: 2500 |
|||
}) |
|||
}, |
|||
upload() { |
|||
this.$refs.upload.submit() |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -1,70 +0,0 @@ |
|||
<template> |
|||
<el-dialog |
|||
title="工单基本信息" |
|||
:close-on-click-modal="false" |
|||
:visible.sync="visible"> |
|||
<el-form :model="dataForm" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="140px"> |
|||
<el-form-item label="车型"> |
|||
<el-select v-model="dataForm.type" placeholder="车型"> |
|||
<el-option label="区域一" value="shanghai"></el-option> |
|||
<el-option label="区域二" value="beijing"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="工单编号"> |
|||
<el-input v-model="dataForm.code" placeholder="工单编号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="故障类别"> |
|||
<el-select v-model="dataForm.type" placeholder="故障类别"> |
|||
<el-option label="区域一" value="shanghai"></el-option> |
|||
<el-option label="区域二" value="beijing"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="关联主合同编号"> |
|||
<el-input v-model="dataForm.code" placeholder="关联主合同编号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="客户"> |
|||
<el-select v-model="dataForm.type" placeholder="客户"> |
|||
<el-option label="区域一" value="shanghai"></el-option> |
|||
<el-option label="区域二" value="beijing"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="故障描述"> |
|||
<el-input type="textarea" :rows="3" placeholder="故障描述" v-model="dataForm.code"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="客户对接人"> |
|||
<el-input v-model="dataForm.code" placeholder="客户对接人"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="客户联系电话"> |
|||
<el-input v-model="dataForm.code" placeholder="客户联系电话"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="visible = false">取消</el-button> |
|||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
type: '', |
|||
code: '' |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init (id) { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
}) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmit () {} |
|||
} |
|||
} |
|||
</script> |
@ -1,205 +0,0 @@ |
|||
<template> |
|||
<div class="mod-order"> |
|||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> |
|||
<el-form-item label="工单类型"> |
|||
<el-select v-model="dataForm.type" placeholder="工单类型"> |
|||
<el-option label="区域一" value="shanghai"></el-option> |
|||
<el-option label="区域二" value="beijing"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="工单编号"> |
|||
<el-input v-model="dataForm.number" placeholder="工单编号" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="客户名称"> |
|||
<el-input v-model="dataForm.name" placeholder="客户名称" clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addOrUpdateHandle">新增</el-button> |
|||
<el-button type="danger">删除</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
@selection-change="selectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="工单编号"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="车型类型"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="客户名称"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="合同号"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="故障分类"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="是否验收"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="工单状态"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="生成时间"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="创建人"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="处理人"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="关闭时间"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="roleName" |
|||
header-align="center" |
|||
align="center" |
|||
label="附件资料"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" size="small" @click="assignHandle(scope.row.id)">指派</el-button> |
|||
<el-button type="text" size="small">关闭</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import AddOrUpdate from './order-add-or-update' |
|||
export default { |
|||
components: { |
|||
AddOrUpdate |
|||
}, |
|||
data () { |
|||
return { |
|||
dataForm: { |
|||
type: '', |
|||
number: '', |
|||
name: '' |
|||
}, |
|||
dataList: [], |
|||
pageIndex: 1, |
|||
pageSize: 10, |
|||
totalPage: 0, |
|||
dataListLoading: false, |
|||
dataListSelections: [], |
|||
addOrUpdateVisible: false |
|||
} |
|||
}, |
|||
activated () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 获取数据列表 |
|||
getDataList () { |
|||
this.dataListLoading = true |
|||
this.$http({ |
|||
url: this.$http.adornUrl('/sys/role/list'), |
|||
method: 'get', |
|||
params: this.$http.adornParams({ |
|||
'page': this.pageIndex, |
|||
'limit': this.pageSize, |
|||
'roleName': this.dataForm.roleName |
|||
}) |
|||
}).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.dataList = data.page.list |
|||
this.totalPage = data.page.totalCount |
|||
} else { |
|||
this.dataList = [] |
|||
this.totalPage = 0 |
|||
} |
|||
this.dataListLoading = false |
|||
}) |
|||
}, |
|||
// 每页数 |
|||
sizeChangeHandle (val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
// 当前页 |
|||
currentChangeHandle (val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
}, |
|||
// 多选 |
|||
selectionChangeHandle (val) { |
|||
this.dataListSelections = val |
|||
}, |
|||
// 新增 |
|||
addOrUpdateHandle (id) { |
|||
this.addOrUpdateVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.addOrUpdate.init(id) |
|||
}) |
|||
}, |
|||
assignHandle (id) {} |
|||
} |
|||
} |
|||
</script> |
Loading…
Reference in new issue