Browse Source

251201

main
wxc 2 months ago
parent
commit
9154f3dac0
  1. 3
      .gitignore
  2. 21
      package.json
  3. 2
      src/api/report/index.ts
  4. 6
      src/api/request.ts
  5. 22
      src/components/home/work/index.vue
  6. 3
      src/components/reportAudit/finish.vue
  7. 14
      src/components/reportAudit/start.vue
  8. 7
      src/layout/components/Header.vue
  9. 43
      src/style/datav.css
  10. 9
      src/style/datav.css.map
  11. 581
      src/style/public.css
  12. 9
      src/style/public.css.map
  13. 17
      src/style/theme.css
  14. 9
      src/style/theme.css.map
  15. 134
      src/views/Ledger.vue
  16. 50
      src/views/entryWindow/index.vue
  17. 1
      src/views/report/edit/controlPrice-1.vue
  18. 75
      src/views/report/edit/controlPrice.vue
  19. 4
      src/views/serviceUnit/index.vue
  20. 295
      src/views/system/VideoConfig.vue
  21. 12
      src/views/warning/compile/warningCompile.vue
  22. 37
      src/views/warning/edit.vue

3
.gitignore vendored

@ -1,6 +1,6 @@
.history/ .history/
/node_modules/ /node_modules/
/v2/ /invest/
*.zip *.zip
.idea .idea
@ -9,3 +9,4 @@ pnpm-lock.yaml
auto-imports.d.ts auto-imports.d.ts
components.d.ts components.d.ts
vite.config.ts.timestamp-* vite.config.ts.timestamp-*
invest.zip

21
package.json

@ -6,7 +6,7 @@
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build --mode prod", "build": "vite build --mode prod",
"build:prod": "vite build --mode prod && WinRAR a -r invest.zip ./v2/", "build:prod": "vite build --mode prod && WinRAR a -r invest.zip ./invest/",
"preview": "vite preview" "preview": "vite preview"
}, },
"engines": { "engines": {
@ -15,22 +15,6 @@
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.3.1", "@element-plus/icons-vue": "^2.3.1",
"@liveqing/liveplayer-v3": "^3.7.35",
"@rollup/rollup-darwin-arm64": "^4.52.4",
"@univerjs/core": "^0.2.5",
"@univerjs/data-validation": "^0.2.5",
"@univerjs/design": "^0.2.5",
"@univerjs/docs": "^0.2.5",
"@univerjs/docs-ui": "^0.2.5",
"@univerjs/engine-formula": "^0.2.5",
"@univerjs/engine-numfmt": "^0.2.5",
"@univerjs/engine-render": "^0.2.5",
"@univerjs/facade": "^0.2.5",
"@univerjs/sheets": "^0.2.5",
"@univerjs/sheets-data-validation": "^0.2.5",
"@univerjs/sheets-formula": "^0.2.5",
"@univerjs/sheets-ui": "^0.2.5",
"@univerjs/ui": "^0.2.5",
"@vue-office/docx": "^1.6.0", "@vue-office/docx": "^1.6.0",
"@vue-office/excel": "^1.7.11", "@vue-office/excel": "^1.7.11",
"@vueup/vue-quill": "^1.2.0", "@vueup/vue-quill": "^1.2.0",
@ -71,8 +55,5 @@
"unplugin-vue-components": "^0.26.0", "unplugin-vue-components": "^0.26.0",
"vite": "^5.0.8", "vite": "^5.0.8",
"vite-plugin-svg-icons": "^2.0.1" "vite-plugin-svg-icons": "^2.0.1"
},
"resolutions": {
"@rollup/rollup-darwin-arm64": "npm:@rollup/rollup-darwin-x64"
} }
} }

2
src/api/report/index.ts

@ -8,7 +8,7 @@ export const saveReportProject=(body)=>{
} }
//删除 //删除
export const removeReportProject = (id)=>{ export const removeReportProject = (id)=>{
return request.delete({ return request.del({
url:`/reportProject/${id}` url:`/reportProject/${id}`
}) })
} }

6
src/api/request.ts

