Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2025-01-23 09:11:21 +08:00
commit b16e351779
7 changed files with 116 additions and 52 deletions

View File

@ -13,6 +13,7 @@
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
size="mini" size="mini"
clearable
:style="{ width: item.width }" :style="{ width: item.width }"
:readonly="item.readonly" :readonly="item.readonly"
/> />
@ -22,6 +23,7 @@
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
size="mini" size="mini"
clearable
:style="{ width: item.width }" :style="{ width: item.width }"
@change="item.change && item.change(that, searchData[item.prop])" @change="item.change && item.change(that, searchData[item.prop])"
> >
@ -37,6 +39,7 @@
v-model="searchData[item.prop]" v-model="searchData[item.prop]"
:placeholder="item.placeholder" :placeholder="item.placeholder"
size="mini" size="mini"
clearable
:style="{ width: item.width }" :style="{ width: item.width }"
@change="item.change && item.change(that, searchData[item.prop])" @change="item.change && item.change(that, searchData[item.prop])"
> >
@ -96,6 +99,7 @@
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" format="yyyy-MM-dd"
:picker-options="item.pickerOption" :picker-options="item.pickerOption"
clearable
/> />
<!-- 时间 --> <!-- 时间 -->
<el-time-select <el-time-select
@ -104,6 +108,7 @@
:placeholder="item.placeholder" :placeholder="item.placeholder"
type="" type=""
:style="{ width: item.width }" :style="{ width: item.width }"
clearable
/> />
<!-- 日期时间 --> <!-- 日期时间 -->
<el-date-picker <el-date-picker
@ -114,6 +119,7 @@
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
:disabled="item.disable && item.disable(searchData[item.prop])" :disabled="item.disable && item.disable(searchData[item.prop])"
:style="{ width: item.width }" :style="{ width: item.width }"
clearable
/> />
<!-- 日期时间段 --> <!-- 日期时间段 -->
<el-date-picker <el-date-picker

View File

