This commit is contained in:
wyuu 2026-07-13 16:08:31 +08:00
commit 4556a93e8b

View File

@ -75,13 +75,14 @@
</template>
</el-table-column>
<el-table-column label="值域" align="left" prop="remark" width="100" show-overflow-tooltip />
<el-table-column label="是否隐藏" align="center" prop="paramHide" width="80">
<el-table-column label="是否必填" align="center" prop="paramHide" width="80">
<template #default="scope">
<dict-tag :options="sys_yes_no" :value="scope.row.paramHide" />
</template>
</el-table-column>
<el-table-column label="表格排序" align="center" prop="paramSequence" width="80" />
<el-table-column label="排序" align="center" prop="paramSort" width="80" />
<el-table-column label="列宽" align="center" prop="paramWidth" width="80" />
<el-table-column label="状态" align="center" prop="status" width="80">
<template #default="scope">
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
@ -120,7 +121,19 @@
<el-input v-model="form.paramName" :placeholder="`请输入${menuname}名称`" />
</el-form-item>
<el-form-item :label="`${menuname}默认值`" prop="paramDefvalue">
<el-input v-model="form.paramDefvalue" :placeholder="`请输入${menuname}默认值`" />
<el-autocomplete
v-model="form.paramDefvalue"
:fetch-suggestions="queryDefaultSuggestions"
placeholder="请输入/选择${menuname}默认值"
clearable
style="width: 100%"
>
<!-- 下拉选项自定义展示 -->
<template #default="{ item }">
<span>{{ item.label }}</span>
<span style="color:#999; margin-left:10px;">{{ item.value }}</span>
</template>
</el-autocomplete>
</el-form-item>
<el-form-item :label="`${menuname}筛选类型`" prop="paramOptiontype">
<el-select v-model="form.paramOptiontype" :placeholder="`请选择${menuname}筛选类型`" style="width: 100%">
@ -135,7 +148,7 @@
<el-form-item :label="`${menuname}查询语句`" prop="paramSql">
<el-input v-model="form.paramSql" type="textarea" placeholder="请输入查询语句" :rows="5" />
</el-form-item>
<el-form-item label="是否隐藏" prop="paramHide">
<el-form-item label="是否必填" prop="paramHide">
<el-radio-group v-model="form.paramHide">
<el-radio v-for="dict in sys_yes_no" :key="dict.value" :label="dict.value">
{{ dict.label }}
@ -145,9 +158,12 @@
<el-form-item label="表格排序" prop="paramSequence">
<el-input-number v-model="form.paramSequence" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="顺序" prop="paramSort">
<el-form-item label="条件顺序" prop="paramSort">
<el-input-number v-model="form.paramSort" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="列宽" prop="paramWidth">
<el-input-number v-model="form.paramWidth" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">
@ -208,14 +224,34 @@ const copyTemplateOptions = ref([])
const paramTypeOptions = ref([
{ label: "过滤参数", value: "0" },
{ label: "显示列", value: "1" },
{ label: "过滤+显示", value: "2" },
{ label: "副标题", value: "2" },
{ label: "汇总栏", value: "3" },
{ label: "子查询", value: "4" },
{ label: "逻辑条件", value: "5" },
{ label: "计算列", value: "6" }
]);
// 图表类型选项
//常用默认值
const defaultOptions = ref([
{ label: "当前日期", value: "[today]" },
{ label: "前一天", value: "[today] -3" },
{ label: "当前日期结束", value: "[today] 23:59:59" },
{ label: "登录机构", value: "[LoginYLJG]" },
{ label: "默认仪器", value: "[DefaultInstr]" },
{ label: "当前时间", value: "[now]" },
{ label: "起始时间", value: "00:00:00" },
{ label: "结束时间", value: "23:59:59" },
{ label: "默认是", value: "1" },
{ label: "默认否", value: "0" }
]);
// 自动补全下拉数据源查询
const queryDefaultSuggestions = (queryString, callback) => {
// 根据输入文本过滤预设选项,无输入则展示全部
const suggestions = defaultOptions.value.filter(item =>
item.label.includes(queryString) || item.value.includes(queryString)
);
callback(suggestions);
};
// 类型选项
const paramOptiontypeOptions = ref([
{ label: "单选框", value: "0", color: "#56BBBD" },
{ label: "下拉框", value: "1", color: "#67C23A" },
@ -226,6 +262,7 @@ const paramOptiontypeOptions = ref([
{ label: "数字框", value: "6", color: "#507F80" },
{ label: "日期框", value: "7", color: "#7E84F7" },
{ label: "时间框", value: "8", color: "#377D22" },
{ label: "日期时间框", value: "9", color: "#7E84F7" },
]);
// ========== 页面状态与数据 ==========
@ -245,13 +282,14 @@ const form = ref({
paramDefvalue: undefined,
precondition: undefined,
paramType: paramTypeOptions.value[0]?.value || "",
paramOptiontype: paramOptiontypeOptions.value[0]?.value || "",
paramOptiontype: paramOptiontypeOptions.value[5]?.value || "",
paramSql: "", // SQL语句(绑定到SqlEditor组件)
paramSequence: 0,
paramHide: "",
paramHide: "N",
paramSort: 0,
status: "0",
remark: undefined
remark: undefined,
paramWidth: 100
});
// 查询参数
@ -301,14 +339,15 @@ function resetForm() {
paramDefvalue: undefined,
precondition: undefined,
paramType: paramTypeOptions.value[0]?.value || "",
paramOptiontype: paramOptiontypeOptions.value[0]?.value || "",
paramOptiontype: paramOptiontypeOptions.value[5]?.value || "",
paramSequence: 0,
paramHide: "",
statsCode: statsCode.value,
paramSql: "",
paramSort: 0,
status: "0",
remark: undefined
remark: undefined,
paramWidth: 100
};
if (proxy && proxy.resetForm) {
proxy.resetForm("statsparamRef");
@ -549,4 +588,5 @@ function getTypes(statsCode0) {
:deep(.compact-form .el-form-item:last-of-type .el-textarea__inner) {
min-height: 60px;
}
</style>