This commit is contained in:
aoli.qu 2023-10-18 22:44:18 +08:00
parent 07e4aed932
commit 3ea56e80bf
37 changed files with 3259 additions and 645 deletions

6
package-lock.json generated
View File

@ -16148,6 +16148,12 @@
} }
} }
}, },
"swiper": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-3.4.0.tgz",
"integrity": "sha512-OE4bzIsNgxGhH44gzo6BndJwDmdEA8wIzMWc4c1EqHKPP/dz6iA/cj6DNGiTn1tDyUnaQx9jZnFCCmevcL8aTg==",
"dev": true
},
"symbol-tree": { "symbol-tree": {
"version": "3.2.4", "version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",

View File

@ -77,10 +77,11 @@
"git-revision-webpack-plugin": "^3.0.6", "git-revision-webpack-plugin": "^3.0.6",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^5.0.0", "less-loader": "^5.0.0",
"sass": "^1.25.0",
"sass-loader": "^8.0.2",
"opencollective": "^1.0.3", "opencollective": "^1.0.3",
"opencollective-postinstall": "^2.0.2", "opencollective-postinstall": "^2.0.2",
"sass": "^1.25.0",
"sass-loader": "^8.0.2",
"swiper": "^3.4.0",
"vue-svg-icon-loader": "^2.1.1", "vue-svg-icon-loader": "^2.1.1",
"vue-template-compiler": "^2.6.10", "vue-template-compiler": "^2.6.10",
"webpack": "^4.44.2", "webpack": "^4.44.2",

View File

@ -1,150 +1,198 @@
<template> <template>
<div> <div>
<Echart <Echart :options="options" id="bottomLeftChart" height="480px" width="100%" ref="myChart"></Echart>
:options="options"
id="bottomLeftChart"
height="480px"
width="100%"
></Echart>
</div> </div>
</template> </template>
<script> <script>
import Echart from '@/common/echart' import Echart from '@/common/echart'
export default { export default {
data () { data() {
return { return {
options: {} options: {}
} }
}, },
components: { components: {
Echart Echart
}, },
props: { props: {
cdata: { cdata: {
type: Object, type: Object,
default: () => ({}) default: () => ({})
} }
}, },
watch: { watch: {
cdata: { cdata: {
handler (newData) { handler(newData) {
this.options = { this.options = {
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
backgroundColor: 'rgba(255,255,255,0.1)', backgroundColor: 'rgba(255,255,255,0.1)',
axisPointer: { axisPointer: {
type: 'shadow', type: 'shadow',
label: { label: {
show: true, show: true,
backgroundColor: '#7B7DDC' backgroundColor: '#7B7DDC'
} }
}
},
legend: {
data: ['集中供养数', '供养总人数', '集中供养率'],
textStyle: {
color: '#B4B4B4',
fontSize:20
},
top: '0%'
},
grid: {
x: '8%',
width: '88%',
y: '4%'
},
xAxis: {
data: newData.category,
axisLine: {
lineStyle: {
color: '#B4B4B4'
} }
}, },
axisTick: { legend: {
show: false data: ['集中供养数', '供养总人数', '集中供养率'],
} textStyle: {
}, color: '#B4B4B4',
yAxis: [ fontSize: 20
{ },
splitLine: { show: false }, top: '0%'
},
grid: {
x: '8%',
width: '88%',
y: '4%'
},
xAxis: {
data: newData.category,
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: '#B4B4B4' color: '#B4B4B4'
} }
}, },
axisLabel: {
fontSize: 18
},
axisTick: {
show: false
}
},
yAxis: [{
splitLine: {
show: false
},
axisLine: {
lineStyle: {
color: '#B4B4B4'
}
},
axisLabel: { axisLabel: {
formatter: '{value} ' formatter: '{value} '
}
},
{
splitLine: {
show: false
},
axisLine: {
lineStyle: {
color: '#B4B4B4'
}
},
axisLabel: {
formatter: '{value} '
}
} }
}, ],
{ series: [{
splitLine: { show: false }, name: '集中供养率',
axisLine: { type: 'line',
lineStyle: { smooth: true,
color: '#B4B4B4' showAllSymbol: true,
} symbol: 'emptyCircle',
symbolSize: 8,
yAxisIndex: 1,
itemStyle: {
normal: {
color: '#F02FC2'
}
},
data: newData.rateData
}, },
axisLabel: { {
formatter: '{value} ' name: '集中供养数',
type: 'bar',
barWidth: 10,
itemStyle: {
normal: {
barBorderRadius: 5,
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#956FD4'
},
{
offset: 1,
color: '#3EACE5'
}
])
}
},
data: newData.barData
},
{
name: '供养总人数',
type: 'bar',
barGap: '-100%',
barWidth: 10,
itemStyle: {
normal: {
barBorderRadius: 5,
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: 'rgba(156,107,211,0.8)'
},
{
offset: 0.2,
color: 'rgba(156,107,211,0.5)'
},
{
offset: 1,
color: 'rgba(156,107,211,0.2)'
}
])
}
},
z: -12,
data: newData.lineData
} }
} ]
], }
series: [ },
{ immediate: true,
name: '集中供养率', deep: true
type: 'line', }
smooth: true, },
showAllSymbol: true, methods: {
symbol: 'emptyCircle', clickChart() {
symbolSize: 8, console.log(123232)
yAxisIndex: 1, }
itemStyle: { },
normal: { mounted() {
color: '#F02FC2' let myChart = this.$refs["myChart"].chart
} console.log(myChart)
}, console.log(this.cdata)
data: newData.rateData //
}, myChart.getZr().on('click', (params) => {
{ //echartsData
name: '集中供养数', if (this.cdata.category.length > 0) {
type: 'bar', const pointInPixel = [params.offsetX, params.offsetY];
barWidth: 10, //
itemStyle: { let index;
normal: { if (myChart.containPixel('grid', pointInPixel)) {
barBorderRadius: 5, index = myChart.convertFromPixel({
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [ seriesIndex: 0
{ offset: 0, color: '#956FD4' }, }, [params.offsetX, params.offsetY])[0];
{ offset: 1, color: '#3EACE5' } }
]) if (index !== undefined) {
} var village = this.cdata.category[index];
}, console.log(village)
data: newData.barData this.$router.push({
}, name: 'Console',
{ params: {
name: '供养总人数', village: village.id,
type: 'bar', type: 1
barGap: '-100%', }
barWidth: 10, })
itemStyle: { }
normal: {
barBorderRadius: 5,
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(156,107,211,0.8)' },
{ offset: 0.2, color: 'rgba(156,107,211,0.5)' },
{ offset: 1, color: 'rgba(156,107,211,0.2)' }
])
}
},
z: -12,
data: newData.lineData
}
]
} }
}, });
immediate: true,
deep: true
} }
} }
}
</script> </script>

