Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
e2e9e3f702
|
@ -74,6 +74,7 @@
|
|||
<div class="header">
|
||||
<div class="title">
|
||||
<div>运行结果</div>
|
||||
<div v-if="virtualRule?.script && !isBeginning">正在运行......</div>
|
||||
</div>
|
||||
<div class="action">
|
||||
<div v-if="virtualRule?.script">
|
||||
|
@ -127,6 +128,7 @@ type propertyType = {
|
|||
last?: string;
|
||||
};
|
||||
const property = ref<propertyType[]>([]);
|
||||
// virtualRule?.rule?.windowType === 'undefined' ? moment(item.time).format('HH:mm:ss')
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
|
|
@ -613,6 +613,7 @@ const onPlatError = (val: any) => {
|
|||
_errorSet.value.add(val)
|
||||
}
|
||||
};
|
||||
|
||||
const _validator = (_rule: any, value: string): Promise<any> =>
|
||||
new Promise((resolve, reject) => {
|
||||
const _item = productList.value.find((item) => item.id === value);
|
||||
|
@ -657,7 +658,7 @@ watch(
|
|||
async (newId) => {
|
||||
if (newId) {
|
||||
queryRegionsList();
|
||||
getProduct();
|
||||
await getProduct();
|
||||
if (newId === ':id' || !newId) return;
|
||||
const resp = await detail(newId as string);
|
||||
const _data: any = resp.result;
|
||||
|
|
|
@ -17,60 +17,66 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { PropType } from "vue";
|
||||
import { PropType } from 'vue';
|
||||
import { Form } from 'jetlinks-ui-components';
|
||||
|
||||
const props = defineProps({
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
default: false,
|
||||
},
|
||||
options: {
|
||||
type: Array as PropType<any[]>,
|
||||
default: () => []
|
||||
default: () => [],
|
||||
},
|
||||
value: {
|
||||
type: String,
|
||||
default: undefined
|
||||
default: undefined,
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: 'product'
|
||||
}
|
||||
})
|
||||
default: 'product',
|
||||
},
|
||||
});
|
||||
|
||||
const emits = defineEmits(['update:value', 'change', 'error']);
|
||||
|
||||
const formItemContext = Form.useInjectFormItemContext()
|
||||
const formItemContext = Form.useInjectFormItemContext();
|
||||
|
||||
const _value = ref<any>(undefined)
|
||||
const _value = ref<any>(undefined);
|
||||
|
||||
const formTouchOff = () => {
|
||||
formItemContext.onFieldChange()
|
||||
}
|
||||
formItemContext.onFieldChange();
|
||||
};
|
||||
|
||||
const _options = computed(() => {
|
||||
if(props.type === 'product') {
|
||||
return props.options.filter(i => i?.state || i.id === props.value)
|
||||
if (props.type === 'product') {
|
||||
return props.options.filter((i) => i?.state || i.id === props.value);
|
||||
} else {
|
||||
return props.options
|
||||
return props.options;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
watchEffect(() => {
|
||||
_value.value = props.value
|
||||
if(props.type !== 'product') {
|
||||
formTouchOff()
|
||||
} else {
|
||||
if(props.value){
|
||||
formTouchOff()
|
||||
watch(
|
||||
() => props.value,
|
||||
() => {
|
||||
_value.value = props.value;
|
||||
if (props.type !== 'product') {
|
||||
formTouchOff();
|
||||
} else {
|
||||
if (props.value) {
|
||||
formTouchOff();
|
||||
}
|
||||
emits('error', props.value);
|
||||
}
|
||||
emits('error', props.value)
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
const productChange = (val: any) => {
|
||||
emits('update:value', val)
|
||||
emits('change', val)
|
||||
}
|
||||
emits('update:value', val);
|
||||
emits('change', val);
|
||||
};
|
||||
</script>
|
|
@ -8,7 +8,6 @@
|
|||
:request="task"
|
||||
:defaultParams="{
|
||||
sorts: [{ name: 'createTime', order: 'desc' }],
|
||||
terms: defaultParams,
|
||||
}"
|
||||
:params="params"
|
||||
>
|
||||
|
@ -125,7 +124,7 @@ const columns = [
|
|||
},
|
||||
];
|
||||
|
||||
const defaultParams = [
|
||||
const defaultParams =
|
||||
{
|
||||
terms: [
|
||||
{
|
||||
|
@ -133,8 +132,8 @@ const defaultParams = [
|
|||
value: route.query.id,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
const getActions = (data: Partial<Record<string, any>>): ActionsType[] => {
|
||||
if (!data) {
|
||||
|
@ -233,7 +232,10 @@ const saveChange = (value: boolean) => {
|
|||
* @param params
|
||||
*/
|
||||
const handleSearch = (e: any) => {
|
||||
params.value = e;
|
||||
const query = {"terms":[
|
||||
e,defaultParams
|
||||
]}
|
||||
params.value = query
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
|
@ -69,11 +69,17 @@
|
|||
v-if="slotProps.channelInfo"
|
||||
class="card-item-content-text"
|
||||
>
|
||||
<Ellipsis
|
||||
style="
|
||||
width: calc(100% - 100px);
|
||||
"
|
||||
>
|
||||
<div
|
||||
class="card-item-content-text-title"
|
||||
>
|
||||
{{ slotProps.channelInfo.name }}
|
||||
</div>
|
||||
</Ellipsis>
|
||||
<Ellipsis
|
||||
style="
|
||||
width: calc(100% - 10px);
|
||||
|
|
|
@ -955,7 +955,7 @@
|
|||
"
|
||||
>
|
||||
<j-form-item
|
||||
label="长度"
|
||||
label="字节长度"
|
||||
:name="[
|
||||
'cluster',
|
||||
index,
|
||||
|
|
|
@ -1244,6 +1244,9 @@ const handleSubmit = () => {
|
|||
if (formData.value.template.messageType === 'markdown') {
|
||||
formData.value.template.markdown!.text = formData.value.template.message
|
||||
}
|
||||
if (formData.value.template.messageType === 'link'){
|
||||
formData.value.template.link!.text = formData.value.template.message
|
||||
}
|
||||
}
|
||||
|
||||
formRef.value?.validate()
|
||||
|
|
|
@ -12,8 +12,9 @@
|
|||
:request="(e) => handleData(e)"
|
||||
model="CARD"
|
||||
:bodyStyle="{
|
||||
padding: 0
|
||||
padding: 0,
|
||||
}"
|
||||
ref="tableRef"
|
||||
:params="params"
|
||||
:gridColumn="2"
|
||||
:noPagination="true"
|
||||
|
@ -83,6 +84,10 @@ const props = defineProps({
|
|||
type: String,
|
||||
default: '',
|
||||
},
|
||||
notifyType: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
});
|
||||
|
||||
const emit = defineEmits(['update:value', 'change', 'update:detail']);
|
||||
|
@ -97,6 +102,7 @@ const getMethodTxt = (type: string) => {
|
|||
|
||||
const params = ref<Record<string, any>>({});
|
||||
const _selectedRowKeys = ref<string[]>([]);
|
||||
const tableRef = ref<any>();
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
@ -129,19 +135,70 @@ const handleSearch = (_params: any) => {
|
|||
params.value = _params;
|
||||
};
|
||||
|
||||
const handleClick = (dt: any) => {
|
||||
const typeObj = {
|
||||
weixin: 'wechat',
|
||||
dingTalk: 'dingtalk',
|
||||
};
|
||||
|
||||
const queryUserList = async (id: string) => {
|
||||
if (!(props.notifyType && props.notifierId)) return '';
|
||||
const resp = await TemplateApi.getUser(
|
||||
typeObj[props.notifyType],
|
||||
props.notifierId,
|
||||
);
|
||||
if (resp.status === 200) {
|
||||
return resp.result?.find((item: any) => item.id === id)?.name;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
};
|
||||
|
||||
const queryOrgList = async (id: string) => {
|
||||
if (!(props.notifyType && props.notifierId)) return '';
|
||||
const resp = await TemplateApi.getDept(
|
||||
typeObj[props.notifyType],
|
||||
props.notifierId,
|
||||
);
|
||||
if (resp.status === 200) {
|
||||
return resp.result?.find((item: any) => item.id === id)?.name;
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
};
|
||||
|
||||
const getOptions = async (dt: any) => {
|
||||
const obj = {};
|
||||
// 钉钉,微信
|
||||
if (props.notifyType === 'weixin') {
|
||||
if (dt?.template?.toParty) {
|
||||
obj['orgName'] = await queryOrgList(dt?.template?.toParty);
|
||||
}
|
||||
if (dt?.template?.toUser) {
|
||||
obj['sendTo'] = await queryUserList(dt?.template?.toUser);
|
||||
}
|
||||
}
|
||||
if (props.notifyType === 'dingTalk') {
|
||||
if (dt?.template?.departmentIdList) {
|
||||
obj['orgName'] = await queryOrgList(dt?.template?.departmentIdList);
|
||||
}
|
||||
if (dt?.template?.userIdList) {
|
||||
obj['sendTo'] = await queryUserList(dt?.template?.userIdList);
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
|
||||
const handleClick = async (dt: any) => {
|
||||
if (_selectedRowKeys.value.includes(dt.id)) {
|
||||
_selectedRowKeys.value = [];
|
||||
emit('update:value', undefined);
|
||||
// emit('change', { templateName: undefined, orgName: undefined, sendTo: undefined });
|
||||
emit('change', { templateName: undefined });
|
||||
emit('change', { templateName: undefined, orgName: undefined, sendTo: undefined });
|
||||
emit('update:detail', undefined);
|
||||
} else {
|
||||
// console.log(dt)
|
||||
const obj = await getOptions(dt)
|
||||
_selectedRowKeys.value = [dt.id];
|
||||
emit('change', { templateName: dt?.name, ...obj });
|
||||
emit('update:value', dt.id);
|
||||
// emit('change', { templateName: dt?.name, orgName: dt.template?.departmentIdList, sendTo: dt.template?.userIdList });
|
||||
emit('change', { templateName: dt?.name });
|
||||
emit('update:detail', dt);
|
||||
}
|
||||
};
|
||||
|
@ -176,6 +233,7 @@ watch(
|
|||
(newValue) => {
|
||||
if (newValue) {
|
||||
_selectedRowKeys.value = [newValue];
|
||||
// (tableRef.value?._dataSource || []).find()
|
||||
} else {
|
||||
_selectedRowKeys.value = [];
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
<NotifyTemplate
|
||||
v-model:value="formModel.templateId"
|
||||
v-model:detail="template"
|
||||
:notifyType="formModel.notifyType"
|
||||
:notifierId="formModel.notifierId"
|
||||
@change="(val) => onValChange(val, 'templateId')"
|
||||
/>
|
||||
|
|
|
@ -261,10 +261,16 @@ const validateAddress = (_rule: Rule, value: string): Promise<any> => {
|
|||
const getTypeOption = () => {
|
||||
getDataTypeDict_api().then((resp: any) => {
|
||||
const result = resp.result as dictItemType[];
|
||||
form.typeOptions = result.map((item) => ({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
}));
|
||||
const options:any = []
|
||||
result.forEach((item) => {
|
||||
if(item.name !== 'redis'){
|
||||
options.push({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
})
|
||||
}
|
||||
});
|
||||
form.typeOptions = options
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
mode="multiple"
|
||||
style="width: calc(100% - 40px)"
|
||||
placeholder="请选择角色"
|
||||
:options="form.roleOptions"
|
||||
:options="_roleOptions"
|
||||
:disabled="form.data.username === 'admin'"
|
||||
></j-select>
|
||||
|
||||
|
@ -123,7 +123,7 @@
|
|||
show-search
|
||||
style="width: calc(100% - 40px)"
|
||||
placeholder="请选择组织"
|
||||
:tree-data="form.departmentOptions"
|
||||
:tree-data="_departmentOptions"
|
||||
:fieldNames="{ label: 'name', value: 'id' }"
|
||||
multiple
|
||||
:filterTreeNode="
|
||||
|
@ -205,6 +205,7 @@ import { DefaultOptionType } from 'ant-design-vue/es/vc-tree-select/TreeSelect';
|
|||
import { AxiosResponse } from 'axios';
|
||||
import { passwordRegEx } from '@/utils/validate';
|
||||
import { filterSelectNode, onlyMessage } from '@/utils/comm';
|
||||
import { uniqBy } from 'lodash-es';
|
||||
|
||||
const deptPermission = 'system/Department';
|
||||
const rolePermission = 'system/Role';
|
||||
|
@ -279,6 +280,9 @@ const form = reactive({
|
|||
roleOptions: [] as optionType[],
|
||||
departmentOptions: [] as DefaultOptionType[],
|
||||
|
||||
_roleOptions: [] as optionType[],
|
||||
_departmentOptions: [] as DefaultOptionType[],
|
||||
|
||||
init: () => {
|
||||
form.getDepartmentList();
|
||||
form.getRoleList();
|
||||
|
@ -286,7 +290,6 @@ const form = reactive({
|
|||
},
|
||||
getUserInfo: () => {
|
||||
const id = props.data.id || '';
|
||||
console.log(111);
|
||||
|
||||
if (props.type === 'add') form.data = {} as formType;
|
||||
else if (props.type === 'reset') form.data = { id } as formType;
|
||||
|
@ -301,6 +304,10 @@ const form = reactive({
|
|||
(item: dictType) => item.id,
|
||||
),
|
||||
};
|
||||
form._roleOptions = resp.result?.roleList?.map((i: any) => {
|
||||
return {label: i.name, value: i.id}
|
||||
});
|
||||
form._departmentOptions = resp.result?.orgList
|
||||
nextTick(() => {
|
||||
formRef.value?.clearValidate();
|
||||
});
|
||||
|
@ -358,6 +365,15 @@ const form = reactive({
|
|||
};
|
||||
},
|
||||
});
|
||||
|
||||
const _roleOptions = computed(() => {
|
||||
return uniqBy([...form.roleOptions, ...form._roleOptions], 'value')
|
||||
})
|
||||
|
||||
const _departmentOptions = computed(() => {
|
||||
return uniqBy([...form.departmentOptions, ...form._departmentOptions], 'id')
|
||||
})
|
||||
|
||||
form.init();
|
||||
|
||||
interface AxiosResponseRewrite<T = any[]> extends AxiosResponse<T, any> {
|
||||
|
|
Loading…
Reference in New Issue