Browse Source

AI设置

qin_v19
herenshan112 8 months ago
parent
commit
a44bfa2f5d
  1. 249
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/aiPage.vue
  2. 17
      src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue

249
src/views/sysworkflow/lowcodepage/appPage/appPageForm/aiPage.vue

@ -0,0 +1,249 @@
<!--
@ 作者: 秦东
@ 时间: 2025-04-09 14:37:11
@ 备注: AI相关数据设置
-->
<script lang="ts" setup>
import { formTableField } from "@/api/DesignForm/type";
import { gainFormTableField } from "@/api/DesignForm/requestapi";
import FormDesign from "@/components/DesignForm/public/form/form.vue";
const props = defineProps({
appCont: {
type: Object,
default() {
return {};
},
},
formKey: {
type: String,
default: "",
},
groupKey: {
type: String,
default: "",
},
menuId: {
type: String,
default: "",
},
appPageKey: {
type: String,
default: "",
},
formVersion: {
type: String,
default: "",
},
state: {
type: Object,
default() {
return {};
},
},
});
const formTableField = reactive<formTableField>({});
const aiList = reactive([
{
title: "",
trigger: 1,
openShowType: 1,
},
]);
const aiFormField = ref([]);
//
const addPickTracn = () => {
aiList.push({
title: "",
trigger: 1,
openShowType: 1,
});
props.state.formData.aiConfig = aiList;
};
//
const delList = (index: number) => {
console.log("删除条件=========>", index);
if (aiList && aiList.length > 0) {
aiList.splice(index, 1);
}
};
/**
@ 作者: 秦东
@ 时间: 2025-04-10 08:12:21
@ 功能: 知识库
*/
const libraryList = ref([
{
label: "法律法规",
value: 1,
},
{
label: "安全环保",
value: 2,
},
{
label: "员工守则",
value: 3,
},
]);
/**
@ 作者: 秦东
@ 时间: 2025-04-10 09:46:29
@ 功能: 解析表单数据
*/
const jieForm = () => {
if (props.formKey != "") {
gainFormTableField({ id: props.appPageKey.toString() }).then((data) => {
// console.log('--->',data)
formTableField.masterTable = data.data.masterTable;
formTableField.sunTable = data.data.sunTable;
});
}
};
onMounted(() => {
jieForm();
});
</script>
<template>
<div class="common-layout">
<el-container>
<el-main class="asideBox contBox">
{{ props.state.formData }}
<FormDesign
:type="5"
:form-data="state.formData"
:dict="state.formDict"
v-model:is-web="isWeb"
@optionsValue3Get3="optionsValue3Get3"
/>
</el-main>
<el-aside width="400px" class="asideBox">
<el-divider content-position="left">AI触发条件设置</el-divider>
<el-scrollbar class="aiBox">
<el-card v-for="(item, index) in aiList" class="aiCardBox">
<template #header>
<div class="card-header">
<i class="fa fa-close" @click="delList(index)"></i>
</div>
</template>
<el-form :model="item" label-width="auto">
<el-form-item label="触发字段">
<el-select
v-model="item.title"
multiple
collapse-tags
placeholder="请选择触发字段"
>
<el-option
v-for="oItem in formTableField.masterTable"
:key="oItem.field"
:label="oItem.label"
:value="oItem.field"
/>
</el-select>
</el-form-item>
<el-form-item label="触发方式">
<el-radio-group v-model="item.trigger">
<el-radio :value="1">全部有值</el-radio>
<el-radio :value="2">任一有值</el-radio>
<el-radio :value="3">半数以上有值</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="采用的知识库">
<el-select
v-model="item.library"
multiple
collapse-tags
placeholder="请选择采用的知识库"
>
<el-option
v-for="lItem in libraryList"
:key="lItem.value"
:label="lItem.label"
:value="lItem.value"
/>
</el-select>
</el-form-item>
<el-form-item label="结果呈现方式">
<el-radio-group v-model="item.openShowType">
<el-radio :value="1">底部展示</el-radio>
<el-radio :value="2">消息弹出框</el-radio>
<el-radio :value="3">抽屉</el-radio>
<el-radio :value="4">消息提示</el-radio>
<el-radio :value="5">通知框</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</el-card>
<el-button type="primary" class="aiBut" @click="addPickTracn"
>添加条件</el-button
>
</el-scrollbar>
</el-aside>
</el-container>
</div>
</template>
<style lang="scss" scoped>
.common-layout {
width: 100%;
height: calc(100vh - 40px);
:deep .el-header {
padding: 0px;
}
:deep .el-main {
padding: 10px;
}
.asideBox {
height: calc(100vh - 40px);
}
.contBox {
border-right: 1px solid #ccc;
}
.titleBox {
width: 100%;
height: 40px;
border-bottom: 1px solid #ccc;
display: flex;
align-items: center;
}
.rowBox {
width: 100%;
text-align: center;
}
}
.aiBox {
width: 100%;
height: calc(100vh - 90px);
.aiBut {
width: 94%;
margin-bottom: 15px;
margin-left: 3%;
}
:deep .el-card__header {
padding: 5px 10px;
border: 0;
i {
color: #ff0000;
}
}
:deep .el-card__body {
padding: 0px 10px 10px 10px;
}
}
.aiCardBox {
width: 94%;
margin-top: 15px;
margin-bottom: 15px;
margin-left: 3%;
}
.card-header {
text-align: right;
}
</style>

