a15fe798 by 田浩浩
2 parents 4013442d 538a2ed0
......@@ -8,10 +8,15 @@
"build": "vue-cli-service build"
},
"dependencies": {
"@antv/g2": "^4.2.8",
"@babel/polyfill": "^7.12.1",
"axios": "^0.21.1",
"babel-polyfill": "^6.26.0",
"bpmn-js": "^7.4.0",
"bpmn-js-properties-panel": "^0.37.2",
"bpmn-js-token-simulation": "^0.10.0",
"core-js": "^3.6.5",
"diagram-js": "^6.8.2",
"js-cookie": "2.2.0",
"lodash": "^4.17.21",
"node-sass": "^4.14.1",
......@@ -19,11 +24,7 @@
"nprogress": "0.2.0",
"vue": "2.6.10",
"vue-router": "3.0.2",
"vuex": "3.1.0",
"bpmn-js": "^7.4.0",
"diagram-js": "^6.8.2",
"bpmn-js-properties-panel": "^0.37.2",
"bpmn-js-token-simulation": "^0.10.0"
"vuex": "3.1.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
......
import dialogBox from '@/components/DialogBox/dialogBox.vue'
import lbTable from '@/components/lb-table/lb-table.vue'
import lbTable from '@/components/lbTable/lb-table.vue'
import Theme from '@/components/Theme/theme.vue'
import Popup from '@/components/Popup/index'
export default {
install: (Vue) => {
Vue.component('dialogBox', dialogBox);
Vue.component('lbTable', lbTable);
Vue.component('Theme', Theme);
Vue.prototype.$popup = Popup.install
}
}
\ No newline at end of file
......
......@@ -7,36 +7,36 @@
</template>
<script>
import vuePhotoZoomPro from '@/components/photo-zoom/vue-photo-zoom-pro'
export default {
name: 'PicZoom',
components: { vuePhotoZoomPro },
data() {
return {
type: "square",
showType: false,
}
import vuePhotoZoomPro from '@/components/PhotoZoom/vue-photo-zoom-pro'
export default {
name: 'PicZoom',
components: { vuePhotoZoomPro },
data () {
return {
type: "square",
showType: false,
}
},
props: {
url: {
type: String,
required: true,
// default: require('@/assets/vehicle_img/blank_vehicle.jpg')
},
props: {
url: {
type: String,
required: true,
// default: require('@/assets/vehicle_img/blank_vehicle.jpg')
},
bigWidth: {
type: Number,
required: true,
default: 168
},
scale: {
type: Number,
required: true,
default: 2
},
overlayStyle: {
type: String,
default: 'width:100%;height:100%'
}
bigWidth: {
type: Number,
required: true,
default: 168
},
}
scale: {
type: Number,
required: true,
default: 2
},
overlayStyle: {
type: String,
default: 'width:100%;height:100%'
}
},
}
</script>
\ No newline at end of file
......
<template>
<el-calendar v-model="date">
<template slot="dateCell" slot-scope="{date, data}">
<div :class="{ selected: isSelected(date, data) }">
<div class="solar">{{ data.day.split('-')[2] }}</div>
<div class="lunar" :class="{ festival: isFestival(date, data) }">{{ solarToLunar(date, data) }}</div>
</div>
</template>
</el-calendar>
</template>
<script>
import calendar from './calendar'
export default {
name: 'calendar',
data () {
return {
date: new Date(),
// 根据selectedDates设置选中日期
selectedDates: []
}
},
methods: {
// 是否选中日期
isSelected: function (slotDate, slotData) {
return this.selectedDates.includes(slotData.day)
},
// 是否节假日
isFestival (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm != ''
},
// 公历转农历
solarToLunar (slotDate, slotData) {
let solarDayArr = slotData.day.split('-');
let lunarDay = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2])
// 农历日期
let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn
// 公历节日\农历节日\农历节气
let festAndTerm = [];
festAndTerm.push(lunarDay.festival == null ? '' : ' ' + lunarDay.festival)
festAndTerm.push(lunarDay.lunarFestival == null ? '' : '' + lunarDay.lunarFestival)
festAndTerm.push(lunarDay.Term == null ? '' : '' + lunarDay.Term)
festAndTerm = festAndTerm.join('')
return festAndTerm == '' ? lunarMD : festAndTerm
}
}
}
</script>
<style scoped>
/**隐藏上一月、本月、下一月*/
.el-calendar__button-group {
display: none;
}
/deep/.el-calendar__body {
padding: 12px !important;
}
/deep/.el-calendar-table .el-calendar-day {
height: auto;
padding: 5px;
}
/**月份居中*/
.el-calendar__title {
width: 100%;
text-align: center;
}
/**日期div的样式*/
.el-calendar-table tr td:first-child {
border-left: 0px;
}
.el-calendar-table td {
min-height: 110px;
min-width: 110px;
border-right: 0px;
}
.el-calendar-table td.is-selected {
background-color: white;
}
.el-calendar-table .el-calendar-day {
padding: 0px;
text-align: center;
}
.el-calendar-table .el-calendar-day>div {
text-align: center
}
/**日期div的样式-公历*/
.el-calendar-table .el-calendar-day>div .solar {
text-align: center
}
/**日期div的样式-农历*/
.el-calendar-table .el-calendar-day>div .lunar {
padding-top: 5px;
font-size: 12px;
text-align: center
}
/**日期div的样式-选中*/
.el-calendar-table .el-calendar-day>div.selected {
background-color: #fef2f2;
border: 3px solid #fb0;
border-radius: 20px;
text-align: center
}
/**本月周末设置为红色*/
.el-calendar-table .current:nth-last-child(-n+2) .solar {
color: red;
}
/**本月农历设置为灰色*/
.el-calendar-table .current .lunar {
color: #606266;
font-size: 12px;
}
/**本月农历节日设置为红色*/
.el-calendar-table .current .lunar.festival {
color: red;
}
.el-calendar-table td {
border-right: none !important;
}
/**禁用点击效果*/
/*.el-calendar-table td {*/
/*pointer-events: none;*/
/*}*/
</style>
\ No newline at end of file
......@@ -4,9 +4,9 @@ import Vue from 'vue'
import App from './App'
import 'normalize.css/normalize.css' // a modern alternative to CSS resets
import Element from 'element-ui'
import './styles/element-variables.scss'
import '@/styles/element-variables.scss'
import '@/styles/index.scss'
import Base from './components/Base/base' // 全局组件引入
import Base from '@/components/Base/base' // 全局组件引入
import mixin from '@/utils/mixin/theme.js'
import { startLoadingAddCount, endLoadingSubCount } from './utils/requestLoading'
Vue.mixin(mixin);
......@@ -17,19 +17,13 @@ Vue.prototype.$rules = rules
// 全局加载
Vue.prototype.$startLoading = startLoadingAddCount
Vue.prototype.$endLoading = endLoadingSubCount
import Popup from './components/tanchuang/index'
Vue.prototype.$popup = Popup.install
import { theme } from "@/directive/theme.js"
Vue.directive("theme", theme)
Vue.directive('fo', {
inserted (el, binding, vnode) {
el.querySelector('input').focus()
}
})
import './image/icons' // icon
import store from './store'
import router from './router'
......
......@@ -10,17 +10,6 @@ import Layout from '@/layout'
export const constantRoutes = [
{
path: '/redirect',
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index')
}
]
},
{
path: '/404',
component: Layout,
hidden: true,
......
......@@ -24,7 +24,7 @@
<el-button type="primary" icon="el-icon-delete-solid" @click="handleDelete">删除</el-button>
</div>
<ul>
<li v-for="(img, index) in thumbnailImages" :key="index" :class="{ active:previewImg.index === index}"
<li v-for="(img, index) in thumbnailImages" :key="index" :class="{ active: previewImg.index === index }"
@click="showCurrent(index)">
<img :src="img.fjurl">
</li>
......@@ -36,7 +36,7 @@
</div>
</template>
<script>
import PhotoZoom from '@/components/photo-zoom'
import PhotoZoom from '@/components/PhotoZoom'
import { sjClmxUpload, sjClmxDelete } from '@/api/jsydsyqFlow'
import publicPicture from '@/components/publicPicture/index.vue'
export default {
......
.home {
display: flex;
justify-content: space-between;
.flexst {
display: flex;
justify-content: space-between;
}
.marginZL15 {
margin: 0 15px;
}
.right15 {
margin-right: 15px;
}
.title {
font-size: 18px;
}
.marginTop10 {
margin-top: 7px;
}
.home-left {
width: 70%;
padding-right: 3px;
.list-title {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
ul {
li {
line-height: 36px;
p {
white-space: nowrap;
}
}
}
}
.home-right {
padding-left: 4px;
width: 30%;
}
}
\ No newline at end of file
<template>
<div class="dashboard-container">
<img src="./home.png" alt="">
<div class="home">
<div class="home-left">
<el-row :gutter="8">
<el-col :span="12">
<el-card shadow="hover">
鼠标悬浮时显示
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="hover">
<div slot="header" class="flexst">
<h5 class="title">通知公告</h5>
<i class="el-icon-s-unfold pointer"></i>
</div>
<ul>
<li v-for="(item, index) in notice" :key="index" class="flexst">
<p class="list-title">{{ item.title }}</p>
<p class="marginZL15">{{ item.date }}</p>
<p>{{ item.state }}</p>
</li>
</ul>
</el-card>
</el-col>
</el-row>
<el-row :gutter="8" class="marginTop10">
<el-col :span="12">
<el-card shadow="hover">
<div slot="header" class="flexst">
<h5 class="title">待办事项</h5>
<i class="el-icon-s-unfold pointer"></i>
</div>
<ul>
<li v-for="(item, index) in toList" :key="index" class="flexst">
<p class="right15">{{ item.date }}</p>
<p class="list-title">{{ item.title }}</p>
</li>
</ul>
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="hover">
<div slot="header" class="flexst">
<h5 class="title">公司邮件</h5>
<i class="el-icon-s-unfold pointer"></i>
</div>
<ul>
<li v-for="(item, index) in mailList" :key="index" class="flexst">
<p class="right15">{{ item.date }}</p>
<p class="list-title">{{ item.title }}</p>
</li>
</ul>
</el-card>
</el-col>
</el-row>
<el-card shadow="hover" class="marginTop10" :body-style="{ paddingRight: '6px' }">
<div id="mountNode"></div>
</el-card>
</div>
<div class="home-right">
<calendar />
<el-card shadow="hover" class="marginTop10">
鼠标悬浮时显示
</el-card>
</div>
</div>
</template>
<script>
import * as G2 from '@antv/g2'
import calendar from '@/components/Calendar/index'
export default {
name: 'Dashboard',
name: 'home',
components: { calendar },
data () {
return {
currentRole: 'adminDashboard'
chartData: [{
year: '1991',
value: 15468
}, {
year: '1992',
value: 16100
}, {
year: '1993',
value: 15900
}, {
year: '1994',
value: 17409
}, {
year: '1995',
value: 17000
}, {
year: '1996',
value: 31056
}, {
year: '1997',
value: 31982
}, {
year: '1998',
value: 32040
}, {
year: '1999',
value: 33233
}],
notice: [
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
state: '未读'
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
state: '未读'
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
state: '未读'
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
state: '未读'
},
],
toList: [
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
}
,
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
}
,
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
}
],
mailList: [
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
},
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
}
,
{
title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
date: '2022-12',
}
]
}
},
computed: {
// ...mapGetters([
// 'roles'
// ])
},
created () {
// 可实现不同角色配置不同首页
// if (!this.roles.includes('admin')) {
// this.currentRole = 'editorDashboard'
// }
mounted () {
this.buildChart();
},
methods: {
buildChart () {
var chart = new G2.Chart({
container: 'mountNode',
height: 205
});
const e = document.createEvent('Event')
e.initEvent('resize', true, true)
window.dispatchEvent(e)
chart.source(this.chartData);
chart.scale({
value: {
min: 10000
},
year: {
range: [0, 1]
}
});
chart.axis('value', {
label: {
formatter: function formatter (val) {
return (val / 10000).toFixed(1) + 'k';
}
}
});
chart.tooltip({
crosshairs: true
})
chart.forceFit();
chart.area().position('year*value').shape('smooth');
chart.line().position('year*value').size(2).shape('smooth');
chart.render();
}
}
}
</script>
<style scoped lang="scss">
.dashboard-container {
height: 100%;
img {
width: 100%;
height: 100%;
}
}
@import "./index.scss";
</style>
\ No newline at end of file
......
......@@ -30,13 +30,13 @@
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="审查人:" prop="scr">
{{ item.shryxm }}
<el-form-item label="审查人:" prop="shryxm">
{{item.shryxm }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审核时间:" prop="shjssj">
{{ item.shjssj }}
<el-col :span="8" >
<el-form-item label="审核时间:" prop="shjssj" :key="refresh">
{{item.shjssj }}
</el-form-item>
</el-col>
</el-row>
......@@ -58,11 +58,15 @@ export default {
data () {
return {
bsmSlsq: '',
//刷新值
refresh : 10,
bestepid: '',
ruleForm: {
shyj: '',
bsmSlsq: this.$route.query.bsmSlsq,
stepid: this.$route.query.bestepid
stepid: this.$route.query.bestepid,
shryxm: '',
shjssj: '',
},
rules: {
shyj: [
......@@ -97,6 +101,9 @@ export default {
saveSpyjBySlsq(this.ruleForm).then(res => {
if (res.code === 200) {
this.$message.success("保存成功")
this.refresh += 1
this.tableData[this.tableData.length - 1].shryxm = res.result.shryxm
this.tableData[this.tableData.length - 1].shjssj = res.result.shjssj
} else {
this.$message.error(res.message)
}
......
......@@ -28,7 +28,10 @@ export function getForm(tabName, djywbm) {
break;
case "nydsyqslxx100":
form = require("@/views/ywbl/nydsyq/slxx.vue");
break;
break;
case "nydsyqslxx200":
form = require("@/views/ywbl/nydsyq/slxx200.vue");
break;
case "tdslxxCfdj":
form = require("@/views/ywbl/cfdj/tdslxx.vue");
break;
......
......@@ -73,6 +73,7 @@ import {
record,
getNextLinkInfo,
completeTask,
getStepFormInfo
} from "@/api/fqsq.js"
import { getWorkFlowImage } from "@/api/jsydsyqFlow.js"
import { getForm } from "./flowform.js"
......@@ -130,19 +131,19 @@ export default {
if (res.code === 200) {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
this.tabList = res.result.form;
//默认选择第一个选项卡内容
this.tabName = res.result.form[0].value;
let that = this;
this.tabList.forEach(function (item, index) {
if (item.value == "clxx") {
that.clxxIndex = index;
that.clxxForm = getForm(item.value);
that.clxxTab = item;
}
});
//默认加载第一个选项卡的组件内容
this.getFromRouter(res.result.form[0].value);
// this.tabList = res.result.form;
// //默认选择第一个选项卡内容
// this.tabName = res.result.form[0].value;
// let that = this;
// this.tabList.forEach(function (item, index) {
// if (item.value == "clxx") {
// that.clxxIndex = index;
// that.clxxForm = getForm(item.value);
// that.clxxTab = item;
// }
// });
// //默认加载第一个选项卡的组件内容
// this.getFromRouter(res.result.form[0].value);
}
})
},
......@@ -193,15 +194,36 @@ export default {
if (res.code === 200) {
this.unitData = res.result;
this.currentSelectProps = res.result[0];
this.unitClick(0);
}
})
},
//申请单元点击事件
unitClick (index) {
if (this.currentSelectProps.bsmSldy != this.unitData[index].bsmSldy) {
this.currentSelectProps = this.unitData[index];
this.fresh += 1;
}
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.type = 'ONLY_READ';
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh += 1;
//获取单元对应的所有表单信息
this.tabList = res.result;
//默认加载第一个表单信息
this.tabName = res.result[0].value;
//处理分屏材料信息
// let that = this;
// this.tabList.forEach(function (item, index) {
// if (item.value == "clxx") {
// that.clxxIndex = index;
// that.clxxForm = getForm(item.value, that.$route.query.sqywbm);
// that.clxxTab = item;
// }
// });
}
});
// if (this.currentSelectProps.bsmSldy != this.unitData[index].bsmSldy) {
// this.currentSelectProps = this.unitData[index];
// this.fresh += 1;
// }
},
//表单选项卡事件
tabClick (tab, event) {
......
......@@ -286,16 +286,11 @@ export default {
},
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val)
// this.$store.dispatch('slxx/setQlrxxNew', {
// qlrxx: this.ruleForm.qlrxx,
// fj: this.ruleForm.fj,
// gyfs: this.ruleForm.gyfs,
// djyy: this.ruleForm.djyy
// })
},
upDateJtcyList (val) {
this.ruleForm.jtcyList = _.cloneDeep(val)
},
//水域滩涂类型变化事件
changeSyttlx(e){
let itemLx = {}
itemLx = this.dictData['A23'].find((item) => {
......@@ -303,6 +298,7 @@ export default {
})
this.ruleForm.nydsyq.syttlxmc = itemLx.dname;
},
//养殖业方式变化事件
changeYzyfs(e){
let itemLx = {}
itemLx = this.dictData['A24'].find((item) => {
......@@ -310,6 +306,7 @@ export default {
})
this.ruleForm.nydsyq.yzyfsmc = itemLx.dname;
},
//用地用海变化事件
changeYdyhfl(e){
let itemLx = {}
itemLx = this.dictData['A51'].find((item) => {
......
......@@ -4,33 +4,19 @@
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-col :span="10">
<el-form-item label="不动产单元号">
<el-input placeholder="请输入不动产单元号" v-model="queryForm.bdcdyh" clearable class="width300px">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不动产权证号">
<el-input placeholder="请输入不动产权证号" v-model="queryForm.bdcqzh" clearable class="width300px">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="权利人">
<el-input placeholder="请输入不动产单元号" v-model="queryForm.zl" clearable class="width300px">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="10">
<el-form-item label="坐落">
<el-input placeholder="请输入不动产单元号" v-model="queryForm.zl" clearable class="width300px">
<el-input placeholder="请输入坐落" v-model="queryForm.zl" clearable class="width300px">
</el-input>
</el-form-item>
</el-col>
<el-col :span="2" class="btnColRight">
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button type="primary" @click="fetchData">查询</el-button>
</el-form-item>
......