View File

@ -11,14 +11,14 @@ export default {
return { return {
cdata: { cdata: {
category: [ category: [
'下堡坪村', {value:'下堡坪村', id:1},
'蛟龙寺村', {value:'蛟龙寺村', id:2},
'九山村', {value:'九山村', id:3},
'马宗岭村', {value:'马宗岭村', id:4},
'赵勉河村', {value:'赵勉河村', id:5},
'秀水村', {value:'秀水村', id:6},
'磨坪村', {value:'磨坪村', id:7},
'十八湾村' {value:'十八湾村', id:8}
], ],
lineData: [ lineData: [
15, 15,

View File

@ -1,61 +1,55 @@
<template> <template>
<div> <div>
<Echart <Echart :options="options" id="hldj" height="340px" width="300px" ref="myChart2"></Echart>
:options="options"
id="centreLeft1Chart"
height="340px"
width="300px"
></Echart>
</div> </div>
</template> </template>
<script> <script>
import Echart from '@/common/echart' import Echart from '@/common/echart'
export default { export default {
data () { data() {
return { return {
options: {} options: {}
} }
}, },
components: { components: {
Echart Echart
}, },
props: { props: {
cdata: { cdata: {
type: Object, type: Object,
default: () => ({}) default: () => ({})
} }
}, },
watch: { watch: {
cdata: { cdata: {
handler (newData) { handler(newData) {
this.options = { this.options = {
color: [ color: [
'#37a2da', '#37a2da',
'#32c5e9', '#32c5e9',
'#fb7293' '#fb7293'
], ],
tooltip: { tooltip: {
trigger: 'item', trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)' formatter: '{a} <br/>{b} : {c} ({d}%)'
}, },
toolbox: { toolbox: {
show: true show: true
}, },
calculable: true, calculable: true,
legend: { legend: {
orient: 'horizontal', orient: 'horizontal',
icon: 'circle', icon: 'circle',
bottom: 0, bottom: 0,
x: 'center', x: 'center',
data: newData.xData, data: newData.xData,
textStyle: { textStyle: {
color: '#fff', color: '#fff',
"fontSize": 18 "fontSize": 18
} }
}, },
series: [ series: [{
{
name: '等级统计', name: '等级统计',
type: 'pie', type: 'pie',
radius: [20, 100], radius: [20, 100],
@ -67,15 +61,36 @@ export default {
show: false show: false
}, },
}, },
} }]
] }
},
immediate: true,
deep: true
}
},
mounted() {
let myChart = this.$refs["myChart2"].chart
//
myChart.on('click', (param) => {
let index;
//dataIndex
index = param.dataIndex;
//
if (index !== undefined) {
//seriesData
if (this.cdata.seriesData[index].value != 0) {
/*跳转路由*/
this.$router.push({
name: 'Console',
params: {
nursingLevel: this.cdata.seriesData[index].id
}
})
}
} }
}, });
immediate: true,
deep: true
} }
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -12,9 +12,9 @@ export default {
cdata: { cdata: {
xData: ['一级护理', '二级护理', '三级护理'], xData: ['一级护理', '二级护理', '三级护理'],
seriesData: [ seriesData: [
{ value: 10, name: '一级护理' }, { value: 10, name: '一级护理',id: 1 },
{ value: 5, name: '二级护理' }, { value: 5, name: '二级护理',id: 2 },
{ value: 15, name: '三级护理' } { value: 15, name: '三级护理',id: 3 }
] ]
} }
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<Echart :options="options" id="centreLeft2Chart" height="340px" width="270px" style="padding: 10px;"></Echart> <Echart :options="options" id="centreLeft2Chart" height="340px" width="270px" style="padding: 10px;" ref="myChart"></Echart>
</div> </div>
</template> </template>
@ -53,17 +53,17 @@
shadowColor: 'rgba(0, 0, 0, 0.5)' shadowColor: 'rgba(0, 0, 0, 0.5)'
} }
}, },
itemStyle: { itemStyle: {
normal: { normal: {
color: function(colors) { color: function(colors) {
var colorList = [ var colorList = [
'#457bef', '#457bef',
'#ffaaff' '#ffaaff'
]; ];
return colorList[colors.dataIndex]; return colorList[colors.dataIndex];
} }
},
}, },
},
label: { label: {
normal: { normal: {
show: false, show: false,
@ -80,6 +80,29 @@
immediate: true, immediate: true,
deep: true deep: true
} }
},
mounted() {
let myChart = this.$refs["myChart"].chart
console.log(myChart)
//
myChart.on('click', (param) => {
let index;
//dataIndex
index = param.dataIndex;
//
if (index !== undefined) {
//seriesData
if (this.cdata.seriesData[index].value != 0) {
/*跳转路由*/
this.$router.push({
name: 'Console',
params: {
gender: this.cdata.seriesData[index].id
}
})
}
}
});
} }
} }
</script> </script>

View File

@ -12,8 +12,8 @@ export default {
cdata: { cdata: {
xData: ['男', '女'], xData: ['男', '女'],
seriesData: [ seriesData: [
{ value: 42, name: '男' }, { value: 42, name: '男', id: "1" },
{ value: 12, name: '女' } { value: 12, name: '女', id: "0" }
] ]
} }
} }

View File

