|
@@ -26,6 +26,46 @@
|
|
{{ t('routes.devices.add') }}{{ t('routes.devices.title') }}
|
|
{{ t('routes.devices.add') }}{{ t('routes.devices.title') }}
|
|
</a-button>
|
|
</a-button>
|
|
</template>
|
|
</template>
|
|
|
|
+ <template #subNum="{ model, field }">
|
|
|
|
+ <!-- {{ model[field] }}
|
|
|
|
+
|
|
|
|
+ @press-enter="deviceMapping"-->
|
|
|
|
+ <input-number
|
|
|
|
+ v-model:value="model[field]"
|
|
|
|
+ style="width: 260px; text-align: center"
|
|
|
|
+ class="justify-center suNum"
|
|
|
|
+ :min="0"
|
|
|
|
+ @blur="numOnChange.bind(null, field)"
|
|
|
|
+ :max="999"
|
|
|
|
+ >
|
|
|
|
+ <template #addonBefore>
|
|
|
|
+ <a-button
|
|
|
|
+ size="small"
|
|
|
|
+ type="link"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ numsOnChange(false, field);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <Icon icon="ic:baseline-minus" :size="20" />
|
|
|
|
+ </a-button>
|
|
|
|
+ </template>
|
|
|
|
+ <template #addonAfter>
|
|
|
|
+ <a-button
|
|
|
|
+ size="small"
|
|
|
|
+ type="link"
|
|
|
|
+ @click="
|
|
|
|
+ () => {
|
|
|
|
+ numsOnChange(true, field);
|
|
|
|
+ }
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ <Icon icon="ic:round-plus" :size="20" />
|
|
|
|
+ </a-button>
|
|
|
|
+ </template>
|
|
|
|
+ </input-number>
|
|
|
|
+ </template>
|
|
</BasicForm>
|
|
</BasicForm>
|
|
<div class="table_list">
|
|
<div class="table_list">
|
|
<BasicTable
|
|
<BasicTable
|
|
@@ -64,11 +104,22 @@
|
|
import { selectUserList, saveSubUsers } from '/@/api/corporation/modal';
|
|
import { selectUserList, saveSubUsers } from '/@/api/corporation/modal';
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
import EditModal from './EditModal.vue';
|
|
import EditModal from './EditModal.vue';
|
|
|
|
+ import { Icon } from '/@/components/Icon/index';
|
|
// import { tableState } from './types/hooks';
|
|
// import { tableState } from './types/hooks';
|
|
|
|
+ import { InputNumber } from 'ant-design-vue';
|
|
import AddModal from './AddModal.vue';
|
|
import AddModal from './AddModal.vue';
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
- components: { BasicModal, BasicForm, BasicTable, AddModal, TableAction, EditModal },
|
|
|
|
|
|
+ components: {
|
|
|
|
+ BasicModal,
|
|
|
|
+ BasicForm,
|
|
|
|
+ BasicTable,
|
|
|
|
+ AddModal,
|
|
|
|
+ TableAction,
|
|
|
|
+ EditModal,
|
|
|
|
+ InputNumber,
|
|
|
|
+ Icon,
|
|
|
|
+ },
|
|
props: {
|
|
props: {
|
|
userData: { type: Object },
|
|
userData: { type: Object },
|
|
},
|
|
},
|
|
@@ -131,18 +182,18 @@
|
|
labelWidth: 200,
|
|
labelWidth: 200,
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- field: 'subNum',
|
|
|
|
|
|
+ field: 'shotNum',
|
|
component: 'InputNumber',
|
|
component: 'InputNumber',
|
|
- label: `${t('routes.devices.subNum')} :`,
|
|
|
|
|
|
+ slot: 'subNum',
|
|
|
|
+ label: `可拍摄员工数 :`,
|
|
labelWidth: 200,
|
|
labelWidth: 200,
|
|
rules: [
|
|
rules: [
|
|
{
|
|
{
|
|
required: false,
|
|
required: false,
|
|
// @ts-ignore
|
|
// @ts-ignore
|
|
validator: async (rule, value) => {
|
|
validator: async (rule, value) => {
|
|
- let { addeduser } = getFieldsValue();
|
|
|
|
- console.log('validator', value, addeduser);
|
|
|
|
- if (value < addeduser) {
|
|
|
|
|
|
+ let { addeduser, lookNum } = getFieldsValue();
|
|
|
|
+ if (value < addeduser - lookNum) {
|
|
return Promise.reject('可添加员工总数应大于已添加员工数');
|
|
return Promise.reject('可添加员工总数应大于已添加员工数');
|
|
}
|
|
}
|
|
return Promise.resolve();
|
|
return Promise.resolve();
|
|
@@ -154,11 +205,42 @@
|
|
return {
|
|
return {
|
|
// xxxx props schema, tableAction, formModel checkDevice
|
|
// xxxx props schema, tableAction, formModel checkDevice
|
|
min: 0,
|
|
min: 0,
|
|
|
|
+ max: 999,
|
|
onChange: numOnChange,
|
|
onChange: numOnChange,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
{
|
|
|
|
+ field: 'lookNum',
|
|
|
|
+ component: 'InputNumber',
|
|
|
|
+ slot: 'subNum',
|
|
|
|
+ label: `可带看员工数 :`,
|
|
|
|
+ labelWidth: 200,
|
|
|
|
+ rules: [
|
|
|
|
+ {
|
|
|
|
+ required: false,
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ validator: async (rule, value) => {
|
|
|
|
+ let { addeduser, shotNum } = getFieldsValue();
|
|
|
|
+ console.log('validator', value, addeduser);
|
|
|
|
+ if (value < addeduser - shotNum) {
|
|
|
|
+ return Promise.reject('可添加员工总数应大于已添加员工数');
|
|
|
|
+ }
|
|
|
|
+ return Promise.resolve();
|
|
|
|
+ },
|
|
|
|
+ trigger: 'change',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ componentProps: () => {
|
|
|
|
+ return {
|
|
|
|
+ // xxxx props schema, tableAction, formModel checkDevice
|
|
|
|
+ max: 999,
|
|
|
|
+ min: 0,
|
|
|
|
+ onChange: numsOnChange,
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ {
|
|
field: 'addeduser',
|
|
field: 'addeduser',
|
|
label: `${t('routes.devices.addeduser')}`,
|
|
label: `${t('routes.devices.addeduser')}`,
|
|
labelWidth: 200,
|
|
labelWidth: 200,
|
|
@@ -168,13 +250,7 @@
|
|
];
|
|
];
|
|
const [
|
|
const [
|
|
registerForm,
|
|
registerForm,
|
|
- {
|
|
|
|
- setFieldsValue,
|
|
|
|
- resetFields,
|
|
|
|
- getFieldsValue,
|
|
|
|
- validate,
|
|
|
|
- // setProps,
|
|
|
|
- },
|
|
|
|
|
|
+ { setFieldsValue, resetFields, getFieldsValue, validate, validateFields },
|
|
] = useForm({
|
|
] = useForm({
|
|
labelWidth: 120,
|
|
labelWidth: 120,
|
|
schemas,
|
|
schemas,
|
|
@@ -230,10 +306,23 @@
|
|
});
|
|
});
|
|
}
|
|
}
|
|
function numOnChange(data) {
|
|
function numOnChange(data) {
|
|
- console.log('data', data);
|
|
|
|
- modelRef.subNum = data;
|
|
|
|
- // myData.subNum = event;
|
|
|
|
- // console.log('numOnChange', event);
|
|
|
|
|
|
+ let { lookNum } = getFieldsValue();
|
|
|
|
+ modelRef.subNum = lookNum + data;
|
|
|
|
+ }
|
|
|
|
+ async function numsOnChange(data, type) {
|
|
|
|
+ let formdata = getFieldsValue();
|
|
|
|
+ let value = formdata[type];
|
|
|
|
+ if (data) {
|
|
|
|
+ value++;
|
|
|
|
+ } else {
|
|
|
|
+ value--;
|
|
|
|
+ }
|
|
|
|
+ await setFieldsValue({
|
|
|
|
+ [type]: value,
|
|
|
|
+ });
|
|
|
|
+ let { shotNum, lookNum } = getFieldsValue();
|
|
|
|
+ modelRef.subNum = lookNum + shotNum;
|
|
|
|
+ validateFields(['lookNum', 'shotNum']);
|
|
}
|
|
}
|
|
async function handleDelete(item, type) {
|
|
async function handleDelete(item, type) {
|
|
console.log('handleDelete', item, type);
|
|
console.log('handleDelete', item, type);
|
|
@@ -274,7 +363,8 @@
|
|
let tableData = getDataSource();
|
|
let tableData = getDataSource();
|
|
let res = await saveSubUsers({
|
|
let res = await saveSubUsers({
|
|
id: modelRef.id,
|
|
id: modelRef.id,
|
|
- subNum: modelRef.subNum,
|
|
|
|
|
|
+ shotNum: fromData.shotNum,
|
|
|
|
+ lookNum: fromData.lookNum,
|
|
subUsers: tableData,
|
|
subUsers: tableData,
|
|
});
|
|
});
|
|
console.log('saveTable', res, fromData);
|
|
console.log('saveTable', res, fromData);
|
|
@@ -311,6 +401,7 @@
|
|
handleDelete,
|
|
handleDelete,
|
|
registerEdit,
|
|
registerEdit,
|
|
numOnChange,
|
|
numOnChange,
|
|
|
|
+ numsOnChange,
|
|
modelRef,
|
|
modelRef,
|
|
schemas,
|
|
schemas,
|
|
columns,
|
|
columns,
|