Merge branch 'developer' of http://code.cyweb.top/scj/zhxy/v3/cloud-ui into developer

This commit is contained in:
yaojian
2026-03-06 11:49:08 +08:00
5 changed files with 37 additions and 23 deletions

View File

@@ -28,16 +28,16 @@ node("height_A") {
switch(branch){ switch(branch){
case 'developer' : case 'developer' :
hostPort = 22 hostPort = 22
credentialsId = "scj-v3" credentialsId = "root-with-key-ubu-70"
remoteHost = "192.168.42.127" remoteHost = "192.168.42.127"
namespace = "scj-v3" namespace = "scj-v3"
profile = "developer" profile = "developer"
break; break;
case 'master': case 'master':
hostPort = 22 hostPort = 22
credentialsId = "city-zhxy-deploy" credentialsId = "root-with-key-ubu-70"
remoteHost = "192.168.41.228" remoteHost = "192.168.43.18"
namespace = "scj-v3" namespace = "city-zhxy-school-deploy-v3"
profile = "deploy" profile = "deploy"
break; break;
default: default:
@@ -107,7 +107,7 @@ node("height_A") {
remote.host = "${remoteHost}" remote.host = "${remoteHost}"
remote.allowAnyHosts = true remote.allowAnyHosts = true
withCredentials([sshUserPrivateKey(credentialsId: 'root-with-key-ubu-70', keyFileVariable: 'identity', passphraseVariable: '', usernameVariable: 'username')]) { withCredentials([sshUserPrivateKey(credentialsId: "${credentialsId}", keyFileVariable: 'identity', passphraseVariable: '', usernameVariable: 'username')]) {
remote.user = "${username}" remote.user = "${username}"
remote.port = hostPort remote.port = hostPort
remote.identityFile = identity remote.identityFile = identity
@@ -122,6 +122,7 @@ node("height_A") {
} }
}catch(Exception e){ }catch(Exception e){
isSuccess = false isSuccess = false
currentBuild.result = 'FAILURE' currentBuild.result = 'FAILURE'

View File

@@ -13,8 +13,6 @@
"prettier": "prettier --write ." "prettier": "prettier --write ."
}, },
"dependencies": { "dependencies": {
"file-saver": "^2.0.5",
"xlsx": "^0.18.5",
"@axolo/json-editor-vue": "^0.3.2", "@axolo/json-editor-vue": "^0.3.2",
"@chenfengyuan/vue-qrcode": "^2.0.0", "@chenfengyuan/vue-qrcode": "^2.0.0",
"@element-plus/icons-vue": "^2.0.10", "@element-plus/icons-vue": "^2.0.10",
@@ -38,6 +36,7 @@
"driver.js": "^0.9.8", "driver.js": "^0.9.8",
"echarts": "^5.4.1", "echarts": "^5.4.1",
"element-plus": "2.5.5", "element-plus": "2.5.5",
"file-saver": "^2.0.5",
"form-create-designer": "3.2.11-oem", "form-create-designer": "3.2.11-oem",
"highlight.js": "^11.7.0", "highlight.js": "^11.7.0",
"html-to-image": "^1.11.13", "html-to-image": "^1.11.13",
@@ -46,6 +45,7 @@
"json-editor-vue3": "^1.1.1", "json-editor-vue3": "^1.1.1",
"jsplumb": "2.15.6", "jsplumb": "2.15.6",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mammoth": "^1.11.0",
"marked": "^12.0.2", "marked": "^12.0.2",
"markmap-common": "0.15.6", "markmap-common": "0.15.6",
"markmap-lib": "0.15.8", "markmap-lib": "0.15.8",
@@ -73,7 +73,8 @@
"vue-router": "4.1.6", "vue-router": "4.1.6",
"vue3-tree-org": "^4.2.2", "vue3-tree-org": "^4.2.2",
"vue3-video-play": "1.3.1-beta.6", "vue3-video-play": "1.3.1-beta.6",
"vuedraggable": "^4.1.0" "vuedraggable": "^4.1.0",
"xlsx": "^0.18.5"
}, },
"resolutions": { "resolutions": {
"@achrinza/node-ipc": "^11.0.0", "@achrinza/node-ipc": "^11.0.0",

View File

@@ -503,7 +503,7 @@ const handlePreview = async (file: any) => {
const ext = fileName.split('.').pop()?.toLowerCase() || ''; const ext = fileName.split('.').pop()?.toLowerCase() || '';
// 判断是否是图片 // 判断是否是图片
const imageExts = ['png', 'jpg', 'jpeg', 'gif', 'bmp', 'webp']; const imageExts = ['png', 'jpg', 'jpeg'];
// 判断是否是PDF // 判断是否是PDF
const isPdf = ext === 'pdf'; const isPdf = ext === 'pdf';

View File

@@ -1087,7 +1087,7 @@ const dataForm = reactive({
importApplication: '', importApplication: '',
governmentPurchaseIntent: '', governmentPurchaseIntent: '',
servicePublicSelectSchool: '', servicePublicSelectSchool: '',
// 学校统一采购特殊规则字段5万<=金额<40万 // 学校统一采购特殊规则字段5万<=金额<30万
serviceInviteSelectSchool: '', serviceInviteSelectSchool: '',
servicePublicSelectSchoolAuto: '', servicePublicSelectSchoolAuto: '',
@@ -1285,9 +1285,12 @@ const schoolUnifiedPurchaseFormDisabled = computed(() => {
// 特殊情况字典 value0否 1紧急 2单一 3进口 // 特殊情况字典 value0否 1紧急 2单一 3进口
const isUrgentSpecial = computed(() => dataForm.isSpecial === '1'); const isUrgentSpecial = computed(() => dataForm.isSpecial === '1');
// 是否为特殊情况非0即为特殊情况紧急、单一、进口 // 是否为特殊情况非0即为特殊情况紧急、单一、进口或预算金额>=30万
const isSpecialCase = computed(() => { const isSpecialCase = computed(() => {
return dataForm.isSpecial && dataForm.isSpecial !== '0'; // 特殊情况或预算金额>=30万时需要选择校党委
const isSpecial = dataForm.isSpecial && dataForm.isSpecial !== '0';
const isHighBudget = dataForm.budget != null && dataForm.budget >= BUDGET_FEASIBILITY_THRESHOLD.value;
return isSpecial || isHighBudget;
}); });
// 第二步标题 // 第二步标题
@@ -1418,7 +1421,7 @@ watch(
{ immediate: true } { immediate: true }
); );
// 判断是否自动选择网上商城采购方式5万<=金额<40万服务类目特殊服务类目 // 判断是否自动选择网上商城采购方式5万<=金额<30万服务类目特殊服务类目
const isAutoSelectPurchaseType = computed(() => { const isAutoSelectPurchaseType = computed(() => {
if (!dataForm.budget) return false; if (!dataForm.budget) return false;
const budget = dataForm.budget; const budget = dataForm.budget;
@@ -1430,7 +1433,8 @@ const isAutoSelectPurchaseType = computed(() => {
); );
}); });
// 判断是否显示自动邀请比选模版5万<=金额<40万服务类目特殊服务类目
// 判断是否显示自动邀请比选模版5万<=金额<30万服务类目特殊服务类目
const showAutoInviteSelect = computed(() => { const showAutoInviteSelect = computed(() => {
if (!isDeptPurchase.value) return false; if (!isDeptPurchase.value) return false;
if (!dataForm.budget) return false; if (!dataForm.budget) return false;
@@ -1443,7 +1447,7 @@ const showAutoInviteSelect = computed(() => {
); );
}); });
// 判断是否显示学校统一采购的自动邀请比选模版5万<=金额<40万服务类目特殊服务类目 // 判断是否显示学校统一采购的自动邀请比选模版5万<=金额<30万服务类目特殊服务类目
const showAutoInviteSelectSchool = computed(() => { const showAutoInviteSelectSchool = computed(() => {
if (isDeptPurchase.value) return false; if (isDeptPurchase.value) return false;
if (!dataForm.budget) return false; if (!dataForm.budget) return false;
@@ -1451,7 +1455,7 @@ const showAutoInviteSelectSchool = computed(() => {
return budget >= BUDGET_DEPT_PURCHASE_THRESHOLD.value && budget < BUDGET_PUBLIC_SELECT_THRESHOLD.value && isSpecialServiceCategory.value; return budget >= BUDGET_DEPT_PURCHASE_THRESHOLD.value && budget < BUDGET_PUBLIC_SELECT_THRESHOLD.value && isSpecialServiceCategory.value;
}); });
// 判断是否显示自动公开比选模版(40万<=金额<100万特殊服务类目isMallService=1、isProjectService=1 // 判断是否显示自动公开比选模版(30万<=金额<100万特殊服务类目isMallService=1、isProjectService=1
const showAutoPublicSelect = computed(() => { const showAutoPublicSelect = computed(() => {
if (isDeptPurchase.value) return false; if (isDeptPurchase.value) return false;
if (!dataForm.budget) return false; if (!dataForm.budget) return false;
@@ -1473,7 +1477,7 @@ const getRequirementFileProp = () => {
return 'purchaseRequirement'; return 'purchaseRequirement';
}; };
// 判断学校统一采购是否需要自动设置采购方式5万<=金额<40万服务类目特殊服务类目 // 判断学校统一采购是否需要自动设置采购方式5万<=金额<30万服务类目特殊服务类目
const isAutoSelectPurchaseTypeUnion = computed(() => { const isAutoSelectPurchaseTypeUnion = computed(() => {
if (isDeptPurchase.value) return false; if (isDeptPurchase.value) return false;
if (!dataForm.budget) return false; if (!dataForm.budget) return false;
@@ -1491,8 +1495,16 @@ watch(
() => dataForm.purchaseChannel, () => dataForm.purchaseChannel,
() => isPurchaseCenter.value, () => isPurchaseCenter.value,
], ],
() => { (newValues, oldValues) => {
// 部门自行采购 & 采购途径为”委托采购中心采购”且为新增申请阶段:采购方式隐藏且不设置 const oldIsDeptPurchase = oldValues?.[2];
const newIsDeptPurchase = newValues?.[2];
// 从部门自行采购切换到学校统一采购时:清空采购方式(由系统自动设置或采购中心审批时选择)
if (oldIsDeptPurchase === true && newIsDeptPurchase === false) {
dataForm.purchaseType = '';
}
// 部门自行采购 & 采购途径为"委托采购中心采购"且为新增申请阶段:采购方式隐藏且不设置
// 注意:查看模式和编辑模式不清空已有的采购方式 // 注意:查看模式和编辑模式不清空已有的采购方式
if (isDeptPurchase.value && isEntrustCenterChannel.value && !isFlowEmbed.value && !isViewMode.value && !isEditMode.value) { if (isDeptPurchase.value && isEntrustCenterChannel.value && !isFlowEmbed.value && !isViewMode.value && !isEditMode.value) {
dataForm.purchaseType = ''; dataForm.purchaseType = '';
@@ -2060,7 +2072,7 @@ const getPurchaseTypeDeptDict = async () => {
.map((item: any) => ({ .map((item: any) => ({
id: item.id, id: item.id,
label: item.label || item.dictLabel || item.name, label: item.label || item.dictLabel || item.name,
value: item.value || item.dictValue || item.code, value: String(item.value || item.dictValue || item.code),
})) }))
.filter((item: any) => item.value !== DEPT_PURCHASE_TYPE.ENTRUST_CENTER) .filter((item: any) => item.value !== DEPT_PURCHASE_TYPE.ENTRUST_CENTER)
: []; : [];
@@ -2120,7 +2132,8 @@ const getPurchaseTypeUnionDict = async () => {
? res.data.map((item: any) => ({ ? res.data.map((item: any) => ({
id: item.id, id: item.id,
label: item.label || item.dictLabel || item.name, label: item.label || item.dictLabel || item.name,
value: item.value || item.dictValue || item.code, // 确保 value 为字符串类型,避免 el-select 无法匹配
value: String(item.value || item.dictValue || item.code),
})) }))
: []; : [];
} catch (err) { } catch (err) {

View File

@@ -3,7 +3,6 @@
v-model="visible" v-model="visible"
:title="dialogTitle" :title="dialogTitle"
width="90%" width="90%"
:style="{ maxWidth: '1600px' }"
:close-on-click-modal="false" :close-on-click-modal="false"
destroy-on-close destroy-on-close
class="form-iframe-dialog" class="form-iframe-dialog"