@ -95,7 +95,11 @@ function ajax(url: string, options: Options) {
if( isBlob){ if( isBlob){
return response.blob(); return response.blob();
} }
return response.json(); try {
return response.json();
} catch (error) {
return response.text();
}
}).then(res => { }).then(res => {
if(isBlob){ if(isBlob){
console.log('-----') console.log('-----')

22
src/components/home/work/index.vue

@ -74,17 +74,23 @@ const alarms = ref([])
const myAlarmTotal = ref(0) const myAlarmTotal = ref(0)
const loading = ref(true) const loading = ref(true)
function getList() { async function getList() {
loading.value = true loading.value = true
listTodos({
try{
const data = await listTodos({
current: 1, current: 1,
size: 100, size: 100,
}).then((data) => { });
todos.value = data.records; todos.value = data.records;
myTodoTotal.value = data.total myTodoTotal.value = data.total
todoToExpires.value = data.records.filter(item => item.remainingDuration < 43200) todoToExpires.value = data.records.filter(item => item.remainingDuration < 43200)
loading.value = false }catch (e){
}); console.log('e',e)
}finally {
loading.value = false
}
} }
const alarmLoading = ref(false) const alarmLoading = ref(false)

3
src/components/reportAudit/finish.vue

@ -130,7 +130,8 @@ const getNodesFun = (val)=>{
// //
const query = ref({ const query = ref({
current: 1, current: 1,
departBranch: true departBranch: true,
size: 100
}); });
let polices = ref([]) let polices = ref([])
function getPoliceList() { function getPoliceList() {

14
src/components/reportAudit/start.vue

@ -158,24 +158,26 @@
let arr =data.filter(s=>s.id == departId); let arr =data.filter(s=>s.id == departId);
if(props.isCityAudit || arr){ if(props.isCityAudit || arr){
// //
let approverUnitId = getDictValue(dict.AuditUnitPresetting,"市局审计单位"); let approverUnitId = getDictValue(dict.AuditUnitPresetting,departId);
approverUnitId = approverUnitId?approverUnitId:getDictValue(dict.AuditUnitPresetting,
"市局审计单位");
console.log('approverUnitId',approverUnitId)
//id //id
let reviewePreset =getDictValue(dict.ReviewePresetSetting,"编辑报审"); let reviewePreset =getDictValue(dict.ReviewePresetSetting,departId);
// reviewePreset = reviewePreset?reviewePreset:getDictValue(dict.ReviewePresetSetting,
"编辑报审");
console.log('reviewePreset',reviewePreset)
getDepartShortName() getDepartShortName()
formData.value.approverId = reviewePreset; formData.value.approverId = reviewePreset;
formData.value.approverUnitId= approverUnitId; formData.value.approverUnitId= approverUnitId;
formData.value.approverUnit = getShortName(departs,approverUnitId) formData.value.approverUnit = getShortName(departs,approverUnitId)
query.value.departId =approverUnitId; query.value.departId =approverUnitId;
console.log('-----------')
if(props.isWarning && "inform" === props.isWarning){ if(props.isWarning && "inform" === props.isWarning){
delete query.value.departId; delete query.value.departId;
}else { }else {
getPoliceList() getPoliceList()
delete query.value.departId; delete query.value.departId;
} }
}else{ }else{

7
src/layout/components/Header.vue

@ -20,10 +20,6 @@
<icon name="el-icon-Star" :size="22" /> <icon name="el-icon-Star" :size="22" />
<span>技术支持</span> <span>技术支持</span>
</li> </li>
<li class="flex gap v-center" @click="openHelp">
<icon name="local-icon-question" :size="22" />
<span>帮助教程</span>
</li>
<li class="flex gap v-center" @click="goBackV1"> <li class="flex gap v-center" @click="goBackV1">
<icon name="el-icon-Back" :size="20" /> <icon name="el-icon-Back" :size="20" />
<span>返回旧版</span> <span>返回旧版</span>
@ -68,7 +64,8 @@ document.addEventListener("click", () => {
async function handleLogout() { async function handleLogout() {
await logout(); await logout();
deleteToken(); deleteToken();
location.reload(); // location.reload();
window.location.replace('http://65.47.6.108/v2/#/login')
} }
function goBackV1() { function goBackV1() {

43
src/style/datav.css

@ -0,0 +1,43 @@
.wrapper {
min-height: 100vh;
padding: 16px 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
background-color: #030B39;
color: #fff;
font-size: 16px;
}
.col {
--label-width: 66px;
}
.col label {
color: #5574E1;
text-align: left;
}
.col span {
color: #fff;
}
.datav-col {
font-size: 14px;
text-align: center;
margin-bottom: 16px;
}
.datav-col label {
color: #859DEC;
}
.descriptions_label {
color: #24d2ee;
font-size: 14px;
}
.descriptions_content {
font-size: 29px;
font-weight: 700;
}
/*# sourceMappingURL=datav.css.map */

9
src/style/datav.css.map

@ -0,0 +1,9 @@
{
"version": 3,
"mappings": "AAAA,AAAA,QAAQ,CAAC;EACL,UAAU,EAAE,KAAK;EACjB,OAAO,EAAE,SAAS;EAClB,UAAU,EAAE,UAAU;EACtB,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;CAClB;;AAED,AAAA,IAAI,CAAC;EACD,aAAa,CAAA,KAAC;CASjB;;AAVD,AAEI,IAFA,CAEA,KAAK,CAAC;EACF,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,IAAI;CACnB;;AALL,AAOI,IAPA,CAOA,IAAI,CAAC;EACD,KAAK,EAAE,IAAI;CACd;;AAGL,AAAA,UAAU,CAAC;EACP,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,aAAa,EAAE,IAAI;CAItB;;AAPD,AAII,UAJM,CAIN,KAAK,CAAC;EACF,KAAK,EAAE,OAAO;CACjB;;AAGL,AAAA,mBAAmB,CAAC;EAChB,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,IAAI;CAClB;;AACD,AAAA,qBAAqB,CAAC;EAClB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;CACnB",
"sources": [
"datav.scss"
],
"names": [],
"file": "datav.css"
}

581
src/style/public.css

@ -0,0 +1,581 @@
:root {
--header-height: 9.26vh;
--aside-width: 15.6vw;
--multiple-tabs-height: 50px;
--primary-color: #162582;
--success-color: #064D00;
--danger-color: #F60000;
--warning-color: #D05200;
}
body {
margin: 0;
overflow: hidden;
color: #333;
font-family: SourceHanSansCN;
line-height: 1.4;
width: 100% !important;
}
h2 {
color: var(--primary-color);
font-size: 24px;
font-weight: 500;
}
h3 {
color: var(--primary-color);
font-size: 20px;
font-weight: 500;
margin: 20px 0;
}
h4 {
font-size: 18px;
font-weight: 500;
}
h5 {
color: var(--primary-color);
font-size: 16px;
font-weight: 500;
}
p {
margin: 0.5em 0;
}
img {
max-width: 100%;
}
svg + span {
margin-left: .5em;
}
.none {
display: none;
}
.inline-block {
display: inline-block;
}
.flex {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.flex-inline {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
}
.flex.v-center,
.flex-inline.v-center {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.flex.center,
.flex-inline.center {
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.flex.between,
.flex-inline.between {
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
.flex.end,
.flex-inline.end {
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
}
.flex.wrap,
.flex-inline.wrap,
.flex-wrap {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.flex.max-content,
.flex-inline.max-content {
width: -webkit-max-content;
width: -moz-max-content;
width: max-content;
}
.flex.column,
.flex-inline.column {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.flex.gap-4 > *,
.flex-inline.gap-4 > * {
margin-right: 4px;
}
.flex.gap-4 > *:last-child,
.flex-inline.gap-4 > *:last-child {
margin-right: 0;
}
.flex.gap > *,
.flex-inline.gap > * {
margin-right: 8px;
}
.flex.gap > *:last-child,
.flex-inline.gap > *:last-child {
margin-right: 0;
}
.flex.gap-10 > * {
margin-right: 10px;
}
.flex.gap-10 > *:last-child {
margin-right: 0;
}
.flex.gap-12 > * {
margin-right: 12px;
}
.flex.gap-12 > *:last-child {
margin-right: 0;
}
.flex.gap-16 {
margin-right: 16px;
}
.flex.gap-16:last-child {
margin-right: 0;
}
.flex.gap-20 {
margin-right: 20px;
}
.flex.gap-20:last-child {
margin-right: 0;
}
.text-small {
font-size: 12px;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-nowrap {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.text-wrap {
white-space: pre-wrap;
}
.text-primary {
color: var(--primary-color);
}
.text-danger {
color: var(--danger-color);
}
.text-success {
color: var(--success-color);
}
.text-warning {
color: var(--warning-color);
}
.text-bold {
font-weight: 700;
}
.container {
padding: 20px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.pointer:hover {
cursor: pointer;
}
.relative {
position: relative;
}
.pt-20 {
padding-top: 20px;
}
.m-1 {
margin: 1px;
}
.ml-2 {
margin-left: 2px;
}
.ml-4 {
margin-left: 4px;
}
.ml-8 {
margin-left: 8px;
}
.ml-10 {
margin-left: 10px;
}
.ml-16 {
margin-left: 16px;
}
.ml-20 {
margin-left: 20px;
}
.mr-4 {
margin-right: 4px;
}
.mr-8 {
margin-right: 8px;
}
.mr-10 {
margin-right: 10px;
}
.mr-16 {
margin-right: 16px;
}
.mr-18 {
margin-right: 18px;
}
.mr-20 {
margin-right: 20px;
}
.mr-40 {
margin-right: 40px;
}
.mt-4 {
margin-top: 4px;
}
.mt-8 {
margin-top: 8px;
}
.mt-10 {
margin-top: 10px;
}
.mt-16 {
margin-top: 16px;
}
.mt-18 {
margin-top: 18px;
}
.mt-20 {
margin-top: 20px;
}
.mt-30 {
margin-top: 30px;
}
.mt-40 {
margin-top: 40px;
}
.mt-60 {
margin-top: 60px;
}
.mb-0 {
margin-bottom: 0;
}
.mb-3 {
margin-bottom: 3px;
}
.mb-4 {
margin-bottom: 4px;
}
.mb-8 {
margin-bottom: 8px;
}
.mb-10 {
margin-bottom: 10px;
}
.mb-12 {
margin-bottom: 12px;
}
.mb-16 {
margin-bottom: 16px;
}
.mb-18 {
margin-bottom: 18px;
}
.mb-20 {
margin-bottom: 20px;
}
.mb-25 {
margin-bottom: 25px;
}
.mb-26 {
margin-bottom: 26px;
}
.mb-32 {
margin-bottom: 32px;
}
.mb-40 {
margin-bottom: 40px;
}
.h100 {
height: 100%;
}
.row {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
--label-width: 100px;
}
.row .col {
margin-bottom: 12px;
}
.col {
--gap-width: 10px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.col.col-4 {
width: 16.6%;
}
.col.col-6 {
width: 25%;
}
.col.col-8 {
width: 33.3%;
}
.col.col-12 {
width: 50%;
}
.col.col-18 {
width: 75%;
}
.col.col-24 {
width: 100%;
}
.col label {
width: var(--label-width);
text-align: right;
color: #999;
margin-right: var(--gap-width);
}
.col > span {
width: calc(100% - var(--label-width) - var(--gap-width));
color: #333;
}
.col.short {
width: 140px;
}
.link {
color: #004EFF;
text-decoration: none;
display: inline;
padding: 12px;
}
.link:hover {
font-weight: 700;
}
.table-container {
border: 1px solid #c6d0fb;
}
.overlay {
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
background-color: #4d515d80;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
z-index: 9999999;
}
.position-center {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.h100 {
height: 100%;
}
.h-280 {
height: 280px;
}
.tips p {
line-height: 20px;
margin: 0;
color: #888;
}
.content {
padding: 16px;
white-space: pre-wrap;
}
.step {
--setp-background-color: #fff;
--setp-font-color: #666;
--setp-border-color: rgba(195, 202, 245, 1);
--setp-font-size: 20px;
height: 45px;
padding-left: 6px;
background-color: var(--setp-background-color);
border: 1px solid var(--setp-border-color);
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--setp-font-color);
position: relative;
font-size: var(--setp-font-size);
}
.step:last-child::before {
display: none;
}
.step::before {
display: block;
content: "";
position: absolute;
right: -17px;
top: 50%;
width: 31px;
height: 31px;
background-color: var(--setp-background-color);
border-top: 1px solid var(--setp-border-color);
border-right: 1px solid var(--setp-border-color);
-webkit-transform: translateY(-50%) rotate(45deg);
transform: translateY(-50%) rotate(45deg);
z-index: 1;
}
.step::after {
display: block;
content: "";
position: absolute;
left: 26%;
top: 50%;
width: 16px;
height: 16px;
background-color: #fff;
border: 1px solid var(--setp-border-color);
border-radius: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.form-row {
margin-bottom: 8px;
font-size: 14px;
}
.form-row label {
width: 120px;
line-height: 32px;
padding-right: 12px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
text-align: right;
}
.form-row label + * {
width: calc(100% - 126px);
}
.form-row .btn-box {
width: 70px;
}
.form-row .el-form-item {
margin-bottom: 0;
}
.query-box > * {
margin-right: 10px;
margin-bottom: 10px;
}
/*# sourceMappingURL=public.css.map */

9
src/style/public.css.map

File diff suppressed because one or more lines are too long

17
src/style/theme.css

@ -0,0 +1,17 @@
@forward "element-plus/theme-chalk/src/common/var.scss" with (
$colors: (
"primary": (
"base": #162582,
),
'success': (
'base': #064D00,
),
'danger': (
'base': #F60000,
),
'warning': (
'base': #D05200,
),
)
);
/*# sourceMappingURL=theme.css.map */

9
src/style/theme.css.map

@ -0,0 +1,9 @@
{
"version": 3,
"mappings": "AACA,QAAQ,CAAR;;;;;;;;;;;;;;;CAAQ",
"sources": [
"theme.scss"
],
"names": [],
"file": "theme.css"
}

134
src/views/Ledger.vue

@ -1,134 +0,0 @@
<template>
<div ref="container" class="univer-container" />
</template>
<script lang="ts" setup>
import '@univerjs/sheets-data-validation/lib/index.css';
import { Univer, UniverInstanceType, Workbook, LocaleType, IWorkbookData, Tools } from "@univerjs/core";
import { defaultTheme } from "@univerjs/design";
import { UniverDocsPlugin } from "@univerjs/docs";
import { UniverDocsUIPlugin } from "@univerjs/docs-ui";
import { UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
import { UniverRenderEnginePlugin } from "@univerjs/engine-render";
import { UniverSheetsPlugin } from "@univerjs/sheets";
import { UniverSheetsFormulaPlugin } from "@univerjs/sheets-formula";
import { UniverSheetsUIPlugin } from "@univerjs/sheets-ui";
import { UniverUIPlugin } from "@univerjs/ui";
import { UniverDataValidationPlugin } from '@univerjs/data-validation';
import { UniverSheetsDataValidationPlugin } from '@univerjs/sheets-data-validation';
import DesignZhCN from '@univerjs/design/locale/zh-CN';
import UIZhCN from '@univerjs/ui/locale/zh-CN';
import DocsUIZhCN from '@univerjs/docs-ui/locale/zh-CN';
import SheetsZhCN from '@univerjs/sheets/locale/zh-CN';
import SheetsUIZhCN from '@univerjs/sheets-ui/locale/zh-CN';
import SheetsDataValidationZhCN from '@univerjs/sheets-data-validation/locale/zh-CN';
/**
*
* The ability to import locales from virtual modules and automatically import styles is provided by Univer Plugins. For more details, please refer to: https://univer.ai/guides/sheet/advanced/univer-plugins.
* If you encounter issues while using the plugin or have difficulty understanding how to use it, please disable Univer Plugins and manually import the language packs and styles.
*
* 从虚拟模块导入语言包以及自动导入样式是由 Univer Plugins 提供的能力详情参考https://univer.ai/zh-CN/guides/sheet/advanced/univer-plugins
* 如果您在使用该插件的时候出现了问题或者无法理解如何使用请禁用 Univer Plugins并手动导入语言包和样式
*/
// import { zhCN, enUS } from 'univer:locales'
const { data } = defineProps({
// workbook data
data: {
type: Object,
default: () => ({}),
},
});
const univerRef = ref<Univer | null>(null);
const workbook = ref<Workbook | null>(null);
const container = ref<HTMLElement | null>(null);
onMounted(() => {
init(data);
});
onBeforeUnmount(() => {
destroyUniver();
});
/**
* Initialize univer instance and workbook instance
* @param data {IWorkbookData} document see https://univer.ai/typedoc/@univerjs/core/interfaces/IWorkbookData
*/
const init = (data = {}) => {
const univer = new Univer({
theme: defaultTheme,
locale: LocaleType.ZH_CN,
locales: {
[LocaleType.ZH_CN]: Tools.deepMerge(
SheetsZhCN,
DocsUIZhCN,
SheetsUIZhCN,
UIZhCN,
DesignZhCN,
SheetsDataValidationZhCN
),
},
});
univerRef.value = univer;
// core plugins
// univer.registerPlugin(UniverRenderEnginePlugin);
// univer.registerPlugin(UniverFormulaEnginePlugin);
univer.registerPlugin(UniverUIPlugin, {
container: container.value!,
toolbar: true
});
// doc plugins
univer.registerPlugin(UniverDocsPlugin, {
hasScroll: false,
});
univer.registerPlugin(UniverDocsUIPlugin);
// sheet plugins
univer.registerPlugin(UniverSheetsPlugin);
univer.registerPlugin(UniverSheetsUIPlugin);
univer.registerPlugin(UniverSheetsFormulaPlugin);
univer.registerPlugin(UniverDataValidationPlugin);
univer.registerPlugin(UniverSheetsDataValidationPlugin);
// create workbook instance
workbook.value = univer.createUnit<IWorkbookData, Workbook>(UniverInstanceType.UNIVER_SHEET, data)
};
/**
* Destroy univer instance and workbook instance
*/
const destroyUniver = () => {
toRaw(univerRef.value)?.dispose();
univerRef.value = null;
workbook.value = null;
};
/**
* Get workbook data
*/
const getData = () => {
if (!workbook.value) {
throw new Error('Workbook is not initialized');
}
console.log(workbook.value.save())
return ;
};
defineExpose({
getData,
destroyUniver
});
</script>
<style lang="scss" scoped>
.univer-container {
height: 100%;
}
</style>

50
src/views/entryWindow/index.vue

@ -130,14 +130,18 @@ const getDetail =(row,code)=>{
id:row.id, id:row.id,
backPath:'/entryWindow' backPath:'/entryWindow'
} }
if(code === 'audit'){ if(code){
query.isAudit = true if(code === 'audit'){
query.isAudit = true
}
else if(code === 'edit' ){
query.isEdit = true
query.node = row.node
}
} }
else if(code === 'edit' ){ else{
query.isEdit = true
query.node = row.node
}else{
query.node = row.node query.node = row.node
query.disabledVal=true;
} }
router.push({ router.push({
@ -359,18 +363,21 @@ const isAdminShow = ()=>{
<el-tab-pane label="退窗" name="1"></el-tab-pane> <el-tab-pane label="退窗" name="1"></el-tab-pane>
</el-tabs> </el-tabs>
<el-table :data="tableData" v-loading="loading"> <el-table :data="tableData" v-loading="loading">
<el-table-column label="项目名称" prop="reportName"/> <el-table-column label="项目名称" prop="reportName" width="200" />
<el-table-column <el-table-column
label="报审类型" label="报审类型"
prop="reportType" prop="reportType"
show-overflow-tooltip show-overflow-tooltip
width="100"
/> />
<el-table-column <el-table-column
label="项目类别" label="项目类别"
prop="projectType" prop="projectType"
show-overflow-tooltip align="center"
width="100"
/> />
<el-table-column label="状态"> <el-table-column label="状态" align="center"
width="90">
<template #default="{row}"> <template #default="{row}">
<el-tag :type="row.isRecessed == 0? 'primary':'danger'">{{row.isRecessed== 0 ?'进窗':'退窗' }}</el-tag> <el-tag :type="row.isRecessed == 0? 'primary':'danger'">{{row.isRecessed== 0 ?'进窗':'退窗' }}</el-tag>
</template> </template>
@ -378,7 +385,8 @@ const isAdminShow = ()=>{
<el-table-column <el-table-column
label="当前环节" label="当前环节"
prop="node" prop="node"
show-overflow-tooltip align="center"
width="120"
> >
<template #default="{row}"> <template #default="{row}">
<el-tag>{{FlowNodeEnum[row.node]}}</el-tag> <el-tag>{{FlowNodeEnum[row.node]}}</el-tag>
@ -388,38 +396,40 @@ const isAdminShow = ()=>{
label="审计单位" label="审计单位"
prop="auditUnit" prop="auditUnit"
show-overflow-tooltip show-overflow-tooltip
min-width="100"
/> />
<el-table-column <el-table-column
label="项目单位" label="项目单位"
prop="projectUnit" prop="projectUnit"
show-overflow-tooltip show-overflow-tooltip
min-width="100"
/> />
<el-table-column <el-table-column
label="项目负责人" label="项目负责人"
prop="projectPrincipal" prop="projectPrincipal"
show-overflow-tooltip width="90"
/> />
<el-table-column <el-table-column
label="项目负责人联系方式" label="项目负责人联系方式"
prop="projectPhone" prop="projectPhone"
width="200" width="140"
align="center"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="采购方式" label="采购方式"
prop="purchaseMethod" prop="purchaseMethod"
show-overflow-tooltip align="center"
width="110"
/> />
<el-table-column <el-table-column
label="报审金额" label="报审金额"
prop="reportMoney" prop="reportMoney"
show-overflow-tooltip width="120"
/> />
<el-table-column <el-table-column
label="报审日期" label="报审日期"
prop="applicantTime" prop="applicantTime"
show-overflow-tooltip width="120"
> >
<template #default="{row}"> <template #default="{row}">
{{timeFormat(row.applicantTime)}} {{timeFormat(row.applicantTime)}}
@ -428,22 +438,22 @@ const isAdminShow = ()=>{
<el-table-column <el-table-column
label="立项金额" label="立项金额"
prop="projectApprovalMoney" prop="projectApprovalMoney"
show-overflow-tooltip width="120"
/> />
<el-table-column <el-table-column
label="立项日期" label="立项日期"
prop="projectApprovalTime" prop="projectApprovalTime"
show-overflow-tooltip width="120"
> >
<template #default="{row}"> <template #default="{row}">
{{timeFormat(row.projectApprovalTime)}} {{timeFormat(row.projectApprovalTime)}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" min-width="180px"> <el-table-column label="操作" fixed="right" min-width="160px">
<template #default="{ row }"> <template #default="{ row }">
<el-button link type="primary" v-if="row.applicantId === uid && row.isRecessed == 1" @click="getDetail(row,'edit')">编辑</el-button> <el-button link type="primary" v-if="row.applicantId === uid && row.isRecessed == 1" @click="getDetail(row,'edit')">编辑</el-button>
<el-button link type="primary" v-else-if="row.flowUserId === uid" @click="getDetail(row,'audit')">审批</el-button> <!-- <el-button link type="primary" v-else-if="row.flowUserId === uid" @click="getDetail(row,'audit')">审批</el-button>-->
<el-button link type="primary" v-else @click="getDetail(row)">详情</el-button> <el-button link type="primary" v-else @click="getDetail(row)">详情</el-button>
<el-button link type="danger" v-if="isAdminShow() && row.isRecessed == 0" @click="recessedShowFun(row,0)"> 退窗</el-button> <el-button link type="danger" v-if="isAdminShow() && row.isRecessed == 0" @click="recessedShowFun(row,0)"> 退窗</el-button>
<el-button link type="primary" v-if="(isAdminShow() || row.applicantId === uid) && row.isRecessed == 1" @click="recessedShowFun(row,1)">重新进窗</el-button> <el-button link type="primary" v-if="(isAdminShow() || row.applicantId === uid) && row.isRecessed == 1" @click="recessedShowFun(row,1)">重新进窗</el-button>

1
src/views/report/edit/controlPrice-1.vue

@ -1379,7 +1379,6 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
:headers="{ Authorization: getToken() }" :headers="{ Authorization: getToken() }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
@success="handleSuccess" @success="handleSuccess"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
> >
<el-button type="primary" link> <el-button type="primary" link>
导入定案表 导入定案表

75
src/views/report/edit/controlPrice.vue

@ -159,9 +159,18 @@ const getDetailFun = async (val) => {
formData.value.review.thirdlyReduceMoney = formData.value.review.secondReduceMoney || 0 formData.value.review.thirdlyReduceMoney = formData.value.review.secondReduceMoney || 0
} }
} }
//
if (formData.value.project.node === 'original') {
rulesData.value.referenceNumber = [
{required: true, message: '请输入文号', trigger: 'blur'}
];
rulesData.value.publicationDate = [
{required: true, message: '请选择发文日期', trigger: 'blur'}
];
}
} }
query.value.applicantId =formData.value.project?.applicantId; query.value.applicantId =formData.value.project?.applicantId;
query.value.departId = formData.value.project?.auditUnitId // query.value.departId = formData.value.project?.auditUnitId
getPoliceList(); getPoliceList();
await nextTick(() => { await nextTick(() => {
if (datePicker.value) { if (datePicker.value) {
@ -381,6 +390,10 @@ const handleClick = (tab, event) => {
// //
const closeFun = () => { const closeFun = () => {
if(route.query.disabledVal){
useTabsStore().removeTab('/entryWindow', router);
router.push({path:route.query.backPath})
}
if (route.query.node) { if (route.query.node) {
useTabsStore().removeTab('/report/edit/controlPrice', router); useTabsStore().removeTab('/report/edit/controlPrice', router);
router.push({path:route.query.backPath}) router.push({path:route.query.backPath})
@ -414,10 +427,6 @@ function getPoliceList() {
listPolice(query.value).then((data) => { listPolice(query.value).then((data) => {
polices.value = data.records; polices.value = data.records;
}); });
if(query.value?.applicantId){
delete query.value.applicantId
delete query.value.departId
}
} }
let date = ref() let date = ref()
@ -456,13 +465,13 @@ const rejectFun = () => {
// //
const isShowFun = (list = []) => { const isShowFun = (list = []) => {
if (route.query.node) { if (route.query.node) {
if (['Lead', 'original', 'audit'].includes(route.query.node)) { if (['Lead', 'original', 'audit','end'].includes(route.query.node)) {
return true return true
} else { } else {
return list.includes(route.query.node) return list.includes(route.query.node)
} }
} else { } else {
if (['Lead', 'original', 'audit'].includes(formData.value.project.node)) { if (['Lead', 'original', 'audit','end'].includes(formData.value.project.node)) {
return true return true
} else { } else {
return list.includes(formData.value.project.node) return list.includes(formData.value.project.node)
@ -594,6 +603,10 @@ function disableFileBtn(node){
} }
//
const getExcelContrilPriceFun = async ()=>{ const getExcelContrilPriceFun = async ()=>{
if(formData.value.review.finalizationPath){ if(formData.value.review.finalizationPath){
window.open(`${BASE_PATH}/file/stream/${formData.value.review.finalizationPath}`); window.open(`${BASE_PATH}/file/stream/${formData.value.review.finalizationPath}`);
@ -670,8 +683,10 @@ watch(() => route.query.id, (val) => {
if (val) { if (val) {
getDetailFun(val); getDetailFun(val);
} else { } else {
//
if (userStore.user) { if (userStore.user) {
query.value.applicantId = userStore.user.userName; query.value.applicantId = userStore.user.userName;
formData.value.project.projectUnitId = userStore.user?.departId;
formData.value.project.applicantId = userStore.user.userName; formData.value.project.applicantId = userStore.user.userName;
formData.value.project.applicant = userStore.user.nickName; formData.value.project.applicant = userStore.user.nickName;
formData.value.project.applicantTime =timeFormat(new Date(),'yyyy-mm-dd hh:MM:ss'); formData.value.project.applicantTime =timeFormat(new Date(),'yyyy-mm-dd hh:MM:ss');
@ -685,6 +700,9 @@ watch(()=>formData.value.project.applicantId,(val)=>{
formData.value.project.applicant =polices.value.filter(s=>s.idCode === val)[0].name; formData.value.project.applicant =polices.value.filter(s=>s.idCode === val)[0].name;
} }
},{deep:true,immediate:true}) },{deep:true,immediate:true})
// //
watch(() => route.query.isEnd, (val) => { watch(() => route.query.isEnd, (val) => {
if(val){ if(val){
@ -726,18 +744,27 @@ watch(() => formData.value.project.auditUnitId, (val) => {
} }
}, {immediate: true, deep: true}) }, {immediate: true, deep: true})
// //
watch(()=>formData.value.review.firstMoney,()=>{ watch(()=>formData.value.review.firstMoney,(val)=>{
formData.value.review.firstReduceMoney = formData.value.project.reportMoney - formData.value.review.firstMoney if( val){
formData.value.review.firstReduceMoney = formData.value.project.reportMoney - formData.value.review.firstMoney
}
},{deep:true}) },{deep:true})
// //
watch(()=>formData.value.review.secondMoney,()=>{ watch(()=>formData.value.review.secondMoney,(val)=>{
formData.value.review.secondReduceMoney = formData.value.project.reportMoney - formData.value.review.secondMoney if(val){
formData.value.review.secondReduceMoney = formData.value.project.reportMoney - formData.value.review.secondMoney
}
},{deep:true}) },{deep:true})
// //
watch(()=>formData.value.review.thirdlyMoney,()=>{ watch(()=>formData.value.review.thirdlyMoney,(val)=>{
formData.value.review.thirdlyReduceMoney = formData.value.project.reportMoney- formData.value.review.thirdlyMoney if(val){
formData.value.review.thirdlyReduceMoney = formData.value.project.reportMoney - formData.value.review.thirdlyMoney
}
},{deep:true}) },{deep:true})
@ -760,7 +787,7 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="报审类型" prop="reportType"> <el-form-item label="报审类型" prop="reportType">
<el-select :disabled="isDisabled" v-model="formData.project.reportType"> <el-select disabled="true" v-model="formData.project.reportType">
<el-option value="项目控制价" label="项目控制价"></el-option> <el-option value="项目控制价" label="项目控制价"></el-option>
<el-option value="结算项目" label="结算项目"></el-option> <el-option value="结算项目" label="结算项目"></el-option>
</el-select> </el-select>
@ -905,12 +932,12 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="!isEndData && !isAuditEdit(['original','audit'],'文号')" :span="6"> <el-col v-if="!isEndData && !isAuditEdit(['original','audit'],'文号')" :span="6">
<el-form-item label="文号" > <el-form-item label="文号" prop="referenceNumber">
<el-input :disabled="isAuditEdit(['original','audit'])" v-model="formData.project.referenceNumber" /> <el-input :disabled="isAuditEdit(['original','audit'])" v-model="formData.project.referenceNumber" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col v-if="!isEndData && !isAuditEdit(['original','audit'],'发文日期')" :span="6"> <el-col v-if="!isEndData && !isAuditEdit(['original','audit'],'发文日期')" :span="6">
<el-form-item label="发文日期" > <el-form-item label="发文日期" prop="publicationDate">
<el-date-picker <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
:disabled="isAuditEdit(['original','audit'])" :disabled="isAuditEdit(['original','audit'])"
@ -972,12 +999,12 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="!isAuditEdit(['original','audit'])"> <el-col :span="6" v-if="!isAuditEdit(['original','audit'])">
<el-form-item label="文号" > <el-form-item label="文号" prop="referenceNumber">
<el-input :disabled="isAuditEdit(['original','audit'])" v-model="formData.project.referenceNumber" /> <el-input :disabled="isAuditEdit(['original','audit'])" v-model="formData.project.referenceNumber" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-if="!isAuditEdit(['original','audit'])"> <el-col :span="6" v-if="!isAuditEdit(['original','audit'])">
<el-form-item label="发文日期" > <el-form-item label="发文日期" prop="publicationDate">
<el-date-picker <el-date-picker
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
:disabled="isAuditEdit(['original','audit'])" :disabled="isAuditEdit(['original','audit'])"
@ -1152,7 +1179,6 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
:headers="{ Authorization: getToken() }" :headers="{ Authorization: getToken() }"
:before-upload="beforeUpload" :before-upload="beforeUpload"
@success="handleSuccess" @success="handleSuccess"
accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
> >
<el-button type="primary" link> <el-button type="primary" link>
导入定案表 导入定案表
@ -1171,8 +1197,9 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
<el-tab-pane v-if="FileTabShowFun()" label="审核附件" name="audit"></el-tab-pane> <el-tab-pane v-if="FileTabShowFun()" label="审核附件" name="audit"></el-tab-pane>
<el-tab-pane v-if="formData.review?.isExploration === '1'" label="勘察附件" name="exploration"></el-tab-pane> <el-tab-pane v-if="formData.review?.isExploration === '1'" label="勘察附件" name="exploration"></el-tab-pane>
<el-tab-pane v-if="formData.review?.isCross === '1'" label="对审附件" name="cross"></el-tab-pane> <el-tab-pane v-if="formData.review?.isCross === '1'" label="对审附件" name="cross"></el-tab-pane>
<el-tab-pane v-if="formData.review?.isCross === '1'" label="审计报告" name="sjbg"></el-tab-pane>
</el-tabs> </el-tabs>
<el-table :data="formData.files[activeName]" preserve-expanded-content style="z-index:9"> <el-table :data="formData.files[activeName]" preserve-expanded-content style="z-index:9">
<el-table-column type="expand"> <el-table-column type="expand">
<template #default="props"> <template #default="props">
<div v-if="props.row?.fileData"> <div v-if="props.row?.fileData">
@ -1204,7 +1231,8 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
<el-table-column label="资料名称" prop="fileName" ></el-table-column> <el-table-column label="资料名称" prop="fileName" ></el-table-column>
<el-table-column label="文件上传情况" prop="name" show-overflow-tooltip> <el-table-column label="文件上传情况" prop="name" show-overflow-tooltip>
<template #default="{row}" > <template #default="{row}" >
{{row.fileData?(row.fileData.length > 0?'已上传':'未上传'):'未上传'}} <el-tag v-if="row.fileData && row.fileData.length > 0" type="success">已上传</el-tag>
<el-tag v-else>未上传</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="上传人" prop="crtUser"></el-table-column> <el-table-column label="上传人" prop="crtUser"></el-table-column>
@ -1230,6 +1258,10 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
<el-button v-else type="primary" @click="approveFun">提交</el-button> <el-button v-else type="primary" @click="approveFun">提交</el-button>
<el-button type="danger" @click="rejectFun">驳回</el-button> <el-button type="danger" @click="rejectFun">驳回</el-button>
</div> </div>
<div v-if="route.query.disabledVal" class="flex end mt-20">
<el-button type="danger" @click="removeFun">删除</el-button>
<el-button @click="closeFun">关闭</el-button>
</div>
<div class="flex end mt-20" v-else > <div class="flex end mt-20" v-else >
<el-button v-if="!isDisabled" type="primary" @click="submitFun">提交</el-button> <el-button v-if="!isDisabled" type="primary" @click="submitFun">提交</el-button>
<el-button v-if="!isDisabled" type="primary" @click="saveFun">保存</el-button> <el-button v-if="!isDisabled" type="primary" @click="saveFun">保存</el-button>
@ -1317,4 +1349,5 @@ watch(()=>formData.value.review.thirdlyMoney,()=>{
.el-table .el-table__cell{ .el-table .el-table__cell{
position: initial !important; position: initial !important;
} }
</style> </style>

4
src/views/serviceUnit/index.vue

@ -121,8 +121,7 @@ onMounted(()=>{
<el-table-column width="70" type="index" label="序号" :index="(index)=> index+1"></el-table-column> <el-table-column width="70" type="index" label="序号" :index="(index)=> index+1"></el-table-column>
<el-table-column label="项目名称" prop="project" width="150" > <el-table-column label="项目名称" prop="project" width="150" >
<template #default="{row}"> <template #default="{row}">
<p v-if="row.projectId" @click="DetailReport(row.projectId)">{{row.project}}</p> <p >{{row.project}}</p>
<p v-else>{{row.project}}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="采购单位" prop="purchasingUnit"></el-table-column> <el-table-column label="采购单位" prop="purchasingUnit"></el-table-column>
@ -138,6 +137,7 @@ onMounted(()=>{
<el-table-column label="操作" width="180"> <el-table-column label="操作" width="180">
<template #default="{row}"> <template #default="{row}">
<el-button type="primary" link @click="detailFun(row)">查看</el-button> <el-button type="primary" link @click="detailFun(row)">查看</el-button>
<el-button v-if="row.projectId" type="primary" link @click="DetailReport(row.projectId)">项目详情</el-button>
<!-- <el-button type="primary" link @click="updataFun(row)">编辑</el-button>--> <!-- <el-button type="primary" link @click="updataFun(row)">编辑</el-button>-->
</template> </template>
</el-table-column> </el-table-column>

295
src/views/system/VideoConfig.vue

@ -1,295 +0,0 @@
<template>
<div class="container">
<header class="mb-20">
<el-form :label-width="114">
<el-row>
<el-col :span="6">
<el-form-item label="单位">
<el-tree-select
v-model="query.departId"
:data="departs"
:props="{ label: 'shortName', value: 'id' }"
node-key="id"
:default-expanded-keys="['12630']"
clearable
filterable
check-strictly
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="flex between">
<el-button type="primary" @click="handleShowAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增视频配置</el-button
>
<div>
<el-button type="primary" @click="getList">
<template #icon>
<icon name="el-icon-Search" />
</template>
查询</el-button
>
<el-button @click="reset">重置</el-button>
</div>
</div>
</header>
<div class="table-container">
<el-table :data="list">
<el-table-column
label="单位"
prop="departName"
show-overflow-tooltip
/>
<el-table-column label="设备" prop="deviceName" />
<el-table-column
label="视频地址"
prop="videoUrl"
show-overflow-tooltip
/>
<el-table-column
label="排序"
prop="sortId"
width="90"
align="center"
/>
<el-table-column
label="创建时间"
prop="createTime"
width="180"
/>
<el-table-column label="操作" width="200">
<template #default="{ row }">
<el-button
type="primary"
link
@click="handleEdit(row)"
v-perms="['user:edit']"
>编辑</el-button
>
<el-button type="danger" link @click="handleDel(row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex end mt-8">
<el-pagination
@size-change="getList"
@current-change="getList"
:page-sizes="[10, 20, 50]"
v-model:page-size="query.size"
v-model:current-page="query.current"
layout="total, sizes, prev, pager, next"
:total="total"
>
</el-pagination>
</div>
</div>
<el-dialog
:title="mode === 'add' ? '新增视频配置' : '编辑视频配置'"
v-model="show"
width="600"
>
<el-form :label-width="120" ref="formRef" :model="form">
<el-form-item
label="单位"
:rules="{
required: true,
message: '请选择',
trigger: ['blur'],
}"
prop="departId"
>
<el-tree-select
v-model="form.departId"
:data="departs"
:props="{ label: 'shortName', value: 'id' }"
node-key="id"
:default-expanded-keys="['12630']"
clearable
filterable
check-strictly
@node-click="handleDepartChange"
/>
</el-form-item>
<el-form-item
label="设备"
:rules="{
required: true,
message: '请选择',
trigger: ['blur'],
}"
prop="deviceId"
>
<el-tree-select
:data="devices"
v-model="form.deviceId"
:props="{
label: 'name',
value: 'deviceId',
disabled: nodeDisabled,
}"
node-key="id"
clearable
filterable
@current-change="handleDeviceChange"
>
<template #default="{ node, data }">
<div>
<span class="mr-10">{{ data.name }}</span>
<el-tag type="success" size="small" v-if="data.status === 'ON'">在线</el-tag>
<el-tag type="danger" size="small" v-if="data.status === 'OFF'">离线</el-tag>
</div>
</template>
</el-tree-select>
</el-form-item>
<el-form-item label="排序" prop="sortId">
<el-input
v-model="form.sortId"
type="number"
placeholder="排序"
/>
</el-form-item>
<el-form-item label="视频">
<div style="width: 100%">
<div style="width: 400px">
<VideoPlay :url="form.videoUrl" />
</div>
<p style="height: 32px;" :title="form.videoUrl">{{ form.videoUrl }}</p>
</div>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="show = false" size="large">取消</el-button>
<el-button type="primary" @click="submit" size="large"
>确定</el-button
>
</footer>
</el-dialog>
</template>
<script setup>
import {
listVideoConfig,
listDevice,
addVideoConfig,
updateVideoConfig,
delVideoConfig,
getVideoWsUrl,
} from "@/api/system/videoConfig";
import { getCountyAndCityBureausTree } from "@/api/system/depart";
import feedback from "@/utils/feedback";
const list = ref([]);
const query = ref({
current: 1,
size: 10,
});
const total = ref(0);
function getList() {
listVideoConfig(query.value).then((data) => {
list.value = data.records;
total.value = data.total;
});
}
function reset() {
query.value = {
current: 1,
size: 10,
};
getList();
}
const devices = ref([]);
const departs = ref([]);
let videoWsUrl = "";
onMounted(() => {
getList();
listDevice().then((data) => {
devices.value = data;
});
getCountyAndCityBureausTree().then((data) => {
departs.value = data;
});
getVideoWsUrl().then((data) => {
videoWsUrl = data;
});
});
const show = ref(false);
const mode = ref("add");
const form = ref({});
const formRef = ref(null);
function handleEdit(row) {
show.value = true;
mode.value = "edit";
form.value = row;
}
function handleDepartChange(node) {
form.value.departName = node.shortName;
}
function handleDeviceChange(node) {
if (departs.value.length > 0) {
form.value.parentId = devices.value[0].deviceId
}
form.value.deviceName = node.name;
}
watch(() => form.value.deviceId, () => {
form.value.videoUrl = `${videoWsUrl}rtp/${form.value.parentId}_${form.value.deviceId}.live.flv`;
})
function submit() {
formRef.value.validate((flag) => {
if (flag) {
if (mode.value === "edit") {
updateVideoConfig(form.value).then((data) => {
show.value = false;
form.value = {};
getList();
feedback.msgSuccess("操作成功");
});
} else {
addVideoConfig(form.value).then((data) => {
show.value = false;
form.value = {};
getList();
feedback.msgSuccess("操作成功");
});
}
}
});
}
watch(mode, (val) => {
if (val === "add") {
form.value = {};
}
});
function handleShowAdd() {
mode.value = "add";
show.value = true;
}
async function handleDel(row) {
await feedback.confirm("确定要删除该数据?");
await delVideoConfig(row.id);
getList();
}
function nodeDisabled(data) {
return data.status === "OFF";
}
</script>
<style lang="scss" scoped>
</style>

12
src/views/warning/compile/warningCompile.vue

@ -651,7 +651,7 @@ watch(() => route.query.id, (val) => {
getWarningRecord(val); getWarningRecord(val);
if(route.query.isEdit == 'true'){ if(route.query.isEdit == 'true'){
isDisabled.value=false; isDisabled.value=true;
}else{ }else{
isDisabled.value=true; isDisabled.value=true;
} }
@ -1135,9 +1135,9 @@ const tableRowClassName = ({row}) =>{
</el-table-column> </el-table-column>
<el-table-column width="50" type="index" label="序号" :index="(index)=> index+1"></el-table-column> <el-table-column width="50" type="index" label="序号" :index="(index)=> index+1"></el-table-column>
<el-table-column label="附件类型" prop="type" width="100"></el-table-column> <el-table-column label="附件类型" prop="type" width="100"></el-table-column>
<el-table-column label="上传" width="100"> <el-table-column label="上传" width="150">
<template #default="{$index,row}"> <template #default="{$index,row}">
<el-button type="primary" :disabled="isDisabled" @click="showUpFileDialog($index)" <el-button type="primary" :disabled="!isDisabled || route.query.isEdit != 'true'" @click="showUpFileDialog($index)"
>上传 >上传
<template #icon> <template #icon>
<icon name="el-icon-upload-filled"/> <icon name="el-icon-upload-filled"/>
@ -1152,7 +1152,7 @@ const tableRowClassName = ({row}) =>{
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="资料名称" prop="fileName" width="140"></el-table-column> <el-table-column label="资料名称" prop="fileName" width="140"></el-table-column>
<el-table-column label="文件上传情况" prop="name" min-width="180" show-overflow-tooltip> <el-table-column label="文件上传情况" prop="name" min-width="150" show-overflow-tooltip>
<template #default="{row}" > <template #default="{row}" >
{{row.fileData?(row.fileData.length > 0?'已上传':'未上传'):'未上传'}} {{row.fileData?(row.fileData.length > 0?'已上传':'未上传'):'未上传'}}
</template> </template>
@ -1161,7 +1161,7 @@ const tableRowClassName = ({row}) =>{
<el-table-column label="上传时间" width="170" prop="crtTime"></el-table-column> <el-table-column label="上传时间" width="170" prop="crtTime"></el-table-column>
</el-table> </el-table>
<div v-if="!isDisabled" <div v-if="!isDisabled || route.query.isEdit == 'true'"
class="mb-10" class="mb-10"
style="display: flex;justify-content: center;align-items: center;width: 100%"> style="display: flex;justify-content: center;align-items: center;width: 100%">
<el-button type="primary" style="width: 80vw;height: 30px;margin-top: 20px" @click="addFileTable()">新增附件</el-button> <el-button type="primary" style="width: 80vw;height: 30px;margin-top: 20px" @click="addFileTable()">新增附件</el-button>
@ -1169,7 +1169,7 @@ const tableRowClassName = ({row}) =>{
</div> </div>
<div class="flex end mt-20"> <div class="flex end mt-20">
<el-button v-if="!isDisabled" type="primary" :loading="loading" @click="saveFun">确认</el-button> <el-button v-if="!isDisabled || route.query.isEdit == 'true'" type="primary" :loading="loading" @click="saveFun">确认</el-button>
<el-button @click="closeFun">关闭</el-button> <el-button @click="closeFun">关闭</el-button>
</div> </div>
</el-main> </el-main>

37
src/views/warning/edit.vue

@ -115,7 +115,7 @@ const closeAuditDialogFun = ()=>{
dialog.value=false dialog.value=false
rejectDialog.value=false rejectDialog.value=false
finishDialog.value=false finishDialog.value=false
isAudit.value=false // isAudit.value=false
endDialog.value=false; endDialog.value=false;
} }
// //
@ -142,7 +142,7 @@ const closePage = ()=>{
// //
router.push({path:route.query.backPath}) router.push({path:route.query.backPath})
} else { } else {
router.push({path:"/warning", query:{"load": true}}) router.push({path:"/work", query:{"load": true}})
} }
} }
// //
@ -564,22 +564,22 @@ const timeAlertFun=(rowName)=>{
<el-input :disabled="isDisabled" v-model="formData.reportProject.serviceUnitPhone"></el-input> <el-input :disabled="isDisabled" v-model="formData.reportProject.serviceUnitPhone"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" > <!-- <el-col :span="6" >-->
<el-form-item label="文号" > <!-- <el-form-item label="文号" >-->
<el-input :disabled="isDisabled" v-model="formData.reportProject.referenceNumber" /> <!-- <el-input :disabled="isDisabled" v-model="formData.reportProject.referenceNumber" />-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="6" > <!-- <el-col :span="6" >-->
<el-form-item label="发文日期" > <!-- <el-form-item label="发文日期" >-->
<el-date-picker <!-- <el-date-picker-->
:disabled="isDisabled" <!-- :disabled="isDisabled"-->
v-model="formData.reportProject.publicationDate" <!-- v-model="formData.reportProject.publicationDate"-->
style="width: 100%" <!-- style="width: 100%"-->
type="date" <!-- type="date"-->
placeholder="选择发文日期" <!-- placeholder="选择发文日期"-->
/> <!-- />-->
</el-form-item> <!-- </el-form-item>-->
</el-col> <!-- </el-col>-->
<el-col :span="6"> <el-col :span="6">
<el-form-item label="归档时间"> <el-form-item label="归档时间">
<el-date-picker <el-date-picker
@ -680,7 +680,6 @@ const timeAlertFun=(rowName)=>{
<el-button @click="closePage" >取消</el-button> <el-button @click="closePage" >取消</el-button>
</div> </div>
<div class="flex end mt-20" v-else> <div class="flex end mt-20" v-else>
<el-button type="primary" @click="getAuditTableFun">领导审批记录</el-button> <el-button type="primary" @click="getAuditTableFun">领导审批记录</el-button>
<el-button type="primary" @click="getAuditTableInformFun">签收审批记录</el-button> <el-button type="primary" @click="getAuditTableInformFun">签收审批记录</el-button>
<el-button type="primary" v-if="isAudit && (codeData !='inform')" @click="passFun">通过</el-button> <el-button type="primary" v-if="isAudit && (codeData !='inform')" @click="passFun">通过</el-button>

Loading…
Cancel
Save