Commit 098f79b2 by wusiyi

feat: 新增操作费管理

parent e3b6b5af
<script>
<script lang="jsx">
export default {
name: 'CustomForm',
components: {},
......@@ -109,63 +109,82 @@ export default {
inline
onSubmit={this.handleSubmit}
onKeyupenterCapture={this.search}>
{this.formConfig?.map((item, index) => (
<el-form-item
style={{
width: item.type === 'textarea' ? '100%' : this.formItemWidth
}}
class={item.type === 'textarea' ? 'textClass' : ''}
prop={item.prop}
rules={(item.renderRules && item.renderRules(this.formData)) || []}
label-width={item.labelWidth || this.formLabelWidth}
key={index}
label={item.name}>
{item.type === 'input' && (
<el-input
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请输入${item.name}`}
clearable></el-input>
)}
{item.type === 'textarea' && (
<el-input
type="textarea"
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请输入${item.name}`}
clearable></el-input>
)}
{item.type === 'select' && (
<el-select
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请选择${item.name}`}
clearable>
{item.options?.map((el, idx) => (
<el-option
label={el.label}
value={el.value}
key={idx}></el-option>
))}
</el-select>
)}
{item.type === 'datePicker' && (
<el-date-picker
value-format="yyyy-MM-dd"
type={item.dateType || 'date'}
placeholder="选择日期"
v-model={this.formData[item.prop]}
clearable
style="width: 100%;"></el-date-picker>
)}
{item.type === 'radio' &&
item.radioOptions?.map((el, idx) => (
<el-radio
{this.formConfig?.map((item, index) => {
if (
typeof item.isShow === 'function' &&
!item.isShow(this.formData)
) {
return null
}
return (
<el-form-item
style={{
width: item.type === 'textarea' ? '100%' : this.formItemWidth
}}
class={item.type === 'textarea' ? 'textClass' : ''}
prop={item.prop}
rules={
(item.renderRules && item.renderRules(this.formData)) || []
}
label-width={item.labelWidth || this.formLabelWidth}
key={index}
label={item.name}>
{item.type === 'input' && (
<el-input
v-model={this.formData[item.prop]}
label={el.value}
key={idx}>
{el.label}
</el-radio>
))}
</el-form-item>
))}
placeholder={item.placeholder || `请输入${item.name}`}
clearable></el-input>
)}
{item.type === 'inputNumber' && (
<el-input-number
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请输入${item.name}`}
clearable
step={item.step || 1}
controls-position={item.position || 'right'}
style="width: 100%;"></el-input-number>
)}
{item.type === 'textarea' && (
<el-input
type="textarea"
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请输入${item.name}`}
clearable></el-input>
)}
{item.type === 'select' && (
<el-select
v-model={this.formData[item.prop]}
placeholder={item.placeholder || `请选择${item.name}`}
clearable>
{item.options?.map((el, idx) => (
<el-option
label={el.label}
value={el.value}
key={idx}></el-option>
))}
</el-select>
)}
{item.type === 'datePicker' && (
<el-date-picker
value-format="yyyy-MM-dd"
type={item.dateType || 'date'}
placeholder="选择日期"
v-model={this.formData[item.prop]}
clearable
style="width: 100%;"></el-date-picker>
)}
{item.type === 'radio' &&
item.radioOptions?.map((el, idx) => (
<el-radio
v-model={this.formData[item.prop]}
label={el.value}
key={idx}>
{el.label}
</el-radio>
))}
</el-form-item>
)
})}
{this.isCustomButton && (
<el-form-item>
<el-button
......
......@@ -8,6 +8,7 @@ import {
Form,
FormItem,
Input,
InputNumber,
Message,
MessageBox,
Pagination,
......@@ -21,6 +22,7 @@ import {
Cascader,
Radio,
RadioGroup,
RadioButton,
Menu,
Submenu,
MenuItem,
......@@ -36,6 +38,7 @@ import {
Tooltip,
ColorPicker,
CheckboxGroup,
CheckboxButton,
Divider,
Popover,
Upload
......@@ -49,6 +52,7 @@ const components = [
Form,
FormItem,
Input,
InputNumber,
DatePicker,
Pagination,
Switch,
......@@ -57,6 +61,7 @@ const components = [
Cascader,
Radio,
RadioGroup,
RadioButton,
Menu,
MenuItem,
Submenu,
......@@ -75,6 +80,7 @@ const components = [
Tooltip,
ColorPicker,
CheckboxGroup,
CheckboxButton,
Popover,
Upload
]
......@@ -88,13 +94,13 @@ export default {
Vue.prototype.$message = (message) =>
typeof message === 'string'
? Message({
duration: 2500,
message,
})
duration: 2500,
message
})
: Message({
duration: 2500,
...message,
})
duration: 2500,
...message
})
Vue.prototype.$message.success = (message) =>
typeof message === 'string'
? Message.success({ duration: 2500, message })
......@@ -115,5 +121,5 @@ export default {
Vue.prototype.$alert = MessageBox.alert
Vue.prototype.$confirm = MessageBox.confirm
Vue.prototype.$prompt = MessageBox.prompt
},
}
}
......@@ -79,6 +79,12 @@ const routes = [
meta: { title: '服务管理' }
},
{
path: '/saas/operationFee',
component: () => import('@/views/system/operationFee.vue'),
name: 'system_operationFee',
meta: { title: '操作费管理' }
},
{
path: '/saas/countryCode',
component: () => import('@/views/system/countryCode.vue'),
name: 'system_countryCode',
......
......@@ -275,6 +275,14 @@ export default {
icon: 'el-icon-s-order',
index: '/saas/services',
children: []
},
{
id: 6,
path: '',
label: '操作费管理',
icon: 'el-icon-s-order',
index: '/saas/operationFee',
children: []
}
]
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment