"@element-plus/icons-vue": "^1.1.4", | "@element-plus/icons-vue": "^1.1.4", | ||||
"axios": "^0.27.2", | "axios": "^0.27.2", | ||||
"element-plus": "^2.1.7", | "element-plus": "^2.1.7", | ||||
"file-saver": "^2.0.5", | |||||
"fuse.js": "^6.5.3", | "fuse.js": "^6.5.3", | ||||
"js-cookie": "^3.0.1", | "js-cookie": "^3.0.1", | ||||
"jsencrypt": "^3.2.1", | "jsencrypt": "^3.2.1", | ||||
"vue": "^3.2.2", | "vue": "^3.2.2", | ||||
"vue-fragment": "^1.5.2", | "vue-fragment": "^1.5.2", | ||||
"vue-router": "4", | "vue-router": "4", | ||||
"vuex": "^4.0.2" | |||||
"vuex": "^4.0.2", | |||||
"xlsx": "^0.18.5" | |||||
}, | }, | ||||
"devDependencies": { | "devDependencies": { | ||||
"@babel/types": "^7.16.0", | "@babel/types": "^7.16.0", | ||||
"postcss": "^8.4.4", | "postcss": "^8.4.4", | ||||
"prettier": "^2.4.1", | "prettier": "^2.4.1", | ||||
"sass": "^1.44.0", | "sass": "^1.44.0", | ||||
"script-loader": "^0.7.2", | |||||
"typescript": "^4.5.2", | "typescript": "^4.5.2", | ||||
"vite": "^2.4.2", | "vite": "^2.4.2", | ||||
"vite-plugin-compression": "^0.3.6", | "vite-plugin-compression": "^0.3.6", |
type: Array, | type: Array, | ||||
default: function () { | default: function () { | ||||
return [{ | return [{ | ||||
name: '测试数据' | |||||
one: '范晓东', | |||||
two: '贵ZEY123', | |||||
three: '蓝色', | |||||
four: '52011328220201499572', | |||||
five: '正常', | |||||
six: '储值卡', | |||||
seven:'52011328220201499572', | |||||
eight:'正常', | |||||
data:'2020-12-24' | |||||
}, { | }, { | ||||
name: '测试数据' | |||||
}, { | |||||
name: '测试数据' | |||||
one: '李丽霞', | |||||
two: '贵ANS989', | |||||
three: '蓝色', | |||||
four: '52011328220201499572', | |||||
five: '正常', | |||||
six: '储值卡', | |||||
seven:'52011328220200034040', | |||||
eight:'正常', | |||||
data:'2021-08-24' | |||||
},{ | |||||
one: '沈波', | |||||
two: '贵ABB123', | |||||
three: '蓝色', | |||||
four: '52011328220201499572', | |||||
five: '正常', | |||||
six: '储值卡', | |||||
seven:'52011328220201499572', | |||||
eight:'正常', | |||||
data:'2022-01-22' | |||||
}] | }] | ||||
} | } | ||||
} | } |
}], | }], | ||||
field: [ //表格 | field: [ //表格 | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'one', | |||||
label: '客户名称', | label: '客户名称', | ||||
width: '120', | width: '120', | ||||
overflow: true, | overflow: true, | ||||
placeholder: '请输入客户名称' | placeholder: '请输入客户名称' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'two', | |||||
label: '车牌号码', | label: '车牌号码', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入车牌号码' | placeholder: '请输入车牌号码' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'three', | |||||
label: '车牌颜色', | label: '车牌颜色', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入车牌颜色' | placeholder: '请输入车牌颜色' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'four', | |||||
label: '卡号', | label: '卡号', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: '卡号' | placeholder: '卡号' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'five', | |||||
label: '卡片状态', | label: '卡片状态', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入卡片状态' | placeholder: '请输入卡片状态' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'six', | |||||
label: '卡片类型', | label: '卡片类型', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'seven', | |||||
label: 'OBU编号', | label: 'OBU编号', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: 'OBU编号' | placeholder: 'OBU编号' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'eight', | |||||
label: 'OBU状态', | label: 'OBU状态', | ||||
width: '', | width: '', | ||||
form: { | form: { |
}], | }], | ||||
field: [ //表格 | field: [ //表格 | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'one', | |||||
label: '客户名称', | label: '客户名称', | ||||
width: '120', | width: '120', | ||||
overflow: true, | overflow: true, | ||||
placeholder: '请输入客户名称' | placeholder: '请输入客户名称' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'two', | |||||
label: '证件类型', | label: '证件类型', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: '请输入证件类型' | placeholder: '请输入证件类型' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'three', | |||||
label: '证件号码', | label: '证件号码', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: '请输入证件号码' | placeholder: '请输入证件号码' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'four', | |||||
label: '车牌号码', | label: '车牌号码', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入车牌号码' | placeholder: '请输入车牌号码' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'five', | |||||
label: '卡号', | label: '卡号', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: '请输入卡号' | placeholder: '请输入卡号' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'data', | |||||
label: '卡片状态', | label: '卡片状态', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'seven', | |||||
label: '到期时间', | label: '到期时间', | ||||
width: '180', | width: '180', | ||||
form: { | form: { |
}], | }], | ||||
field: [ //表格 | field: [ //表格 | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'one', | |||||
label: '客户名称', | label: '客户名称', | ||||
width: '120', | width: '120', | ||||
overflow: true, | overflow: true, | ||||
placeholder: '请输入客户名称' | placeholder: '请输入客户名称' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'two', | |||||
label: '车牌号码', | label: '车牌号码', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入车牌号码' | placeholder: '请输入车牌号码' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'three', | |||||
label: '车牌颜色', | label: '车牌颜色', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入车牌颜色' | placeholder: '请输入车牌颜色' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'four', | |||||
label: '卡号', | label: '卡号', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: '卡号' | placeholder: '卡号' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'five', | |||||
label: '卡片状态', | label: '卡片状态', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
placeholder: '请输入卡片状态' | placeholder: '请输入卡片状态' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'six', | |||||
label: '卡片类型', | label: '卡片类型', | ||||
width: '120', | width: '120', | ||||
form: { | form: { | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
prop: 'name', | |||||
prop: 'seven', | |||||
label: 'OBU编号', | label: 'OBU编号', | ||||
width: '180', | width: '180', | ||||
form: { | form: { | ||||
placeholder: 'OBU编号' | placeholder: 'OBU编号' | ||||
} | } | ||||
}, { | }, { | ||||
prop: 'name', | |||||
prop: 'eight', | |||||
label: 'OBU状态', | label: 'OBU状态', | ||||
width: '120', | width: '120', | ||||
form: { | form: { |
<el-button v-model="input4" type="success" :icon="Search" @click="search">搜索</el-button> | <el-button v-model="input4" type="success" :icon="Search" @click="search">搜索</el-button> | ||||
<el-button type="warning" :icon="Refresh" @click="reset">重置</el-button> | <el-button type="warning" :icon="Refresh" @click="reset">重置</el-button> | ||||
<el-button type="primary" :icon="Plus" @click="dialogFormVisible = true">添加</el-button> | <el-button type="primary" :icon="Plus" @click="dialogFormVisible = true">添加</el-button> | ||||
<el-dialog v-model="dialogFormVisible" title="卡黑名单-操作(下黑反白)"> | |||||
<el-dialog v-model="dialogFormVisible" title="卡黑名单-操作(下黑反白)" class="as-gravity-center"> | |||||
<el-form :model="form"> | <el-form :model="form"> | ||||
<el-form-item label="卡号:" :label-width="150"> | |||||
<el-form-item label="卡号:" :label-width="100"> | |||||
<el-input v-model="form.name" style="width: 215px" /> | <el-input v-model="form.name" style="width: 215px" /> | ||||
</el-form-item> | </el-form-item> | ||||
<el-form-item label="黑名单类型:" :label-width="150"> | |||||
<el-form-item label="黑名单类型:" :label-width="100"> | |||||
<el-select v-model="form.region" placeholder="请选择黑名单类型"> | <el-select v-model="form.region" placeholder="请选择黑名单类型"> | ||||
<el-option label="卡挂失" value="shanghai" /> | <el-option label="卡挂失" value="shanghai" /> | ||||
<el-option label="无卡挂起" value="beijing" /> | <el-option label="无卡挂起" value="beijing" /> | ||||
<el-option label="储值卡余额不足" value="shanghai" /> | <el-option label="储值卡余额不足" value="shanghai" /> | ||||
</el-select> | </el-select> | ||||
</el-form-item> | </el-form-item> | ||||
<el-form-item label="状态类型:" :label-width="150"> | |||||
<el-form-item label="状态类型:" :label-width="100"> | |||||
<el-select v-model="form.region" placeholder="请选择状态类型"> | <el-select v-model="form.region" placeholder="请选择状态类型"> | ||||
<el-option label="下黑" value="shanghai" /> | <el-option label="下黑" value="shanghai" /> | ||||
<el-option label="反白" value="beijing" /> | <el-option label="反白" value="beijing" /> | ||||
</el-select> | </el-select> | ||||
</el-form-item> | </el-form-item> | ||||
<el-form-item label="原因:" :label-width="150"> | |||||
<el-form-item label="原因:" :label-width="100"> | |||||
<el-input v-model="form.desc" type="textarea" /> | <el-input v-model="form.desc" type="textarea" /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<el-button @click="dialogFormVisible1 = true" style="border-style: none">详情</el-button> | <el-button @click="dialogFormVisible1 = true" style="border-style: none">详情</el-button> | ||||
</el-table-column> | </el-table-column> | ||||
</el-table> | </el-table> | ||||
<el-dialog v-model="dialogFormVisible1"> | |||||
<el-dialog v-model="dialogFormVisible1" class="as-gravity-center"> | |||||
<span class="as-gravity-center" style="font-size: 22px">基本信息</span> | <span class="as-gravity-center" style="font-size: 22px">基本信息</span> | ||||
<el-form :model="form1" style="padding-top: 12px"> | <el-form :model="form1" style="padding-top: 12px"> | ||||
<el-form-item label="卡号:" :label-width="150"> | |||||
<el-form-item label="卡号:" :label-width="100"> | |||||
<el-input v-model="form1.data" style="width: 215px" disabled /> | <el-input v-model="form1.data" style="width: 215px" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<el-form :model="form1"> | <el-form :model="form1"> | ||||
<el-form-item label="车辆号:" :label-width="150"> | |||||
<el-form-item label="车辆号:" :label-width="100"> | |||||
<el-input v-model="form1.data1" style="width: 215px" disabled /> | <el-input v-model="form1.data1" style="width: 215px" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<el-form :model="form1"> | <el-form :model="form1"> | ||||
<el-form-item label="机构名称:" :label-width="150"> | |||||
<el-form-item label="机构名称:" :label-width="100"> | |||||
<el-input v-model="form1.data2" style="width: 215px" disabled /> | <el-input v-model="form1.data2" style="width: 215px" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<el-form :model="form1"> | <el-form :model="form1"> | ||||
<el-form-item label="黑名单类型:" :label-width="150"> | |||||
<el-form-item label="黑名单类型:" :label-width="100"> | |||||
<el-input v-model="form1.data3" style="width: 215px" disabled /> | <el-input v-model="form1.data3" style="width: 215px" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<span class="as-gravity-center" style="font-size: 22px">黑名单上传日志</span> | <span class="as-gravity-center" style="font-size: 22px">黑名单上传日志</span> | ||||
<el-form :model="form1" style="padding-top: 12px"> | <el-form :model="form1" style="padding-top: 12px"> | ||||
<el-form-item label="上传日志:" :label-width="150" style="color: rgb(209, 65, 65)"> | |||||
<el-form-item label="上传日志:" :label-width="100" style="color: rgb(209, 65, 65)"> | |||||
<el-input v-model="form1.data4" type="textarea" disabled /> | <el-input v-model="form1.data4" type="textarea" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<span class="as-gravity-center" style="font-size: 22px">渠道下黑原因</span> | <span class="as-gravity-center" style="font-size: 22px">渠道下黑原因</span> | ||||
<el-form :model="form1" style="padding-top: 12px"> | <el-form :model="form1" style="padding-top: 12px"> | ||||
<el-form-item label="查询结果:" :label-width="150" style="color: rgb(209, 65, 65)"> | |||||
<el-form-item label="查询结果:" :label-width="100" style="color: rgb(209, 65, 65)"> | |||||
<el-input v-model="form1.data5" style="width: 215px" disabled /> | <el-input v-model="form1.data5" style="width: 215px" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> | ||||
<el-form :model="form1"> | <el-form :model="form1"> | ||||
<el-form-item label="下黑原因:" :label-width="150" style="color: rgb(209, 65, 65)"> | |||||
<el-form-item label="下黑原因:" :label-width="100" style="color: rgb(209, 65, 65)"> | |||||
<el-input v-model="form1.data6" type="textarea" disabled /> | <el-input v-model="form1.data6" type="textarea" disabled /> | ||||
</el-form-item> | </el-form-item> | ||||
</el-form> | </el-form> |
<div class="topstyle"> | <div class="topstyle"> | ||||
<el-button v-model="input4" type="success" :icon="Search" @click="search">搜索</el-button> | <el-button v-model="input4" type="success" :icon="Search" @click="search">搜索</el-button> | ||||
<el-button type="warning" :icon="Refresh" @click="reset">重置</el-button> | <el-button type="warning" :icon="Refresh" @click="reset">重置</el-button> | ||||
<el-button type="primary" plain @click="exportCurrentPage">导出当前页</el-button> | |||||
<el-button type="primary" plain @click="exportAll">导出所有</el-button> | |||||
<el-button type="primary" plain @click="excelExport()">导出当前页</el-button> | |||||
<el-button type="primary" plain @click="excelExport()">导出所有</el-button> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div style="padding-top: 12px"> | <div style="padding-top: 12px"> | ||||
const handleCurrentChange = (val: User | undefined) => { | const handleCurrentChange = (val: User | undefined) => { | ||||
currentRow.value = val | currentRow.value = val | ||||
} | } | ||||
// const objectService = { | |||||
// url: 'http://localhost:8888/list2', | |||||
// } | |||||
// const { data } = useRequest(objectService) | |||||
// console.log(data.value); | |||||
// const tableData = data | |||||
//点击导出 | |||||
function excelExport(){ | |||||
import('@/vendor/Export2Excel').then(excel => { | |||||
const tHeader = ['用户名称', '账号', '手机号', '所属公司','用户角色','创建者','部门名称','创建时间','最近登录时间'] | |||||
const filterVal = ['userName', 'email', 'phonenumber', 'orgName','roleName','createBy','deptName','createTime','loginTime'] | |||||
const list = this.list | |||||
const data = this.formatJson(filterVal, list) | |||||
excel.export_json_to_excel({ | |||||
header: tHeader, | |||||
data, | |||||
filename: "账号列表", | |||||
// filename: this.filename, | |||||
autoWidth: this.autoWidth, | |||||
bookType: this.bookType | |||||
}) | |||||
this.downloadLoading = false | |||||
}) | |||||
} | |||||
function formatJson(filterVal, jsonData) { | |||||
return this.dataList.map(v => filterVal.map(j => { | |||||
if (j === 'timestamp') { | |||||
return parseTime(v[j]) | |||||
} else { | |||||
return v[j] | |||||
} | |||||
})) | |||||
} | |||||
const tableData: User[] = [ | const tableData: User[] = [ | ||||
{ | { | ||||
date1: '1', | date1: '1', |