@ -3,13 +3,16 @@
ref="sysAttachmentFrom" ref="sysAttachmentFrom"
v-loading="loading" v-loading="loading"
:model="form" :model="form"
label-width="170px" label-width="190px"
size="small" size="small"
:rules="rules" :rules="rules"
class="upload-temporary-file" class="upload-temporary-file"
> >
<div class="base-dialog-body"> <div class="base-dialog-body">
<el-form-item label="文件类型: " prop="FileTypeId"> <el-form-item
:label="$t('dictionary:signature:form:FileTypeId')"
prop="FileTypeId"
>
<el-select <el-select
v-model="form.FileTypeId" v-model="form.FileTypeId"
style="width: 100%" style="width: 100%"
@ -25,7 +28,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="文件: "> <el-form-item :label="$t('dictionary:signature:form:File')">
<div class="upload-container"> <div class="upload-container">
<el-upload <el-upload
class="upload-demo" class="upload-demo"
@ -46,16 +49,16 @@
type="primary" type="primary"
:disabled="form.FileTypeId === ''" :disabled="form.FileTypeId === ''"
:loading="btnLoading" :loading="btnLoading"
>Select</el-button >{{ $t('common:button:check') }}</el-button
> >
<span slot="tip" style="margin-left: 10px" class="el-upload__tip"> <span slot="tip" style="margin-left: 10px" class="el-upload__tip">
(must be in pdf format) ({{ $t('trials:signature:label:mustBepdf') }})
</span> </span>
</el-upload> </el-upload>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="需要签署的用户类型: " :label="$t('dictionary:signature:form:NeedConfirmedUserTypeIdList')"
prop="NeedConfirmedUserTypeIdList" prop="NeedConfirmedUserTypeIdList"
> >
<el-select <el-select
@ -71,7 +74,10 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否仅内部签署: " prop="DocUserSignType"> <el-form-item
:label="$t('dictionary:signature:form:DocUserSignType')"
prop="DocUserSignType"
>
<el-switch <el-switch
v-model="form.DocUserSignType" v-model="form.DocUserSignType"
:active-value="1" :active-value="1"
@ -80,7 +86,7 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="查看最短时间(分钟): " :label="$t('dictionary:signature:form:SignViewMinimumMinutes')"
prop="SignViewMinimumMinutes" prop="SignViewMinimumMinutes"
> >
<el-input-number <el-input-number
@ -105,7 +111,7 @@
:disabled="form.FileTypeId === '' || form.Name === ''" :disabled="form.FileTypeId === '' || form.Name === ''"
:loading="saveBtnLoading" :loading="saveBtnLoading"
@click="handleSave" @click="handleSave"
>Save</el-button >{{ $t('common:button:save') }}</el-button
> >
</el-form-item> </el-form-item>
</div> </div>
@ -138,13 +144,25 @@ export default {
}, },
rules: { rules: {
FileTypeId: [ FileTypeId: [
{ required: true, message: 'Please select', trigger: ['blur'] }, {
required: true,
message: this.$t('common:ruleMessage:select'),
trigger: ['blur'],
},
], ],
SignViewMinimumMinutes: [ SignViewMinimumMinutes: [
{ required: true, message: 'Please specify', trigger: ['change'] }, {
required: true,
message: this.$t('common:ruleMessage:specify'),
trigger: ['change'],
},
], ],
NeedConfirmedUserTypeIdList: [ NeedConfirmedUserTypeIdList: [
{ required: true, message: 'Please select', trigger: ['blur'] }, {
required: true,
message: this.$t('common:ruleMessage:select'),
trigger: ['blur'],
},
], ],
}, },
fileList: [], fileList: [],
@ -211,7 +229,7 @@ export default {
this.fileList = [] this.fileList = []
return true return true
} else { } else {
this.$alert('must be in pdf format') this.$alert(this.$t('trials:signature:label:mustBepdf'))
return false return false
} }
@ -236,7 +254,7 @@ export default {
this.$refs.sysAttachmentFrom.validate((valid) => { this.$refs.sysAttachmentFrom.validate((valid) => {
if (!valid) return if (!valid) return
if (!this.form.Name) { if (!this.form.Name) {
this.$alert('Please select file.') this.$alert(this.$t('trials:signature:message:selectFile'))
return return
} }
this.saveBtnLoading = true this.saveBtnLoading = true
@ -245,7 +263,7 @@ export default {
this.saveBtnLoading = false this.saveBtnLoading = false
this.$emit('closeDialog') this.$emit('closeDialog')
this.$emit('getList') this.$emit('getList')
this.$message.success('Uploaded successfully') this.$message.success(this.$t('common:message:updatedSuccessfully'))
}) })
.catch(() => { .catch(() => {
this.saveBtnLoading = false this.saveBtnLoading = false
@ -263,7 +281,7 @@ export default {
} }
}, },
handleExceed(files, fileList) { handleExceed(files, fileList) {
this.$message.warning(`Upload is currently limited to 1 file`) this.$message.warning(this.$t('upload:rule:maxFile1'))
}, },
checkFileSuffix(fileName) { checkFileSuffix(fileName) {
var typeArr = ['pdf'] var typeArr = ['pdf']

View File

@ -34,7 +34,7 @@
<el-button <el-button
type="primary" type="primary"
icon="el-icon-plus" icon="el-icon-plus"
style="margin-left: auto" style="margin-left: auto; margin-bottom: 10px"
size="small" size="small"
@click="handleAdd" @click="handleAdd"
> >

View File

@ -71,6 +71,8 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.notice-marquee_wrapper{ .notice-marquee_wrapper{
width: 100%; width: 100%;
display: flex;
align-items: center;
/deep/ .el-dialog__header{ /deep/ .el-dialog__header{
padding: 10px; padding: 10px;
} }

View File

@ -17,7 +17,7 @@
<el-form-item :label="$t('trials:notice:table:notificationContent')"> <el-form-item :label="$t('trials:notice:table:notificationContent')">
<el-input <el-input
v-model="searchData.NoticeContent" v-model="searchData.NoticeContent"
style="width:100px;" style="width: 100px"
clearable clearable
/> />
</el-form-item> </el-form-item>
@ -36,7 +36,11 @@
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset"> <el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -44,7 +48,7 @@
</template> </template>
<template slot="main-container"> <template slot="main-container">
<el-table <el-table
v-adaptive="{bottomOffset:60}" v-adaptive="{ bottomOffset: 60 }"
v-loading="loading" v-loading="loading"
:data="list" :data="list"
stripe stripe
@ -79,7 +83,15 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.ActualNoticeStateEnum === 0 ? 'info' : scope.row.ActualNoticeStateEnum === 1 ? 'success' : 'error'"> <el-tag
:type="
scope.row.ActualNoticeStateEnum === 0
? 'info'
: scope.row.ActualNoticeStateEnum === 1
? 'success'
: 'error'
"
>
{{ $fd('NoticeState', scope.row.ActualNoticeStateEnum) }} {{ $fd('NoticeState', scope.row.ActualNoticeStateEnum) }}
</el-tag> </el-tag>
</template> </template>
@ -113,7 +125,12 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<a :href="OSSclientConfig.basePath + scope.row.Path" target="_blank" style="color:#428bca">{{ scope.row.FileName }}</a> <a
:href="OSSclientConfig.basePath + scope.row.Path"
target="_blank"
style="color: #428bca"
>{{ scope.row.FileName }}</a
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -124,11 +141,19 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsRead">{{ $fd('YesOrNo', scope.row.IsRead) }}</el-tag> <el-tag v-if="scope.row.IsRead">{{
<el-tag v-else type="danger">{{ $fd('YesOrNo', scope.row.IsRead) }}</el-tag> $fd('YesOrNo', scope.row.IsRead)
}}</el-tag>
<el-tag v-else type="danger">{{
$fd('YesOrNo', scope.row.IsRead)
}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('common:action:action')" min-width="100" fixed="right"> <el-table-column
:label="$t('common:action:action')"
min-width="100"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
circle circle
@ -136,12 +161,17 @@
icon="el-icon-info" icon="el-icon-info"
@click="showDetail(scope.row)" @click="showDetail(scope.row)"
/> />
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" /> <pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</template> </template>
</BaseContainer> </BaseContainer>
</template> </template>
@ -157,9 +187,10 @@ const searchDataDefault = () => {
ApplicableProjectEnum: null, ApplicableProjectEnum: null,
NoticeModeEnum: null, NoticeModeEnum: null,
NoticeStateEnum: null, NoticeStateEnum: null,
Asc: true, Asc: false,
SortField: 'PublishedTime',
PageIndex: 1, PageIndex: 1,
PageSize: 20 PageSize: 20,
} }
} }
export default { export default {
@ -171,7 +202,7 @@ export default {
searchData: searchDataDefault(), searchData: searchDataDefault(),
list: [], list: [],
total: 0, total: 0,
loading: false loading: false,
} }
}, },
mounted() { mounted() {
@ -180,17 +211,21 @@ export default {
methods: { methods: {
getList() { getList() {
this.loading = true this.loading = true
getUserSystemNoticeList(this.searchData).then(res => { getUserSystemNoticeList(this.searchData)
this.loading = false .then((res) => {
this.list = res.Result.CurrentPageData this.loading = false
this.total = res.Result.TotalCount this.list = res.Result.CurrentPageData
}).catch(() => { this.loading = false }) this.total = res.Result.TotalCount
})
.catch(() => {
this.loading = false
})
}, },
showDetail(row) { showDetail(row) {
var currentNoticeType = this.$fd('NoteType', row.NoticeTypeEnum) var currentNoticeType = this.$fd('NoteType', row.NoticeTypeEnum)
if (row.IsRead || row.ActualNoticeStateEnum !== 1) { if (row.IsRead || row.ActualNoticeStateEnum !== 1) {
this.$alert(row.NoticeContent, currentNoticeType, { this.$alert(row.NoticeContent, currentNoticeType, {
showConfirmButton: false showConfirmButton: false,
}) })
} else { } else {
const h = this.$createElement const h = this.$createElement
@ -200,18 +235,22 @@ export default {
beforeClose: (action, instance, done) => { beforeClose: (action, instance, done) => {
if (action === 'confirm') { if (action === 'confirm') {
instance.confirmButtonLoading = true instance.confirmButtonLoading = true
setSystemNoticeHaveRead(row.Id).then(async res => { setSystemNoticeHaveRead(row.Id)
if (res.IsSuccess) { .then(async (res) => {
await this.$store.dispatch('global/getNoticeList') if (res.IsSuccess) {
this.getList() await this.$store.dispatch('global/getNoticeList')
} this.getList()
instance.confirmButtonLoading = false }
done() instance.confirmButtonLoading = false
}).catch(() => { instance.confirmButtonLoading = false }) done()
})
.catch(() => {
instance.confirmButtonLoading = false
})
} else { } else {
done() done()
} }
} },
}) })
} }
}, },
@ -237,10 +276,9 @@ export default {
this.searchData.SortField = column.prop this.searchData.SortField = column.prop
this.searchData.PageIndex = 1 this.searchData.PageIndex = 1
this.getList() this.getList()
} },
} },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
</style> </style>

View File

@ -59,7 +59,7 @@
/> />
<el-table-column <el-table-column
:label="$t('trials:sysDocBeSigned:table:uploadTime')" :label="$t('trials:sysDocBeSigned:table:uploadTime')"
prop="UpdateTime" prop="CreateTime"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
@ -168,7 +168,7 @@ const searchDataDefault = () => {
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 20,
asc: false, asc: false,
sortField: 'UpdateTime', sortField: 'CreateTime',
} }
} }
export default { export default {

View File

@ -38,7 +38,7 @@
/> />
<el-table-column <el-table-column
:label="$t('trials:sysDocBeSigned:table:uploadTime')" :label="$t('trials:sysDocBeSigned:table:uploadTime')"
prop="UpdateTime" prop="CreateTime"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
/> />
@ -130,7 +130,7 @@ const searchDataDefault = () => {
pageIndex: 1, pageIndex: 1,
pageSize: 20, pageSize: 20,
asc: false, asc: false,
sortField: 'UpdateTime' sortField: 'CreateTime'
} }
} }
export default { export default {