@ -1,64 +1,58 @@
<template> <template>
<div> <div>
<Echart <Echart :options="options" id="nlqj" height="340px" width="380px" ref="nlqjChart"></Echart>
:options="options"
id="centreLeft1Chart"
height="340px"
width="380px"
></Echart>
</div> </div>
</template> </template>
<script> <script>
import Echart from '@/common/echart' import Echart from '@/common/echart'
export default { export default {
data () { data() {
return { return {
options: {} options: {}
} }
}, },
components: { components: {
Echart Echart
}, },
props: { props: {
cdata: { cdata: {
type: Object, type: Object,
default: () => ({}) default: () => ({})
} }
}, },
watch: { watch: {
cdata: { cdata: {
handler (newData) { handler(newData) {
this.options = { this.options = {
color: [ color: [
'#37a2da', '#37a2da',
"#ffdb5c", "#ffdb5c",
"#ff9f7f", "#ff9f7f",
'#fb7293', '#fb7293',
"#e7bcf3", "#e7bcf3",
'#8378ea' '#8378ea'
], ],
tooltip: { tooltip: {
trigger: 'item', trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)' formatter: '{a} <br/>{b} : {c} ({d}%)'
}, },
toolbox: { toolbox: {
show: true show: true
}, },
calculable: true, calculable: true,
legend: { legend: {
orient: 'horizontal', orient: 'horizontal',
icon: 'circle', icon: 'circle',
bottom: 0, bottom: 0,
x: 'center', x: 'center',
data: newData.xData, data: newData.xData,
textStyle: { textStyle: {
color: '#fff', color: '#fff',
"fontSize": 18 "fontSize": 18
} }
}, },
series: [ series: [{
{
name: '年龄统计', name: '年龄统计',
type: 'pie', type: 'pie',
radius: [20, 100], radius: [20, 100],
@ -68,18 +62,40 @@ export default {
label: { label: {
normal: { normal: {
show: true, show: true,
"fontSize": 18 "fontSize": 18
}, },
}, },
} }]
] }
},
immediate: true,
deep: true
}
},
mounted() {
let myChart = this.$refs["nlqjChart"].chart
console.log(myChart)
//
myChart.on('click', (param) => {
let index;
//dataIndex
index = param.dataIndex;
//
if (index !== undefined) {
//seriesData
if (this.cdata.seriesData[index].value != 0) {
/*跳转路由*/
this.$router.push({
name: 'Console',
params: {
ageRange: this.cdata.seriesData[index].id
}
})
}
} }
}, });
immediate: true,
deep: true
} }
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -12,12 +12,12 @@ export default {
cdata: { cdata: {
xData: ['50岁以下', '50岁-59岁', '60岁-69岁','70岁-79岁','80岁-89岁','90岁以上'], xData: ['50岁以下', '50岁-59岁', '60岁-69岁','70岁-79岁','80岁-89岁','90岁以上'],
seriesData: [ seriesData: [
{ value: 6, name: '50岁以下' }, { value: 6, name: '50岁以下', id:'1' },
{ value: 12, name: '50岁-59岁' }, { value: 12, name: '50岁-59岁', id:'2' },
{ value: 14, name: '60岁-69岁' }, { value: 14, name: '60岁-69岁', id:'3' },
{ value: 21, name: '70岁-79岁' }, { value: 21, name: '70岁-79岁', id:'4' },
{ value: 16, name: '80岁-89岁' }, { value: 16, name: '80岁-89岁', id:'5' },
{ value: 9, name: '90岁以上' }, { value: 9, name: '90岁以上', id:'6' },
] ]
} }
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<Echart :options="options" id="centreLeft2Chart" height="360px" width="270px" style="padding: 10px;"></Echart> <Echart :options="options" id="jzfp" height="360px" width="270px" style="padding: 10px;" ref="jzfpChart"></Echart>
</div> </div>
</template> </template>
@ -35,7 +35,11 @@
}, },
legend: { legend: {
orient: 'vertical', orient: 'vertical',
left: 'left' left: 'left',
textStyle: {
color: '#fff',
"fontSize": 18
}
}, },
series: [{ series: [{
// name: 'Access From', // name: 'Access From',
@ -76,6 +80,29 @@
immediate: true, immediate: true,
deep: true deep: true
} }
},
mounted() {
let myChart = this.$refs["jzfpChart"].chart
console.log(myChart)
//
myChart.on('click', (param) => {
let index;
//dataIndex
index = param.dataIndex;
//
if (index !== undefined) {
//seriesData
if (this.cdata.seriesData[index].value != 0) {
/*跳转路由*/
this.$router.push({
name: 'Console',
params: {
ifHelpPoor: this.cdata.seriesData[index].id
}
})
}
}
});
} }
} }
</script> </script>

View File

@ -12,8 +12,8 @@ export default {
cdata: { cdata: {
xData: ['是', '否'], xData: ['是', '否'],
seriesData: [ seriesData: [
{ value: 26, name: '是' }, { value: 26, name: '是', id: '1' },
{ value: 11, name: '否' } { value: 11, name: '否', id: '0' }
] ]
} }
} }

View File

@ -45,6 +45,11 @@ import echarts from 'echarts'
//import * as echarts from 'echarts' //import * as echarts from 'echarts'
Vue.prototype.$echarts = echarts Vue.prototype.$echarts = echarts
/* import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'
// 全局挂载
Vue.use(VueAwesomeSwiper) */
Vue.use(FormModel) Vue.use(FormModel)
Vue.use(Empty) Vue.use(Empty)
Vue.prototype.hasPerm = hasBtnPermission Vue.prototype.hasPerm = hasBtnPermission

View File

