Commit 68a38407 authored by liucheng's avatar liucheng

Merge branch 'dev' into 'master'

Dev

See merge request !64
parents 97866e0d 4751a0ee
This diff is collapsed.
......@@ -137,15 +137,15 @@ export const listAllBaseInfo = (data) => {
method: 'post',
data
})
}
}
//
export const selectflowState = (params) => {
export const selectflowState = (params) => {
return axios({
url: '/folw/selectflowState',
method: 'get',
params
})
}
}
//缴费信息查询
export const listPayInfo = (data) => {
return axios({
......@@ -169,7 +169,7 @@ export const selectRoleflowNo = (params) => {
method: 'get',
params
})
}
}
export const updatePassword = (data)=>{
return axios({
url: 'user/updatePassword',
......@@ -177,13 +177,44 @@ export const updatePassword = (data)=>{
data
})
}
export const getTown = () => {
export const getTown = () => {
return axios({
url: '/dept/findTreeByUser',
method: 'get',
})
}
}
//交互中心信息查询
export const getInteracts = (params) => {
return axios({
url: '/news/listinteract',
method: 'get',
params
})
}
//上传文件
export const saveFile = (data)=>{
return axios({
url: 'news/add',
method: 'post',
data
})
}
//更新文件状态
export const updateFileState = (id,state)=>{
return axios({
url: 'news/update/' + id + '/' + state,
method: 'post'
})
}
//新闻预览
export const newsPreView = (id)=>{
return axios({
url: 'news/view/'+id,
method: 'get'
})
}
//
//参保注销导出
export const selecbzxdc = (data) => {
......
......@@ -10,8 +10,9 @@ import 'element-ui/lib/theme-chalk/index.css'
import 'font-awesome/css/font-awesome.min.css'
import '@/assets/iconfont/iconfont.css'
import getType from "@/utils/type.js"
import charts from 'echarts';
Vue.prototype.$echarts = charts
import axios from 'axios';
Vue.prototype.$axios = axios;
Vue.prototype.getType =getType.getType
Vue.prototype.regetType =getType.regetType
......
......@@ -25,13 +25,14 @@ import receivePersonnel from "@/views/Myvue/receivePersonnel";
import AllbaseInfo from "@/views/Myvue/allbaseInfo"
import PayInfo from "@/views/Myvue/payInfo"
import application from "@/views/Myvue/application"
import authRecordphone from "@/views/Myvue/authRecordphone"
import importByExcel from "@/views/Myvue/importByExcel";
import importByExcel from "@/views/Myvue/importByExcel"
import insuranceCancellationAudit from "@/views/Myvue/insuranceCancellationAudit"
import supPaymentAudit from "@/views/Myvue/supPaymentAudit"
import traRelationsAudit from "@/views/Myvue/traRelationsAudit"
import upgradeReoAudit from "@/views/Myvue/upgradeReoAudit"
import interact from "@/views/Myvue/interact"
import preView from "@/views/Myvue/preView"
import treatmentApplicationAudit from "@/views/Myvue/treatmentApplicationAudit";
import insuranceCancellationAudit from "@/views/Myvue/insuranceCancellationAudit";
import supPaymentAudit from "@/views/Myvue/supPaymentAudit";
import traRelationsAudit from "@/views/Myvue/traRelationsAudit";
import upgradeReoAudit from "@/views/Myvue/upgradeReoAudit";
import drcbzx from "@/views/Myvue/drcbzx";
import drbjbf from "@/views/Myvue/drbjbf";
import drtsyw from "@/views/Myvue/drtsyw";
......@@ -165,6 +166,15 @@ const router = new Router({
component: traRelationsAudit
},
{
path:"/interact",
name:"交互中心",
component: interact
},
{
path:"/preView",
name:"预览",
component:preView
},{
path:"/insCanExport",
name:"参保注销导出",
component: drcbzx
......
......@@ -9,7 +9,9 @@
// //export const baseUrl = 'http://xc.rensheju.com'
export const baseUrl = 'http://172.16.10.33:9002'
export const baseUrl2 = 'http://xclc.rensheju.com'
//export const baseUrl = 'http://xc.rensheju.com'
export const baseUrl = 'http://xc.rensheju.com'
//export const baseUrl = 'http://172.16.10.33:9003'
export default {
baseUrl,
......
function utf8ByteToUnicodeStr(utf8Bytes){
var unicodeStr ="";
for (var pos = 0; pos < utf8Bytes.length;){
var flag= utf8Bytes[pos];
var unicode = 0 ;
if ((flag >>>7) === 0 ) {
unicodeStr+= String.fromCharCode(utf8Bytes[pos]);
pos += 1;
} else if ((flag &0xFC) === 0xFC ){
unicode = (utf8Bytes[pos] & 0x3) << 30;
unicode |= (utf8Bytes[pos+1] & 0x3F) << 24;
unicode |= (utf8Bytes[pos+2] & 0x3F) << 18;
unicode |= (utf8Bytes[pos+3] & 0x3F) << 12;
unicode |= (utf8Bytes[pos+4] & 0x3F) << 6;
unicode |= (utf8Bytes[pos+5] & 0x3F);
unicodeStr+= String.fromCharCode(unicode) ;
pos += 6;
}else if ((flag &0xF8) === 0xF8 ){
unicode = (utf8Bytes[pos] & 0x7) << 24;
unicode |= (utf8Bytes[pos+1] & 0x3F) << 18;
unicode |= (utf8Bytes[pos+2] & 0x3F) << 12;
unicode |= (utf8Bytes[pos+3] & 0x3F) << 6;
unicode |= (utf8Bytes[pos+4] & 0x3F);
unicodeStr+= String.fromCharCode(unicode) ;
pos += 5;
} else if ((flag &0xF0) === 0xF0 ){
unicode = (utf8Bytes[pos] & 0xF) << 18;
unicode |= (utf8Bytes[pos+1] & 0x3F) << 12;
unicode |= (utf8Bytes[pos+2] & 0x3F) << 6;
unicode |= (utf8Bytes[pos+3] & 0x3F);
unicodeStr+= String.fromCharCode(unicode) ;
pos += 4;
} else if ((flag &0xE0) === 0xE0 ){
unicode = (utf8Bytes[pos] & 0x1F) << 12;;
unicode |= (utf8Bytes[pos+1] & 0x3F) << 6;
unicode |= (utf8Bytes[pos+2] & 0x3F);
unicodeStr+= String.fromCharCode(unicode) ;
pos += 3;
} else if ((flag &0xC0) === 0xC0 ){ //110
unicode = (utf8Bytes[pos] & 0x3F) << 6;
unicode |= (utf8Bytes[pos+1] & 0x3F);
unicodeStr+= String.fromCharCode(unicode) ;
pos += 2;
} else{
unicodeStr+= String.fromCharCode(utf8Bytes[pos]);
pos += 1;
}
}
return unicodeStr;
}
......@@ -127,7 +127,7 @@ export default {
}
},
updatePassword: function () {
var rex = /^[\w_-]{6,8}$/
var rex = /^[\w_-]{6,18}$/
if(this.item.password == ''){
this.$message({message: '请输入原密码', type: 'error'})
return;
......
<template>
<div>
<el-cascader
:props="{ checkStrictly: true }"
clearable
......@@ -10,7 +9,6 @@
size="mini"
@change="handleChange"></el-cascader>
</div>
</template>
......@@ -28,6 +26,7 @@
handleChange(value) {
this.$emit('childByValue', value)
},
},
created(){
this.$api.getlist.getTown().then((res) => {
......
<template>
<div>
<div class="op" style="margin-left: 10px">
<el-button type="success" plain size="mini" @click="dialogNewsFormVisible = true">上传<i class="el-icon-upload el-icon--right"></i></el-button>
</div>
<el-dialog title="发布信息" :visible.sync="dialogNewsFormVisible" >
<el-form ref="pushForm" enctype="multipart/form-data" :model="pushForm" label-width="100px" size="mini" :rules = "formrules" >
<el-form-item label="主题" prop = "newsName">
<el-input v-model="pushForm.newsName" placeholder="请输入主题" size = "medium" ></el-input>
</el-form-item>
<el-form-item label="描述" prop = "remark">
<el-input type = "textarea" :rows="8" placeholder="请输入内容 " v-model="pushForm.remark"></el-input>
</el-form-item>
<el-form-item label="附件上传" prop = "file">
<el-upload
ref="upload"
action=""
:auto-upload="false"
:limit="1"
align="left"
:on-change = "selectFile"
>
<el-button slot="trigger" size="small" class = "el-icon-upload2" type="success" >选取文件</el-button><span style="margin-left: 10px" class="el-upload__tip">不能超过10Mb</span>
</el-upload>
</el-form-item>
<el-form-item size="large">
<el-button size = "mini" type = "primary" @click = "upload('pushForm')">立即发布</el-button>
<el-button size = "mini" @click="closeDialog('pushForm')">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-table
:data="tableData"
stripe
style="width: 100%">
<el-table-column
label="ID"
prop="id"
v-if = "false"
></el-table-column>
<el-table-column
prop="newsName"
label="标题"
align="center"
width = "180"
>
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
align="center"
width = "180"
>
</el-table-column>
<el-table-column
prop="createBy"
label="操作人"
align="center"
>
</el-table-column>
<el-table-column
prop="remark"
label="描述"
align="center"
width = "300"
>
</el-table-column>
<el-table-column
prop="fileName"
label="文件名"
align="center"
width = "150"
>
</el-table-column>
<el-table-column label="状态" align="center" width="150">
<template slot-scope="scope">
<el-switch
v-model="scope.row.state"
active-color="#13ce66" inactive-color="#ff4949"
active-text = "启用" inactive-text="禁用"
:inactive-value = "0" :active-value = "2"
@change="changeSwitch(scope.row.state,scope.$index)">
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" align="center"
min-width="80">
<template slot-scope="scope">
<el-button
size="mini"
type="info"
@click="download(scope.$index, scope.row)">下载
</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pone"
:page-size='10'
layout="total, prev, pager, next, jumper"
:total="totals"
:current-page.sync="Page"
@current-change="current_change">
</el-pagination>
</div>
</template>
<style>
.op{
display: flex;
align-items: center;
}
</style>
<script>
import Cookies from "js-cookie";
import {baseUrl} from "../../utils/global"
import axios from "axios"
let base64 = require('js-base64').Base64
export default {
data() {
let checkFile = (rule, value, callback) => {
let size = value.size/1024/1024
if(size > 10) {
//callback(new Error('上传文件不能超过10Mb'))
this.$message({
message: '上传文件不能超过10Mb',
type: 'error'
});
return;
} else {
callback()
}
};
return {
totals:0,
Page:1,
tableData: [],
dialogNewsFormVisible:false,
pushForm:{
newsName:"",
file:"",
fileName:"",
remark:"",
urlName:"interact",
fileType: 1,
state:0,
toType:2,
},
formrules:{
newsName:[
{required: true, message: '请输入主题', trigger: 'blur'}
],
remark:[
{required: true, message: '请输入描述'}
],
file:[
{required:true,message:'请选择文件'},
{ validator: checkFile}
]
}
}
},
methods:{
closeDialog(form){
this.dialogNewsFormVisible = false
this.$refs[form].resetFields();
this.$refs.upload.clearFiles();
},
selectFile(file){
let This = this;
let reader = new FileReader();
reader.readAsDataURL(file.raw);
this.converBase64(file,function (base64) {
This.pushForm.file = base64;
});
this.pushForm.fileName = file.name;
},
converBase64(file,callback) {
let reader = new FileReader();
reader.readAsDataURL(file.raw);
reader.onload = function (e) {
callback.call(this, this.result.substring(this.result.indexOf(",") + 1));
}
},
download(index,row){
axios.get(baseUrl + '/news/download/'+row.id, {
headers: {
"token": Cookies.get("token")
},
responseType: 'blob'
})
.then(res => {
let a = document.createElement("a");
let blob = new Blob([res.data],{type:""});
a.href = URL.createObjectURL(blob);
a.download = row.fileName;
a.click();
})
.catch(err => {
console.log(err);
});
},
upload(form){
this.$refs[form].validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.$api.getlist.saveFile(this.pushForm).then((res) => {
if(res.code == 200) {
this.$message({message: '操作成功', type: 'success'})
this.closeDialog('pushForm');
this.current_change(0);
}else {
this.$message({message: '操作失败, ' + res.message, type: 'error'})
}
}).catch((res) => {
});
})
}
})
},
changeSwitch(value, index) {
let str = value == 2 ? '启用':value == 0 ? '禁用': '';
this.$confirm('确认'+ str +'?', '提示', {}).then(() => {
this.$api.getlist.updateFileState(this.tableData[index].id,value).then((res) => {
if(res.code == 200) {
this.$message({message: '操作成功', type: 'success'})
this.current_change(this.pageNum);
}else {
this.$message({message: '操作失败, ' + res.message, type: 'error'})
this.tableData[index].state = this.tableData[index].state == 0 ? 2 : 0;
}
}).catch((res) => {
});
}).catch(() => {
this.tableData[index].state = this.tableData[index].state == 0 ? 2 : 0;
})
},
current_change(s){
var data={
pageNum:s,
pageSize:10
}
this.$api.getlist.getInteracts(data).then((res) => {
this.totals=res.data.total
this.page=res.data.total.pageNum
this.tableData=res.data.list
}).catch((res) => {
});
},
stateFormat(row, column) {
if (row.state === 0) {
return '停用'
} else if (row.state === 1) {
return '默认'
} else if (row.state === 2) {
return '启用'
}
}
},
created(){
var data={
pageNum:1,
pageSize:10
}
this.$api.getlist.getInteracts(data).then((res) => {
this.totals = res.data.total
this.page = res.data.total.pageNum
this.tableData = res.data.list
this.tableData.forEach(element => {
this.tableData.state = this.tableData.state !== 0;
});
}).catch((res) => {
});
}
}
</script>
<template>
<div>
<div class="op" style="margin-left: 10px">
<el-button type="primary" size="mini" @click="dialogNewsFormVisible = true">发布<i class="el-icon-upload el-icon--right"></i></el-button>
</div>
<el-dialog title="发布新闻" width="40%" :visible.sync="dialogNewsFormVisible">
<el-form ref="pushForm" :model="pushForm" label-width="100px" size="mini" :rules = "formrules">
<el-form-item label="新闻主题" prop = "newsName">
<el-input v-model="pushForm.newsName" size = "medium"></el-input>
</el-form-item>
<el-form-item label="访问地址" prop = "urlName">
<el-select v-model="pushForm.urlName" placeholder="请选择"
style="width: 100%;">
<el-option v-for="item in urlNameData" :key="item.val"
:label="item.text" :value="item.val">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="附件上传" prop = "file">
<el-upload
ref="upload"
action=""
:auto-upload="false"
:limit="1"
align="left"
accept = "application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"
:on-change = "selectFile"
>
<el-button slot="trigger" size="small" class = "el-icon-upload2" type="success">选取文件</el-button><span style="margin-left: 10px" class="el-upload__tip">只能上传word文件,且不超过5Mb</span>
</el-upload>
</el-form-item>
<el-form-item size="large">
<el-button type = "info" @click = "upload('pushForm')">立即发布</el-button>
<el-button @click = "closeDialog('pushForm')">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-table
:data="tableData"
stripe
style="width: 100%">
<el-table-column
prop="id"
v-if="false"
>
</el-table-column>
<el-table-column
prop="newsName"
label="标题"
align="center"
>
</el-table-column>
<el-table-column
prop="urlName"
label="地址"
align="center"
:formatter="urlFormat"
>
</el-table-column>
<el-table-column
prop="createTime"
label="时间"
label="创建时间"
align="center"
>
</el-table-column>
<el-table-column
prop="createBy"
label="操作人"
align="center"
>
</el-table-column>
<el-table-column
width="180"
label="操作">
prop="todayCount"
label="今日访问量"
align = "right"
>
</el-table-column>
<el-table-column
prop="allCount"
label="总访问量"
align = "right"
>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.state"
active-color="#13ce66" inactive-color="#ff4949"
active-text = "启用" inactive-text="禁用"
:inactive-value = "0" :active-value = "2"
@change="changeSwitch(scope.row.state,scope.$index)">
</el-switch>
</template>
</el-table-column>
<el-table-column label="操作" align="center"
min-width="100">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
icon="el-icon-edit-outline"
@click="handle(scope.$index, scope.row)">编辑</el-button>
type="info"
@click="preview(scope.$index, scope.row)">预览
</el-button>
</template>
</el-table-column>
</el-table>
......@@ -39,34 +110,178 @@
layout="total, prev, pager, next, jumper"
:total="totals"
:current-page.sync="Page"
@current-change="current_change"
>
@current-change="current_change">
</el-pagination>
<el-dialog width="60%" :visible.sync="preViewVisible">
<div v-html = "content"></div>
</el-dialog>
</div>
</template>
<style>
.op{
display: flex;
align-items: center;
}
</style>
<script>
import Cookies from "js-cookie";
import {baseUrl} from "../../utils/global"
import axios from "axios"
let base64 = require('js-base64').Base64
export default {
data() {
let checkFile = (rule, value, callback) => {
let size = value.size/1024/1024
if(size > 5) {
this.$message({
message: '上传文件不能超过5Mb',
type: 'error'
});
return;
} else {
callback()
}
};
return {
totals:0,
Page:1,
tableData: []
tableData: [],
dialogNewsFormVisible:false,
preViewVisible:false,
content:"",
urlNameData:[{val:'policy',text:'政策解读'},{val:'index',text:'主页'}],
pushForm:{
newsName:"",
file:"",
fileName:"",
remark:"",
urlName:"",
fileType: 1,
state:0,
toType:1
},
formrules:{
newsName:[
{required: true, message: '请输入主题', trigger: 'blur'}
],
urlName:[
{required: true, message: '请选择地址',trigger: 'change blur'}
],
file:[
{required:true,message:'请选择文件'},
{ validator: checkFile}
]
}
}
},
methods:{
closeDialog(form){
this.dialogNewsFormVisible = false;
this.$refs[form].resetFields();
this.$refs.upload.clearFiles();
},
selectFile(file){
let This = this;
let reader = new FileReader();
reader.readAsDataURL(file.raw);
this.converBase64(file,function (base64) {
This.pushForm.file = base64;
});
this.pushForm.fileName = file.name;
},
converBase64(file,callback) {
let reader = new FileReader();
reader.readAsDataURL(file.raw);
reader.onload = function (e) {
callback.call(this, this.result.substring(this.result.indexOf(",") + 1));
}
},
urlFormat(row,column) {
switch (row.urlName){
case 'index':
return '主页'
case 'policy':
return '政策解读'
default :
return '';
}
},
preview(index,row){
this.preViewVisible = true;
this.$api.getlist.newsPreView(row.id).then((res)=>{
if(res.code == 200) {
this.content = res.data.htmlStr;
}
}).catch((res)=>{
})
},
changeSwitch(value,index) {
let str = value == 2 ? '启用':value == 0 ? '禁用': '';
this.$confirm('确认'+ str +'?', '提示', {}).then(() => {
this.$api.getlist.updateFileState(this.tableData[index].id,value).then((res) => {
if(res.code == 200) {
this.$message({message: '操作成功', type: 'success'})
this.current_change(this.pageNum);
}else {
this.$message({message: '操作失败, ' + res.message, type: 'error'})
this.tableData[index].state = this.tableData[index].state == 0 ? 2 : 0;
}
}).catch((res) => {
});
}).catch(() => {
this.tableData[index].state = this.tableData[index].state == 0 ? 2 : 0;
})
},
upload(form){
this.$refs[form].validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.$api.getlist.saveFile(this.pushForm).then((res) => {
if(res.code == 200) {
this.$message({message: '操作成功', type: 'success'})
this.closeDialog('pushForm');
this.current_change(0);
}else {
this.$message({message: '操作失败, ' + res.message, type: 'error'})
}
}).catch((res) => {
});
})
}
})
},
current_change(s){
var data={
pageNum:s,
pageSize:10
}
this.$api.getlist.newsList(data).then((res) => {
this.tableData=res.data.list
if(res.code == 200) {
this.totals = res.data.total
this.page = res.data.total.pageNum
this.tableData = res.data.list
}
}).catch((res) => {
});
},
stateFormat(row, column) {
if (row.state === 0) {
return '停用'
} else if (row.state === 1) {
return '默认'
} else if (row.state === 2) {
return '启用'
}
}
},
created(){
......@@ -75,11 +290,18 @@
pageSize:10
}
this.$api.getlist.newsList(data).then((res) => {
this.tableData=res.data.list
if(res.code == 200) {
this.totals = res.data.total
this.page = res.data.total.pageNum
this.tableData = res.data.list
this.tableData.forEach(element => {
this.tableData.state = this.tableData.state !== 0;
});
}
}).catch((res) => {
});
}
}
</script>
<template>
<div :v-html="content"></div>
</template>
<script>
export default {
data() {
return {
content:""
}
},
methods: {
created() {
}
}
}
</script>
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