17
src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue

@ -13,6 +13,7 @@ import PageForm from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFo
import PageFlow from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFlow.vue"; import PageFlow from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFlow.vue";
import PageList from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue"; import PageList from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue";
import PrintSetupPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage.vue"; import PrintSetupPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage.vue";
import AiPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/aiPage.vue";
const props = defineProps({ const props = defineProps({
appCont: { appCont: {
@ -103,6 +104,7 @@ const state = reactive<formStruct>({
inputStyle: {}, inputStyle: {},
}, },
purview: [], purview: [],
aiConfig: [],
}, },
editor: {}, editor: {},
loading: false, loading: false,
@ -220,7 +222,8 @@ onBeforeMount(() => {
<el-tab-pane label="① 页面管理" :name="1"> </el-tab-pane> <el-tab-pane label="① 页面管理" :name="1"> </el-tab-pane>
<el-tab-pane label="② 流程设计" :name="2"> </el-tab-pane> <el-tab-pane label="② 流程设计" :name="2"> </el-tab-pane>
<el-tab-pane label="③ 列表设计" :name="3"> </el-tab-pane> <el-tab-pane label="③ 列表设计" :name="3"> </el-tab-pane>
<el-tab-pane label="④ 打印设计" :name="4"> </el-tab-pane> <el-tab-pane label="④ AI设置" :name="4"> </el-tab-pane>
<el-tab-pane label="⑤ 打印设计" :name="5"> </el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
<div class="headRight"> <div class="headRight">
@ -262,7 +265,7 @@ onBeforeMount(() => {
v-model:app-page-key="appPageKey" v-model:app-page-key="appPageKey"
v-model:form-version="formVersion" v-model:form-version="formVersion"
/> />
<PrintSetupPage <AiPage
v-if="tabsActive == 4" v-if="tabsActive == 4"
v-model:state="state" v-model:state="state"
:form-Key="props.formKey" :form-Key="props.formKey"
@ -272,6 +275,16 @@ onBeforeMount(() => {
v-model:app-page-key="appPageKey" v-model:app-page-key="appPageKey"
v-model:form-version="formVersion" v-model:form-version="formVersion"
/> />
<PrintSetupPage
v-if="tabsActive == 5"
v-model:state="state"
:form-Key="props.formKey"
:app-cont="props.appCont"
:menu-id="menuId"
:group-key="props.groupKey"
v-model:app-page-key="appPageKey"
v-model:form-version="formVersion"
/>
</el-container> </el-container>
</el-container> </el-container>
</div> </div>

Loading…
Cancel
Save