扩展小程序开发

This commit is contained in:
guorui
2025-03-04 11:19:49 +08:00
parent 5c6daa1edb
commit b7993664d6
295 changed files with 27273 additions and 7 deletions

View File

@@ -0,0 +1,36 @@
import request from '@/utils/request'
// 查询费用定价信息列表
export function listDefinition(query) {
return request({
url: '/dict-dictionary/definition/item-definition-page',
method: 'get',
params: query
})
}
// 初始化下拉选
export function initOption(query) {
return request({
url: '/dict-dictionary/definition/init',
method: 'get',
params: query
})
}
// 修改费用定价信息
export function updateDefinition(data) {
return request({
url: '/dict-dictionary/definition/item-definition',
method: 'put',
data: data
})
}
// 修改费用定价信息
export function getOptions() {
return request({
url: '/dict-dictionary/definition/status-enum-option',
method: 'get',
})
}

View File

@@ -0,0 +1,220 @@
<template>
<el-dialog
:title="title"
v-model="localOpen"
width="800px"
append-to-body
@close="cancel"
>
<template #header>
<div class="custom-header">
<span>{{ title }}</span>
</div>
</template>
<div class="scrollable-content">
<el-form ref="definitionRef" :model="fromModel" label-width="140px">
<el-row>
<el-col :span="8">
<el-form-item label-width="100" label="项目编号" prop="itemNo">
<el-input v-model="fromModel.itemNo" disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="项目名称" prop="chargeName">
<el-input v-model="fromModel.chargeName" disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="规格" prop="totalVolume">
<el-input v-model="fromModel.totalVolume" disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="单位" prop="unitCode">
<el-input v-model="fromModel.unitCode" disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="拆零比" prop="partPercent">
<el-input-number
v-model="fromModel.partPercent"
:min="0"
:max="999999.99"
:step="0.01"
:precision="2"
controls-position="right"
:controls="false"
disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label-width="100"
label="指导价"
prop="conditionYbCode"
>
<el-input-number
v-model="fromModel.conditionYbCode"
:min="0"
:max="999999.99"
:step="0.01"
:precision="2"
controls-position="right"
:controls="false"
disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="价格" prop="amount">
<el-input-number
v-model="fromModel.amount"
:min="0"
:max="999999.99"
:step="0.01"
:precision="2"
controls-position="right"
:controls="false"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label-width="100"
label="拆零最小单位"
prop="partMinUnitCode"
>
<el-input v-model="fromModel.partMinUnitCode" disabled="true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label-width="100"
label="拆零指导价"
prop="partConditionPrice"
>
<el-input-number
v-model="fromModel.partConditionPrice"
:min="0"
:max="999999.99"
:step="0.01"
:precision="2"
controls-position="right"
:controls="false"
disabled="true"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="拆零价格" prop="price">
<el-input-number
v-model="fromModel.price"
:min="0"
:max="999999.99"
:step="0.01"
:precision="2"
:controls="false"
controls-position="right"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label-width="100" label="状态" prop="statusEnum">
<el-select
v-model="fromModel.statusEnum"
placeholder="请选择状态"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label-width="100" label="调价说明" prop="description">
<el-input
v-model="fromModel.description"
style="width: 100%"
autosize
type="textarea"
placeholder="请输入调价说明"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
const emit = defineEmits(["submit", "update:open"]);
const props = defineProps({
title: String,
open: Boolean,
formData: Object,
statusOptions: Object
});
const localOpen = ref(props.open);
const definitionRef = ref(null);
const fromModel = ref(props.formData);
const options = ref([]);
/**
* 提交表单函数
*/
const submitForm = () => {
// 调用表单引用上的validate方法进行表单验证
definitionRef.value.validate((valid) => {
if (valid) {
// 验证成功,触发'submit'事件并传递表单数据
fromModel.value.statusEnum = Number(fromModel.value.statusEnum);
// fromModel.value.statusEnum = "active"
emit("submit", fromModel.value);
} else {
// 验证失败,显示错误消息
ElMessage.warning("请确认后再提交");
return false;
}
});
};
/**
* 取消操作的函数
*/
const cancel = () => {
definitionRef.value.resetFields();
emit("update:open", false);
};
watch(
() => props.open,
(newVal) => {
localOpen.value = newVal;
fromModel.value = props.formData;
options.value = props.statusOptions
if (!newVal) {
// 如果对话框关闭,重置表单
definitionRef.value.resetFields();
}
}
);
</script>
<style lang="scss" scoped>
:deep(.el-input-number .el-input__inner){
-webkit-appearance: none;
-moz-appearance: textfield;
text-align: left;
line-height: 1;
}
</style>