@ -13,6 +13,7 @@ const constantRouterComponents = {
'403': () => import('@/views/exception/403'), '403': () => import('@/views/exception/403'),
'404': () => import('@/views/exception/404'), '404': () => import('@/views/exception/404'),
'500': () => import('@/views/exception/500'), '500': () => import('@/views/exception/500'),
'developing': () => import('@/views/exception/developing'),
// 你需要动态引入的页面组件 // 你需要动态引入的页面组件
'Workplace': () => import('@/views/dashboard/Workplace'), 'Workplace': () => import('@/views/dashboard/Workplace'),
@ -166,15 +167,6 @@ export const userAccount = [
] ]
// 根级菜单
/* const rootRouter = {
path: '/',
name: 'index',
component: 'BigScreenLayout',
redirect: '/bigScreen',
meta: { title: '首页' },
children: []
} */
// 根级菜单 // 根级菜单
const rootRouter = { const rootRouter = {
path: '/', path: '/',

View File

@ -6,7 +6,7 @@
<icon name="chart-bar" class="text-icon"></icon> <icon name="chart-bar" class="text-icon"></icon>
</span> </span>
<div class="d-flex"> <div class="d-flex">
<span class="fs-xl text mx-2" style="font-size: 20px;">各村供养人数</span> <span class="fs-xl text mx-2" style="font-size: 20px;">各村供养情况统计</span>
</div> </div>
</div> </div>
<div> <div>

View File

@ -1,6 +1,6 @@
<template> <template>
<div id="bottomRight"> <div id="bottomRight">
<div class="bg-color-black"> <div class="bg-color-black" style="cursor:pointer;" @click="jumpPage">
<div class="d-flex pt-2 pl-2"> <div class="d-flex pt-2 pl-2">
<span> <span>
<icon name="align-left" class="text-icon"></icon> <icon name="align-left" class="text-icon"></icon>
@ -8,19 +8,15 @@
<span class="fs-xl text mx-2" style="font-size: 20px;">入住情况统计</span> <span class="fs-xl text mx-2" style="font-size: 20px;">入住情况统计</span>
</div> </div>
<div class="d-flex ai-center flex-column body-box"> <div class="d-flex ai-center flex-column body-box">
<dv-capsule-chart class="dv-cap-chart" :config="config" /> <dv-capsule-chart class="dv-cap-chart" :config="config" @click="skipto" />
</div> </div>
<!-- 4个主要的数据 --> <!-- 4个主要的数据 -->
<div class="bottom-data"> <div class="bottom-data">
<div <div class="item-box mt-2" v-for="(item, index) in numberData" :key="index">
class="item-box mt-2" <p class="text" style="text-align: center;">
v-for="(item, index) in numberData"
:key="index"
>
<p class="text" style="text-align: center;">
<dv-digital-flop class="dv-digital-flop" :config="item.number" /> <dv-digital-flop class="dv-digital-flop" :config="item.number" />
</p> </p>
<p class="text" > <p class="text">
{{ item.text }} {{ item.text }}
<span class="colorYellow" v-if="item.dw">({{ item.dw }})</span> <span class="colorYellow" v-if="item.dw">({{ item.dw }})</span>
</p> </p>
@ -31,172 +27,203 @@
</template> </template>
<script> <script>
import centerRight2Chart1 from '@/components/echart/centerRight/centerRightChart' import centerRight2Chart1 from '@/components/echart/centerRight/centerRightChart'
export default { export default {
components: { components: {
centerRight2Chart1 centerRight2Chart1
}, },
data () { data() {
return { return {
config: { config: {
data: [ data: [{
{ name: '供养房',
name: '供养房', value: 21
value: 21 },
{
name: '餐厅',
value: 1
},
{
name: '厨房',
value: 3
},
{
name: '活动室',
value: 1
},
{
name: '办公室',
value: 4
}
],
showValue: true
},
numberData: [{
number: {
number: [22],
toFixed: 0,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 30
}
},
text: '入住房间',
dw: '间'
}, },
{ {
name: '餐厅', number: {
value: 1 number: [37],
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 30
}
},
text: '供养房间',
dw: '间'
}, },
{ {
name: '厨房', number: {
value: 3 number: [52],
toFixed: 0,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 30
}
},
text: '入住床位',
dw: '个'
}, },
{ {
name: '活动室', number: {
value: 1 number: [80],
toFixed: 0,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 30
}
},
text: '总床位数',
dw: '个'
}, },
{},
{ {
name: '办公室', number: {
value: 4 number: [32.25],
toFixed: 2,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 30
}
},
text: '床位入住率',
dw: '%'
} }
], ]
showValue: true }
},
methods: {
skipto(config) {
console.log('config', config)
console.log('ceil', config.ceil)
console.log('hang', config.rowIndex)
this.$message.success('查看详情成功,可在控制台查看打印的数据')
}, },
numberData: [ jumpPage() {
{ this.$router.push({
number: { path: '/room/list'
number: [22], })
toFixed: 0, }
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 24
}
},
text: '入住房间',
dw: '间'
},
{
number: {
number: [37],
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 24
}
},
text: '供养房间',
dw: '间'
},
{
number: {
number: [52],
toFixed: 0,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 24
}
},
text: '入住床位',
dw: '个'
},
{
number: {
number: [80],
toFixed: 0,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 24
}
},
text: '总床位数',
dw: '个'
},
{},
{
number: {
number: [32.25],
toFixed: 2,
textAlign: 'left',
content: '{nt}',
style: {
fontSize: 24
}
},
text: '床位入住率',
dw: '%'
}
]
} }
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
$box-height: 485px; $box-height: 485px;
$box-width: 100%; $box-width: 100%;
#bottomRight {
padding: 20px 16px; #bottomRight {
height: $box-height; padding: 20px 16px;
width: $box-width;
border-radius: 5px;
.bg-color-black {
padding: 5px;
height: $box-height; height: $box-height;
width: $box-width; width: $box-width;
border-radius: 10px; border-radius: 5px;
}
.text { .bg-color-black {
color: #c3cbde; padding: 5px;
} height: $box-height;
.body-box { width: $box-width;
border-radius: 10px; border-radius: 10px;
overflow: hidden;
.dv-cap-chart {
width: 100%;
height: 270px;
position: relative;
} }
}
.bottom-data { .text {
position: absolute; color: #c3cbde;
top: 270px; }
left: 30px;
.item-box { .body-box {
& > div { border-radius: 10px;
padding-right: 5px; overflow: hidden;
}
font-size: 14px; .dv-cap-chart {
float: right; width: 100%;
position: relative; height: 240px;
width: 50%;
color: #d3d6dd;
.dv-digital-flop {
width: 120px;
height: 30px;
}
//
.coin {
position: relative; position: relative;
top: 6px;
font-size: 20px;
color: #ffc107;
} }
.colorYellow { }
color: yellowgreen;
} .bottom-data {
/* p { position: absolute;
top: 270px;
left: 30px;
.item-box {
&>div {
padding-right: 5px;
}
font-size: 14px;
float: right;
position: relative;
width: 50%;
color: #d3d6dd;
.dv-digital-flop {
width: 120px;
height: 30px;
}
//
.coin {
position: relative;
top: 6px;
font-size: 20px;
color: #ffc107;
}
.colorYellow {
color: yellowgreen;
}
/* p {
text-align: center; text-align: center;
} */ } */
}
}
::v-deep .label-column {
font-size: 18px;
} }
} }
}
// //
::v-deep .dv-capsule-chart .unit-label { ::v-deep .dv-capsule-chart .unit-label {
visibility: hidden; visibility: hidden;
} }
</style>
<style>
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div id="center"> <div id="center" style="cursor:pointer;" @click="jumpPage">
<div class="up"> <div class="up">
<div <div
class="bg-color-black item" class="bg-color-black item"
@ -20,7 +20,7 @@
<span> <span>
<icon name="chart-pie" class="text-icon"></icon> <icon name="chart-pie" class="text-icon"></icon>
</span> </span>
<span class="fs-xl text mx-2 mb-1 pl-3 bt-zh">所属村组</span> <span class="fs-xl text mx-2 mb-1 pl-3 bt-zh">在院人数村籍</span>
<dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" /> <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" />
</div> </div>
<div class="percent"> <div class="percent">
@ -207,6 +207,13 @@ export default {
}, },
components: { components: {
CenterChart CenterChart
},
methods: {
jumpPage() {
this.$router.push({
path: '/room/checkin'
})
}
} }
} }
</script> </script>
@ -222,7 +229,7 @@ export default {
justify-content: space-around; justify-content: space-around;
.item { .item {
border-radius: 6px; border-radius: 6px;
padding-top: 8px; // padding-top: 8px;
margin-top: 8px; margin-top: 8px;
width: 32%; width: 32%;
height: 70px; height: 70px;
@ -246,7 +253,7 @@ export default {
padding: 10px; padding: 10px;
width: 59%; width: 59%;
.dv-scr-rank-board { .dv-scr-rank-board {
height: 225px; height: 205px;
} }
} }
.percent { .percent {

View File

@ -38,11 +38,11 @@
<div class="react-left ml-3 fw-b" style="background-color: #1a5cd7;"> <div class="react-left ml-3 fw-b" style="background-color: #1a5cd7;">
<span class="text">数据统计</span> <span class="text">数据统计</span>
</div> </div>
<div class="react-left ml-3"> <div class="react-left ml-3 sx">
<span class="text">数据查询</span> <span class="text" @click="jumpPage(1)">数据查询</span>
</div> </div>
<div class="react-left ml-3"> <div class="react-left ml-3 sx">
<span class="text">荣誉展示</span> <span class="text" @click="jumpPage(2)">荣誉展示</span>
</div> </div>
</div> </div>
<!-- <div class="d-flex aside-width"> <!-- <div class="d-flex aside-width">
@ -57,11 +57,11 @@
</div> </div>
</div> --> </div> -->
<div class="d-flex aside-width"> <div class="d-flex aside-width">
<div class="react-right mr-3 react-l-s" style="width: 250px;"> <div class="react-right mr-3 react-l-s sx" style="width: 250px;">
<span class="text ">实时监控</span> <span class="text " @click="jumpPage(3)">实时监控</span>
</div> </div>
<div class="react-right mr-3 react-l-s" style="width: 250px;"> <div class="react-right mr-3 react-l-s sx" style="width: 250px;">
<span class="text ">健康预警</span> <span class="text " @click="jumpPage(4)">健康预警</span>
</div> </div>
<div class="react-right mr-4 react-l-s" style="width: 380px;"> <div class="react-right mr-4 react-l-s" style="width: 380px;">
<span class="react-after"></span> <span class="react-after"></span>
@ -106,10 +106,10 @@
<!-- 第四行数据 --> <!-- 第四行数据 -->
<div class="bottom-box"> <div class="bottom-box">
<dv-border-box-13> <dv-border-box-13>
<bottomLeft /> <bottomRight />
</dv-border-box-13> </dv-border-box-13>
<dv-border-box-12> <dv-border-box-12>
<bottomRight /> <bottomLeft />
</dv-border-box-12> </dv-border-box-12>
</div> </div>
</div> </div>
@ -221,6 +221,25 @@ export default {
document.webkitExitFullscreen(); document.webkitExitFullscreen();
} }
} }
},
jumpPage(type) {
if (type==1){
this.$router.push({
path: '/welcome'
})
} else if (type==2) {
this.$router.push({
path: '/honor/show'
})
} else if (type==3) {
this.$router.push({
path: '/aqld_bjcl'
})
} else if (type==4) {
this.$router.push({
path: '/aqld_jkjc'
})
}
} }
} }
@ -233,4 +252,5 @@ body {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.sx :hover{cursor:pointer;}
</style> </style>

View File

@ -0,0 +1,21 @@
<template>
<a-result status="developing" title="开发中" sub-title="对不起,功能正在建设中.">
<template #extra>
<a-button type="primary" @click="toHome">
返回
</a-button>
</template>
</a-result>
</template>
<script>
export default {
name: 'developing',
methods: {
toHome () {
this.$router.push({ path: '/' })
}
}
}
</script>

View File

@ -21,14 +21,14 @@
prop="content" prop="content"
:label-col="{ span: 2 }" :label-col="{ span: 2 }"
:wrapper-col="{ span: 21 }"> :wrapper-col="{ span: 21 }">
<a-textarea :autoSize="{ minRows: 3, maxRows: 10 }" v-model="form.content"/> <!-- <a-textarea :autoSize="{ minRows: 3, maxRows: 10 }" v-model="form.content"/> -->
<!-- <DbUeditor v-model="form.content" /> --> <DbUeditor v-model="form.content" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="上传图片"> <a-form-model-item label="封面图">
<db-upload v-model="fileList" type="img" ></db-upload> <db-upload v-model="fileList" type="img" ></db-upload>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>

View File

@ -1,41 +1,29 @@
<template> <template>
<a-card :bordered="false" title="荣誉展示栏"> <a-card :bordered="false">
<template slot="extra"> <template slot="extra">
<a-button type="primary" @click="goback">返回</a-button> <a-button type="primary" @click="close">返回</a-button>
<!-- <a-button type="primary" @click="save">保存</a-button> -->
</template> </template>
<div>
<div>
<h1 class="article-title" style="font-size: 30px;">{{ form.title }}</h1>
<div class="article-attr">
<!-- <div class="article-attr__item">
<span>{{ model.createOrgName }}</span>
</div> -->
<div class="article-attr__item">
<span>{{ form.createTime | moment }}</span>
</div>
</div>
<div class="article-body">
<div v-html="form.content"></div>
</div>
</div>
<a-form-model ref="ruleForm" :model="form" :rules="rules" :label-col="labelCol" :wrapper-col="wrapperCol"> <div class="down-class" v-show="fileList.length > 0">
<a-row :gutter="16"> <a-divider orientation="left">封面图</a-divider>
<a-col :span="12"> <db-upload v-model="fileList" type="img" disabled="true" max="fileList.length" ></db-upload>
<a-form-model-item ref="title" label="标题" prop="title" :wrapper-col="{ span: 18 }"> </div>
<a-input v-model="form.title" disabled /> </div>
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col>
<a-form-model-item
ref="content"
label="详细内容"
prop="content"
:label-col="{ span: 2 }"
:wrapper-col="{ span: 21 }">
<a-textarea :autoSize="{ minRows: 3, maxRows: 10 }" v-model="form.content" disabled/>
<!-- <DbUeditor v-model="form.content" disabled /> -->
</a-form-model-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="图片">
<!-- <img alt="image" v-for="(item, index) in fileList" :src="item.url" style="width: 50%;" /> -->
<db-upload v-model="fileList" type="img" disabled="true" max="fileList.length" ></db-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</a-card> </a-card>
</template> </template>
@ -122,7 +110,7 @@ export default {
this.goback() this.goback()
}, },
// //
goback () { close () {
this.$router.push({ path: '/honor/list', this.$router.push({ path: '/honor/list',
query: { query: {
} }
@ -132,4 +120,20 @@ export default {
} }
</script> </script>
<style></style> <style>
.article-attr {
color: black;
text-align: center;
}
.article-title {
text-align: center;
}
.article-body {
margin-top: 15px;
}
.down-class {
width: 50%;
margin-top: 20px;
}
</style>

View File

@ -59,7 +59,6 @@
columns: [ columns: [
{ {
title: '标题', title: '标题',
width: 200,
dataIndex: 'title' dataIndex: 'title'
}, },
// { // {
@ -70,6 +69,7 @@
{ {
title: '创建时间', title: '创建时间',
dataIndex: 'createTime', dataIndex: 'createTime',
width: 200,
scopedSlots: { customRender: 'createTime' } scopedSlots: { customRender: 'createTime' }
}, },
{ {
@ -137,7 +137,7 @@
} }
</script> </script>
tyle lang="less"> <style lang="less">
.table-operator { .table-operator {
margin-bottom: 18px; margin-bottom: 18px;
} }

View File

@ -0,0 +1,160 @@
<template>
<!--一带一路专区 开始-->
<div class="ydyl-zone">
<!-- 大头条 -->
<div class="headline" id="headline1" data-fontsize="36" data-fontcolor="">
<div class="part bg-white">
<h1><a>陪孤寡老人跨年守岁20载 特别的爱献给特殊的</a></h1>
</div>
</div>
<div class="area focus" id="focus1">
<div class="part clearfix">
<div class="focus-newsMedia left">
<div class="focus-newsMedia-top">
<div class="scroll breath" id="focusMediaScroll1">
<!-- 全媒体播放器帧数-->
<div class="scroll-articleNum hide">13</div>
<div class="scroll-tips hide" id="scrollTips1">
建议使用Chrome浏览器QQ浏览器360极速浏览器等
<div class="scroll-tips-close" id="scrollTipsClose"></div>
</div>
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide scroll-articles" data-url="">
<div class="img">
<a target="_blank">
<img class="swiper-lazy" src="./img/1.jpg" alt="">
<div class="swiper-lazy-preloader"></div>
</a>
</div>
<!-- <div class="tit">
<div class="btn hide"></div>
<a href="http://www.news.cn/photo/2023-10/18/c_1129921976.htm" target="_blank">习近平同印度尼西亚总统佐科会谈</a>
</div> -->
</div>
<div class="swiper-slide scroll-articles" data-url="">
<div class="img">
<a target="_blank">
<img class="swiper-lazy" src="./img/2.jpg" alt="">
<div class="swiper-lazy-preloader"></div>
</a>
</div>
</div>
<div class="swiper-slide scroll-articles" data-url="">
<div class="img">
<a target="_blank">
<img class="swiper-lazy" src="./img/3.jpg" alt="">
<div class="swiper-lazy-preloader"></div>
</a>
</div>
</div>
<div class="swiper-slide scroll-articles" data-url="">
<div class="img">
<a target="_blank">
<img class="swiper-lazy" src="./img/4.jpg" alt="">
<div class="swiper-lazy-preloader"></div>
</a>
</div>
</div>
<div class="swiper-slide scroll-articles" data-url="">
<div class="img">
<a target="_blank">
<img class="swiper-lazy" src="./img/5.jpg" alt="">
<div class="swiper-lazy-preloader"></div>
</a>
</div>
</div>
</div>
<div class="swiper-pagination"></div>
<div class="swiper-button-prev"></div>
<div class="swiper-button-next"></div>
</div>
</div>
</div>
</div>
<div class="focus-newsText bg-white right">
<div class="list list-txt" id="focusListNews1">
<ul>
<li class="active"><span><a target="_blank" @click="detail(3)">
下堡坪乡让流动党员有</a></span></li>
<li><span><a target="_blank">
身边榜样灯塔 做新时代的追光者</a></span></li>
<li> <span><a target="_blank">
医路守护夕阳红 真情服务暖人心</a></span></li>
<li> <span><a target="_blank">
点点滴滴暖民心</a></span></li>
<li> <span><a target="_blank">
下堡坪乡5家入选夷陵区美丽庭院</a></span></li>
<li ><span><a target="_blank">
福利院幸福掠影</a></span></li>
<li><span><a target="_blank">
福利院简介</a></span></li>
<li> <span><a target="_blank">
福利院分工职责</a></span></li>
<li> <span><a target="_blank">
院长简介</a></span></li>
<li> <span><a target="_blank">
相关制度</a></span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!--一带一路专区 结束-->
</template>
<script>
import Swiper from "swiper";
import "swiper/dist/css/swiper.min.css";
export default {
data() {
return {
}
},
components: {
},
mounted() {
this.initSwiper();
},
methods: {
//swiper
initSwiper() {
this.$nextTick(() => {
new Swiper(".swiper-container", {
autoplay: 3000,
/* slidesPerView: 1,
spaceBetween: 18, */
prevButton: ".swiper-button-prev",
nextButton: ".swiper-button-next",
// freeMode: true
});
});
},
detail(id) {
this.$router.push({
path: '/honor/detail',
query: {
id: id
}
})
}
}
}
</script>
<style lang="scss" scoped>
@import './css/index.css';
body {
margin: 0;
padding: 0;
}
</style>

File diff suppressed because it is too large Load Diff

BIN
src/views/honor/img/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

BIN
src/views/honor/img/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
src/views/honor/img/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
src/views/honor/img/4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
src/views/honor/img/5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 KiB

View File

@ -5,11 +5,7 @@
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<a-form-item label="村组"> <a-form-item label="村组">
<a-select <a-select :allowClear="true" v-model="queryParam.village" style="width: 100%" placeholder="请选择村组">
:allowClear="true"
v-model="queryParam.village"
style="width: 100%"
placeholder="请选择村组">
<a-select-option v-for="(item, index) in villageData" :key="index" :value="item.value" :lable="item.name"> <a-select-option v-for="(item, index) in villageData" :key="index" :value="item.value" :lable="item.name">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -36,15 +32,20 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="24">
<a-form-item label="供养方式">
<a-select :allowClear="true" v-model="queryParam.supportType" style="width: 100%" placeholder="请选择供养方式">
<a-select-option v-for="(item, index) in supportTypeData" :key="index" :value="item.value" :lable="item.name">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
</a-row> </a-row>
<a-row :gutter="48"> <a-row :gutter="48">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<a-form-item label="护理等级"> <a-form-item label="护理等级">
<a-select <a-select :allowClear="true" v-model="queryParam.nursingLevel" style="width: 100%" placeholder="请选择护理等级">
:allowClear="true"
v-model="queryParam.nursingLevel"
style="width: 100%"
placeholder="请选择护理等级">
<a-select-option v-for="(item, index) in nursingLevelData" :key="index" :value="item.value" :lable="item.name"> <a-select-option v-for="(item, index) in nursingLevelData" :key="index" :value="item.value" :lable="item.name">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
@ -59,6 +60,14 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="24">
<a-form-item label="是否精准扶贫">
<a-select v-model="queryParam.ifHelpPoor" placeholder="请选择" default-value="null" style="width: 100%">
<a-select-option value="1"></a-select-option>
<a-select-option value="0"></a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
<a-button style="margin-left: 8px" @click="() => {queryParam = {}, $refs.table.refresh(true)}">重置</a-button> <a-button style="margin-left: 8px" @click="() => {queryParam = {}, $refs.table.refresh(true)}">重置</a-button>
@ -66,7 +75,7 @@
</a-row> </a-row>
</a-form> </a-form>
<s-table ref="table" :columns="columns" :data="loadData" :rowKey="(record) => record.id" > <s-table ref="table" :columns="columns" :data="loadData" :rowKey="(record) => record.id">
<template slot="bringTime" slot-scope="text, record"> <template slot="bringTime" slot-scope="text, record">
{{ record.bringTime | moment('YYYY-MM-DD') }} {{ record.bringTime | moment('YYYY-MM-DD') }}
</template> </template>
@ -88,119 +97,146 @@
</template> </template>
<script> <script>
import { STable } from '@/components' import {
import { personPage } from '@/api/person/personSupport' STable
} from '@/components'
import {
personPage
} from '@/api/person/personSupport'
import { import {
dictionaryDropDown dictionaryDropDown
} from '@/api/sys/dictionaryItem' } from '@/api/sys/dictionaryItem'
export default { export default {
components: { components: {
STable STable
}, },
data () { data() {
return { return {
// //
queryParam: { village: '', ageRange: '', gender: '', nursingLevel: '', isInHospital: '' }, queryParam: {
type: 1, village: this.$route.params.village,
villageData: [], ageRange: this.$route.params.ageRange,
nursingLevelData: [], gender: this.$route.params.gender,
totalCount: 0, nursingLevel: this.$route.params.nursingLevel,
// ifHelpPoor: this.$route.params.ifHelpPoor,
columns: [ supportType: this.$route.params.supportType,
{ isInHospital: this.$route.params.isInHospital
title: '姓名',
width: 200,
dataIndex: 'name'
}, },
{ type: 1,
title: '年龄', villageData: [],
dataIndex: 'age' nursingLevelData: [],
}, supportTypeData: [],
{ totalCount: 0,
title: '村组', //
dataIndex: 'villageName' columns: [{
}, title: '姓名',
{ width: 200,
title: '护理等级', dataIndex: 'name'
dataIndex: 'nursingLevelName' },
}, {
{ title: '年龄',
title: '供养类型', dataIndex: 'age'
dataIndex: 'supportTypeName' },
}, {
{ title: '村组',
title: '性别', dataIndex: 'villageName'
dataIndex: 'sex', },
scopedSlots: { customRender: 'sex' } {
}, title: '护理等级',
{ dataIndex: 'nursingLevelName'
title: '入院时间', },
dataIndex: 'bringTime', {
scopedSlots: { customRender: 'bringTime' } title: '供养方式',
}, dataIndex: 'supportTypeName'
{ },
title: '居住房间', {
dataIndex: 'roomBed' title: '性别',
}, dataIndex: 'sex',
{ scopedSlots: {
title: '是否在院', customRender: 'sex'
dataIndex: 'isInHospital', }
scopedSlots: { customRender: 'isInHospital' } },
} {
], title: '入院时间',
dataIndex: 'bringTime',
scopedSlots: {
customRender: 'bringTime'
}
},
{
title: '居住房间',
dataIndex: 'roomBed'
},
{
title: '是否在院',
dataIndex: 'isInHospital',
scopedSlots: {
customRender: 'isInHospital'
}
}
],
// Promise // Promise
loadData: (parameter) => { loadData: (parameter) => {
return personPage(Object.assign(parameter, this.queryParam, return personPage(Object.assign(parameter, this.queryParam, {
{ type: this.type } type: this.type
)).then((res) => { })).then((res) => {
this.totalCount = res.total this.totalCount = res.total
return res return res
})
}
}
},
// -
created() {
this.dictionaryDropDown()
console.log(this.$route.params)
console.log(this.$route.params.gender)
},
// -
destroyed() {},
// data
watch: {
$route(to, from) { // to from
this.$refs.table.refresh(true)
}
},
methods: {
//
handleDetail(record) {
this.$router.push({
path: '/person/support/detail',
query: {
type: this.type,
id: record.id
}
})
},
/**
* 获取字典数据
*/
dictionaryDropDown() {
//
dictionaryDropDown({
dictionaryCode: '0040'
}).then(res => {
this.villageData = res.data
})
//
dictionaryDropDown({
dictionaryCode: '0021'
}).then(res => {
this.nursingLevelData = res.data
})
//
dictionaryDropDown({
dictionaryCode: '0020'
}).then(res => {
this.supportTypeData = res.data
}) })
} }
} }
},
// -
created () {
this.dictionaryDropDown()
},
// -
destroyed () { },
// data
watch: {
$route (to, from) { // to from
this.$refs.table.refresh(true)
}
},
methods: {
//
handleDetail (record) {
this.$router.push({
path: '/person/support/detail',
query: {
type: this.type,
id: record.id
}
})
},
/**
* 获取字典数据
*/
dictionaryDropDown () {
//
dictionaryDropDown({
dictionaryCode: '0040'
}).then(res => {
this.villageData = res.data
})
//
dictionaryDropDown({
dictionaryCode: '0021'
}).then(res => {
this.nursingLevelData = res.data
})
}
} }
}
</script> </script>

View File

@ -21,14 +21,14 @@ export default {
data () { data () {
return {} return {}
}, },
beforeRouteEnter (to, from, next) { /* beforeRouteEnter (to, from, next) {
next(vm => { next(vm => {
const code = vm.$store.state.user && vm.$store.state.user.currentRole.code const code = vm.$store.state.user && vm.$store.state.user.currentRole.code
if (code === 'student') { if (code === 'student') {
vm.$router.replace({ path: '/bigScreen' }) vm.$router.replace({ path: '/bigScreen' })
} }
}) })
}, }, */
computed: { computed: {
...mapState({ ...mapState({
currentRole: state => state.user.currentRole currentRole: state => state.user.currentRole

View File

@ -35,14 +35,6 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-col>
<a-form-model-item ref="jobs" label="岗位" prop="jobs" :label-col="{ span: 2 }" :wrapper-col="{ span: 21 }">
<a-input v-model="form.jobs" />
</a-form-model-item>
</a-col>
</a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item ref="phone" label="联系方式" prop="phone"> <a-form-model-item ref="phone" label="联系方式" prop="phone">
@ -52,6 +44,26 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col>
<a-form-model-item ref="homeAddress" label="家庭住址" prop="homeAddress" :label-col="{ span: 2 }" :wrapper-col="{ span: 21 }">
<a-input v-model="form.homeAddress" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="12">
<a-form-model-item ref="jobs" label="岗位" prop="jobs" >
<a-select
v-model="form.jobs"
style="width: 100%"
placeholder="请选择岗位">
<a-select-option v-for="(item, index) in jobsData" :key="index" :value="item.value" :lable="item.name">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item ref="maritalStatus" label="婚姻状况" prop="maritalStatus" > <a-form-model-item ref="maritalStatus" label="婚姻状况" prop="maritalStatus" >
<a-select <a-select
@ -189,6 +201,7 @@
familyList: [] familyList: []
}, },
maritalStatusData: [], maritalStatusData: [],
jobsData: [],
rules: { rules: {
name: [{ name: [{
required: true, required: true,
@ -210,6 +223,16 @@
required: true, required: true,
message: '请输入身份证号', message: '请输入身份证号',
trigger: 'blur' trigger: 'blur'
}],
phone: [{
required: true,
message: '请输入联系方式',
trigger: 'blur'
}],
homeAddress: [{
required: true,
message: '请输入家庭住址',
trigger: 'blur'
}] }]
} }
} }
@ -327,6 +350,12 @@
}).then(res => { }).then(res => {
this.maritalStatusData = res.data this.maritalStatusData = res.data
}) })
//
dictionaryDropDown({
dictionaryCode: '0050'
}).then(res => {
this.jobsData = res.data
})
}, },
// //
goback () { goback () {

View File

@ -35,14 +35,6 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-col>
<a-form-model-item ref="jobs" label="岗位" prop="jobs" :label-col="{ span: 2 }" :wrapper-col="{ span: 21 }">
<a-input disabled v-model="form.jobs" />
</a-form-model-item>
</a-col>
</a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item ref="phone" label="联系方式" prop="phone"> <a-form-model-item ref="phone" label="联系方式" prop="phone">
@ -50,8 +42,30 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-col>
<a-form-model-item ref="homeAddress" label="家庭住址" prop="homeAddress" :label-col="{ span: 2 }" :wrapper-col="{ span: 21 }">
<a-input disabled v-model="form.homeAddress" />
</a-form-model-item>
</a-col>
</a-row>
<a-row> <a-row>
<a-col :span="12">
<a-form-model-item ref="jobs" label="岗位" prop="jobs" >
<a-select
disabled
v-model="form.jobs"
style="width: 100%"
placeholder="请选择岗位">
<a-select-option v-for="(item, index) in jobsData" :key="index" :value="item.value" :lable="item.name">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item ref="maritalStatus" label="婚姻状况" prop="maritalStatus" > <a-form-model-item ref="maritalStatus" label="婚姻状况" prop="maritalStatus" >
<a-select <a-select
@ -190,6 +204,7 @@
familyList: [] familyList: []
}, },
maritalStatusData: [], maritalStatusData: [],
jobsData: [],
rules: { rules: {
name: [{ name: [{
required: true, required: true,
@ -345,6 +360,12 @@
}).then(res => { }).then(res => {
this.maritalStatusData = res.data this.maritalStatusData = res.data
}) })
//
dictionaryDropDown({
dictionaryCode: '0050'
}).then(res => {
this.jobsData = res.data
})
}, },
// //
goback () { goback () {

View File

@ -78,7 +78,7 @@ export default {
}, },
{ {
title: '岗位', title: '岗位',
dataIndex: 'jobs' dataIndex: 'jobsName'
}, },
{ {
title: '操作', title: '操作',

View File

@ -108,6 +108,24 @@
</template> </template>
<template v-if="form.type == 1"> <template v-if="form.type == 1">
<a-row>
<a-col :span="12">
<a-form-model-item ref="roomId" label="房间" prop="roomId">
<a-select v-model="form.roomId" @change="handleRoomChange">
<a-select-option v-for="room in roomList" :key="room.id" :value="room.id">{{ room.name }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item ref="bedId" label="床位" prop="bedId">
<a-select v-model="form.bedId">
<a-select-option v-for="bed in filteredBedList" :key="bed.id" :value="bed.id">{{ bed.name }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row> <a-row>
<a-col> <a-col>
<a-form-model-item <a-form-model-item
@ -448,6 +466,10 @@
import { import {
dictionaryDropDown dictionaryDropDown
} from '@/api/sys/dictionaryItem' } from '@/api/sys/dictionaryItem'
import {
roomListAll,
roomListAllBed
} from '@/api/room/room'
import DbDynamic from '@/components/DbDynamic/DbDynamic.vue' import DbDynamic from '@/components/DbDynamic/DbDynamic.vue'
const PARTONE = 'partOne' const PARTONE = 'partOne'
@ -531,11 +553,21 @@
message: '请选择所在村', message: '请选择所在村',
trigger: 'blur' trigger: 'blur'
}] }]
} },
roomList: [],
bedList: [],
selectedRoom: null, // roomId
selectedBed: null // bedId
} }
}, },
mounted () { computed: {
filteredBedList () {
//
if (this.form.roomId) {
return this.bedList.filter((bed) => bed.roomId === this.form.roomId)
}
return []
}
}, },
created () { created () {
this.init() this.init()
@ -669,6 +701,19 @@
}).then(res => { }).then(res => {
this.nursingLevelData = res.data this.nursingLevelData = res.data
}) })
//
roomListAll().then((res) => {
console.log(res)
this.roomList = res.data
})
roomListAllBed().then((res) => {
console.log(res)
this.bedList = res.data
})
},
handleRoomChange () {
//
this.form.bedId = null
}, },
// //
goback () { goback () {

View File

@ -110,6 +110,24 @@
</template> </template>
<template v-if="form.type == 1"> <template v-if="form.type == 1">
<a-row>
<a-col :span="12">
<a-form-model-item ref="roomId" label="房间" prop="roomId">
<a-select disabled v-model="form.roomId" @change="handleRoomChange">
<a-select-option v-for="room in roomList" :key="room.id" :value="room.id">{{ room.name }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item ref="bedId" label="床位" prop="bedId">
<a-select disabled v-model="form.bedId">
<a-select-option v-for="bed in filteredBedList" :key="bed.id" :value="bed.id">{{ bed.name }}</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row> <a-row>
<a-col> <a-col>
<a-form-model-item <a-form-model-item
@ -448,7 +466,10 @@
import { import {
dictionaryDropDown dictionaryDropDown
} from '@/api/sys/dictionaryItem' } from '@/api/sys/dictionaryItem'
import {
roomListAll,
roomListAllBed
} from '@/api/room/room'
import { STable } from '@/components' import { STable } from '@/components'
const PARTONE = 'partOne' const PARTONE = 'partOne'
@ -538,11 +559,24 @@
title: '工作单位', title: '工作单位',
dataIndex: 'workInfo' dataIndex: 'workInfo'
} }
] ],
roomList: [],
bedList: [],
selectedRoom: null, // roomId
selectedBed: null // bedId
} }
}, },
mounted () { mounted () {
},
computed: {
filteredBedList () {
//
if (this.form.roomId) {
return this.bedList.filter((bed) => bed.roomId === this.form.roomId)
}
return []
}
}, },
created () { created () {
this.init() this.init()
@ -672,6 +706,15 @@
}).then(res => { }).then(res => {
this.nursingLevelData = res.data this.nursingLevelData = res.data
}) })
//
roomListAll().then((res) => {
console.log(res)
this.roomList = res.data
})
roomListAllBed().then((res) => {
console.log(res)
this.bedList = res.data
})
}, },
// //
goback () { goback () {

View File

@ -176,9 +176,6 @@
this.form.personId = personData.id this.form.personId = personData.id
this.form.personName = personData.name this.form.personName = personData.name
}, },
/**
* 获取字典数据
*/
initRoom () { initRoom () {
roomListAll().then((res) => { roomListAll().then((res) => {
console.log(res) console.log(res)