Commit 730d022e authored by liang's avatar liang

Merge branch 'dev' of https://inno.sh-sict.com/gitlab/qq5616657/agcs2.0-web into dev

# Conflicts:
#	src/views/Home/index.vue
parents 1035b2c8 fc8b1546
......@@ -20,254 +20,250 @@
>
<el-row>
<template v-for="(item, index) in formDataSet">
<el-col
<!-- <el-col
v-if="!item.hidden"
:span="item.spanCount ? item.spanCount : countLine"
:key="item.prop"
:class="item.class"
> -->
<el-form-item
:key="index"
:label="item.label ? `${item.label}:` : ''"
:label-width="item.labelWidth"
:prop="item.prop"
:rules="item.rules"
:class="item.className"
:style="item.style"
>
<el-form-item
:key="index"
:label="item.label ? `${item.label}:` : ''"
:label-width="item.labelWidth"
:prop="item.prop"
:rules="item.rules"
:class="item.className"
:style="item.style"
<!-- 按钮控制 -->
<el-button
v-if="item.operation"
class="operBtn"
:type="item.operation.type ? item.operation.type : 'text'"
:autofocus="item.autofocus"
@click="item.operation.func ? item.operation.func(form) : {}"
>
{{
item.operation.text ? item.operation.text : "新增"
}}</el-button
>
<!-- 按钮控制 -->
<el-button
v-if="item.operation"
class="operBtn"
:type="item.operation.type ? item.operation.type : 'text'"
:autofocus="item.autofocus"
@click="item.operation.func ? item.operation.func(form) : {}"
>
{{
item.operation.text ? item.operation.text : "新增"
}}</el-button
>
<!-- 提示 -->
<el-tooltip
v-if="item.tips"
effect="dark"
:content="item.tips"
placement="top"
slot="label"
<!-- 提示 -->
<el-tooltip
v-if="item.tips"
effect="dark"
:content="item.tips"
placement="top"
slot="label"
>
<span :style="item.tipsStyle">{{ item.label }}</span>
</el-tooltip>
<!-- 输入框 input -->
<el-input
v-if="item.type === 'input'"
:type="item.inputType ? item.inputType : ''"
:maxlength="item.maxlength"
:minlength="item.minlength"
:placeholder="item.placeholder"
clearable
:disabled="item.disabled"
v-model="form[item.prop]"
@input="item.func ? item.func($event) : {}"
:resize="item.resize"
:rows="item.rows"
:autosize="item.autosize"
>
<span
:slot="item.slot ? item.slot : 'append'"
v-if="item.unit"
>{{ item.unit }}</span
>
<span :style="item.tipsStyle">{{ item.label }}</span>
</el-tooltip>
</el-input>
<!-- 输入框 input -->
<el-input
v-if="item.type === 'input'"
:type="item.inputType ? item.inputType : ''"
:maxlength="item.maxlength"
:minlength="item.minlength"
:placeholder="item.placeholder"
<!-- 数字输入框 -->
<div v-if="item.type === 'number'" style="display: inline-table">
<el-input-number
:min="item.min"
:max="item.max"
clearable
:precision="item.precision"
:controls="item.controls || false"
:disabled="item.disabled"
v-model="form[item.prop]"
:placeholder="item.placeholder"
@input="item.func ? item.func($event) : {}"
:resize="item.resize"
:rows="item.rows"
:autosize="item.autosize"
style="display: table-cell"
></el-input-number>
<span
v-if="item.append"
class="el-input-group__append"
style="line-height: 28px"
>{{ item.append }}</span
>
<span
:slot="item.slot ? item.slot : 'append'"
v-if="item.unit"
>{{ item.unit }}</span
>
</el-input>
</div>
<!-- 模糊查询输入 -->
<el-autocomplete
v-else-if="item.type === 'autocomplete'"
popper-class="my-autocomplete"
v-model="form[item.prop]"
:fetch-suggestions="item.func"
:placeholder="item.placeholder"
@select="item.selectfun"
clearable
>
<template slot-scope="{ item }">
<div class="name">
{{ item.value }}
<span v-if="item.specification"
>({{ item.specification }})</span
>
</div>
<span class="description">{{ item.description }}</span>
</template>
</el-autocomplete>
<!-- 数字输入框 -->
<div
v-if="item.type === 'number'"
style="display: inline-table"
>
<el-input-number
:min="item.min"
:max="item.max"
clearable
:precision="item.precision"
:controls="item.controls || false"
:disabled="item.disabled"
v-model="form[item.prop]"
:placeholder="item.placeholder"
@input="item.func ? item.func($event) : {}"
style="display: table-cell"
></el-input-number>
<span
v-if="item.append"
class="el-input-group__append"
style="line-height: 28px"
>{{ item.append }}</span
>
</div>
<!-- 模糊查询输入 -->
<el-autocomplete
v-else-if="item.type === 'autocomplete'"
popper-class="my-autocomplete"
v-model="form[item.prop]"
:fetch-suggestions="item.func"
:placeholder="item.placeholder"
@select="item.selectfun"
clearable
<!-- 选择器 -->
<el-select
v-else-if="item.type === 'select'"
:multiple="item.multiple"
:disabled="item.disabled"
v-model="form[item.prop]"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
:filterable="item.filterable ? false : true"
clearable
:value-key="item.key ? item.key : 'value'"
@change="item.func ? item.func($event) : {}"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
:disabled="opt.disabled"
>
<template slot-scope="{ item }">
<div class="name">
{{ item.value }}
<span v-if="item.specification"
>({{ item.specification }})</span
>
</div>
<span class="description">{{ item.description }}</span>
</template>
</el-autocomplete>
<span style="float: left">{{ opt.label }}</span>
<span style="float: right; color: #8492a6; font-size: 10px">{{
opt.description
}}</span>
</el-option>
</el-select>
<!-- 选择器 -->
<el-select
v-else-if="item.type === 'select'"
:multiple="item.multiple"
:disabled="item.disabled"
v-model="form[item.prop]"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
:filterable="item.filterable ? false : true"
clearable
:value-key="item.key ? item.key : 'value'"
@change="item.func ? item.func($event) : {}"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
:disabled="opt.disabled"
>
<span style="float: left">{{ opt.label }}</span>
<span
style="float: right; color: #8492a6; font-size: 10px"
>{{ opt.description }}</span
>
</el-option>
</el-select>
<!-- 模糊查询选择 -->
<el-select
v-else-if="item.type === 'remote'"
v-model="form[item.prop]"
filterable
remote
reserve-keyword
:multiple="item.multiple ? true : false"
:placeholder="item.placeholder"
:remote-method="item.remoteFunc"
v-el-select-loadmore="loadmore"
@change="item.func ? item.func($event) : {}"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 模糊查询选择 -->
<el-select
v-else-if="item.type === 'remote'"
v-model="form[item.prop]"
filterable
remote
reserve-keyword
:multiple="item.multiple ? true : false"
:placeholder="item.placeholder"
:remote-method="item.remoteFunc"
v-el-select-loadmore="loadmore"
@change="item.func ? item.func($event) : {}"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 日期 -->
<el-date-picker
v-else-if="item.type === 'date'"
v-model="form[item.prop]"
:type="item.dateType ? item.dateType : 'date'"
:placeholder="item.placeholder"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
@change="item.func ? item.func($event) : {}"
></el-date-picker>
<!-- 时间 -->
<el-time-picker
v-else-if="item.type === 'time'"
:format="item.format"
:value-format="item.valueFormat"
v-model="form[item.prop]"
:picker-options="item.options"
@change="item.func ? item.func($event) : {}"
></el-time-picker>
<!-- 开关 -->
<el-switch
v-else-if="item.type === 'switch'"
:disabled="item.disabled"
:active-value="item.activeValue || 1"
:inactive-value="item.inactiveValue || 0"
v-model="form[item.prop]"
>
</el-switch>
<!-- 日期 -->
<el-date-picker
v-else-if="item.type === 'date'"
v-model="form[item.prop]"
:type="item.dateType ? item.dateType : 'date'"
:placeholder="item.placeholder"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
@change="item.func ? item.func($event) : {}"
></el-date-picker>
<!-- 时间 -->
<el-time-picker
v-else-if="item.type === 'time'"
:format="item.format"
:value-format="item.valueFormat"
v-model="form[item.prop]"
:picker-options="item.options"
@change="item.func ? item.func($event) : {}"
></el-time-picker>
<!-- 开关 -->
<el-switch
v-else-if="item.type === 'switch'"
:disabled="item.disabled"
:active-value="item.activeValue || 1"
:inactive-value="item.inactiveValue || 0"
v-model="form[item.prop]"
>
</el-switch>
<!-- 单选框 -->
<el-radio
:class="item.class"
v-else-if="item.type === 'radio'"
v-model="form[item.prop]"
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio
>
<!-- 单选框 -->
<el-radio
:class="item.class"
v-else-if="item.type === 'radio'"
v-model="form[item.prop]"
<!-- 多选框 -->
<el-checkbox-group
v-else-if="item.type === 'checkbox'"
v-model="form[item.prop]"
>
<el-checkbox
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio
>
<!-- 多选框 -->
<el-checkbox-group
v-else-if="item.type === 'checkbox'"
v-model="form[item.prop]"
>
<el-checkbox
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
></el-checkbox>
</el-checkbox-group>
:label="opt.label"
></el-checkbox>
</el-checkbox-group>
<!-- 级联 -->
<el-cascader
v-else-if="item.type === 'cascader'"
:options="item.list"
v-model="form[item.prop]"
:clearable="true"
:filterable="true"
></el-cascader>
<!-- 级联 -->
<el-cascader
v-else-if="item.type === 'cascader'"
:options="item.list"
v-model="form[item.prop]"
:clearable="true"
:filterable="true"
></el-cascader>
<!-- 树形 -->
<el-tree
v-else-if="item.type === 'tree'"
ref="tree"
:data="treeList"
show-checkbox
:node-key="item.nodeKey || 'id'"
:props="item.props || defaultProps"
></el-tree>
<!-- 树形 -->
<el-tree
v-else-if="item.type === 'tree'"
ref="tree"
:data="treeList"
show-checkbox
:node-key="item.nodeKey || 'id'"
:props="item.props || defaultProps"
></el-tree>
<!-- 导入文件 -->
<template v-else-if="item.type === 'import'">
<div class="import-container" @click="handleImport">
<span v-if="form[item.prop]">{{ form[item.prop] }}</span>
<span v-else class="wait">{{ item.placeholder }}</span>
<i class="el-icon-upload"></i>
</div>
<input
ref="fileInput"
type="file"
class="import-file"
:accept="item.accept"
@change="handleFileChange($event)"
/>
</template>
<!-- 导入文件 -->
<template v-else-if="item.type === 'import'">
<div class="import-container" @click="handleImport">
<span v-if="form[item.prop]">{{ form[item.prop] }}</span>
<span v-else class="wait">{{ item.placeholder }}</span>
<i class="el-icon-upload"></i>
</div>
<input
ref="fileInput"
type="file"
class="import-file"
:accept="item.accept"
@change="handleFileChange($event)"
/>
</template>
<span v-else-if="item.type === 'text'">{{
form[item.prop]
}}</span>
</el-form-item>
</el-col>
<span v-else-if="item.type === 'text'">{{
form[item.prop]
}}</span>
</el-form-item>
<!-- </el-col> -->
</template>
</el-row>
</el-form>
......@@ -571,4 +567,8 @@ export default {
.el-autocomplete {
width: 100%;
}
.el-row {
display: flex;
flex-wrap: wrap;
}
</style>
......@@ -10,209 +10,204 @@
:style="formStyle"
@submit.native.prevent="handleSearch()"
>
<el-col
v-for="(item, index) in forms"
v-if="!item.hidden"
:key="index"
:xs="item.xs ? item.xs : 24"
:sm="item.sm ? item.sm : 12"
:md="item.md ? item.md : 8"
:lg="item.lg ? item.lg : 8"
:xl="item.xl ? item.xl : 6"
>
<el-form-item
v-if="item.type != 'btn'"
:label="item.label ? item.label + (item.hiddenColon ? '' : ':') : ''"
:prop="item.prop"
:rules="item.rules"
:label-width="item.labelWidth || '110px'"
>
<!-- 输入框 -->
<el-input
v-if="item.type === 'input'"
:id="item.id ? item.id : ''"
v-model="form[item.prop]"
:readonly="item.readonly"
:disabled="item.disabled"
clearable=""
:placeholder="item.placeholder"
@focus="item.focusFunc ? item.focusFunc($event) : {}"
@change="item.func ? item.func($event) : {}"
<div v-for="(item, index) in forms" :key="index">
<template v-if="!item.hidden">
<el-form-item
v-if="item.type != 'btn'"
:label="item.label ? item.label + (item.hiddenColon ? '' : ':') : ''"
:prop="item.prop"
:rules="item.rules"
:label-width="item.labelWidth || '110px'"
>
<span v-if="item.unit" :slot="item.slot ? item.slot : 'append'">
{{ item.unit }}
</span>
</el-input>
<template v-if="item.type === 'textarea'">
<!-- 输入框 -->
<el-input
v-if="item.type === 'input'"
:id="item.id ? item.id : ''"
v-model="form[item.prop]"
type="textarea"
:readonly="item.readonly"
:disabled="item.disabled"
clearable=""
:placeholder="item.placeholder"
:rows="item.rows"
:autosize="item.autosize"
:minlength="item.minlength"
:maxlength="item.maxlength"
:show-word-limit="item.showLimit"
></el-input>
</template>
@focus="item.focusFunc ? item.focusFunc($event) : {}"
@change="item.func ? item.func($event) : {}"
>
<span v-if="item.unit" :slot="item.slot ? item.slot : 'append'">
{{ item.unit }}
</span>
</el-input>
<!-- 模糊查询输入 -->
<el-autocomplete
v-else-if="item.type === 'autocomplete'"
v-model="form[item.prop]"
:popper-class="item.popperClass"
style="width: 100%"
:fetch-suggestions="item.func"
:placeholder="item.placeholder"
clearable
@select="item.selectfun ? item.selectfun($event) : {}"
>
<template slot-scope="{ item }">
<div class="name">{{ item.value }}</div>
<span class="description">{{ item.description }}</span>
<template v-if="item.type === 'textarea'">
<el-input
v-model="form[item.prop]"
type="textarea"
:placeholder="item.placeholder"
:rows="item.rows"
:autosize="item.autosize"
:minlength="item.minlength"
:maxlength="item.maxlength"
:show-word-limit="item.showLimit"
></el-input>
</template>
</el-autocomplete>
<!-- 模糊查询选择 -->
<el-select
v-else-if="item.type === 'remote'"
v-model="form[item.prop]"
filterable
remote
reserve-keyword
:placeholder="item.placeholder"
:remote-method="item.remoteFunc"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 模糊查询输入 -->
<el-autocomplete
v-else-if="item.type === 'autocomplete'"
v-model="form[item.prop]"
:popper-class="item.popperClass"
style="width: 100%"
:fetch-suggestions="item.func"
:placeholder="item.placeholder"
clearable
@select="item.selectfun ? item.selectfun($event) : {}"
>
<template slot-scope="{ item }">
<div class="name">{{ item.value }}</div>
<span class="description">{{ item.description }}</span>
</template>
</el-autocomplete>
<!-- 日期区间 -->
<el-date-picker
v-else-if="item.type === 'daterange'"
v-model="form[item.prop]"
type="daterange"
align="right"
unlink-panels
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
></el-date-picker>
<!-- 模糊查询选择 -->
<el-select
v-else-if="item.type === 'remote'"
v-model="form[item.prop]"
filterable
remote
reserve-keyword
:placeholder="item.placeholder"
:remote-method="item.remoteFunc"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 日期 -->
<el-date-picker
v-else-if="item.type === 'date'"
v-model="form[item.prop]"
:type="item.dateType ? item.dateType : 'date'"
:placeholder="item.placeholder"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
></el-date-picker>
<!-- 日期区间 -->
<el-date-picker
v-else-if="item.type === 'daterange'"
v-model="form[item.prop]"
type="daterange"
align="right"
unlink-panels
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
@change="handleSearch"
></el-date-picker>
<!-- 下拉框 -->
<el-select
v-else-if="item.type === 'select'"
v-model="form[item.prop]"
clearable
filterable
:disabled="item.disabled"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
@change="item.func ? item.func($event) : {}"
>
<el-option
<!-- 日期 -->
<el-date-picker
v-else-if="item.type === 'date'"
v-model="form[item.prop]"
:type="item.dateType ? item.dateType : 'date'"
:placeholder="item.placeholder"
:picker-options="item.options"
:format="item.format"
:value-format="item.valueFormat"
@change="handleSearch"
></el-date-picker>
<!-- 下拉框 -->
<el-select
v-else-if="item.type === 'select'"
v-model="form[item.prop]"
clearable
filterable
:disabled="item.disabled"
:placeholder="item.placeholder ? item.placeholder : '请选择'"
@change="item.func ? item.func($event) : handleSearch()"
>
<el-option
v-for="(opt, optIndex) in item.opts"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 单选框 -->
<el-radio
v-for="(opt, optIndex) in item.opts"
v-else-if="item.type === 'radio'"
:key="optIndex"
:label="opt.label"
:value="item.isSelect ? opt.selectValue : opt.value"
></el-option>
</el-select>
<!-- 单选框 -->
<el-radio
v-for="(opt, optIndex) in item.opts"
v-else-if="item.type === 'radio'"
:key="optIndex"
v-model="form[item.prop]"
:class="item.class"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio
>
v-model="form[item.prop]"
:class="item.class"
:label="opt.value"
@change="item.func ? item.func($event) : {}"
>{{ opt.label }}</el-radio
>
<!-- 级联 -->
<el-cascader
v-else-if="item.type === 'cascader'"
v-model="form[item.prop]"
:style="'width:' + item.width"
:options="item.list"
:change-on-select="item.changeSelect"
:show-all-levels="item.showLevel"
></el-cascader>
<!-- 级联 -->
<el-cascader
v-else-if="item.type === 'cascader'"
v-model="form[item.prop]"
:style="'width:' + item.width"
:options="item.list"
:change-on-select="item.changeSelect"
:show-all-levels="item.showLevel"
></el-cascader>
<!-- 文字 -->
<span v-else-if="item.type === 'text'">{{
item.text ? item.text : form[item.prop]
}}</span>
<!-- 文字 -->
<span v-else-if="item.type === 'text'">{{
item.text ? item.text : form[item.prop]
}}</span>
<!-- 数字输入框 -->
<el-input-number
v-else-if="item.type === 'number'"
v-model="form[item.prop]"
:controls="false"
:min="item.min || 0"
:precision="item.precision"
:disabled="item.disabled || disabled"
/>
<!-- 数字输入框 -->
<el-input-number
v-else-if="item.type === 'number'"
v-model="form[item.prop]"
:controls="false"
:min="item.min || 0"
:precision="item.precision"
:disabled="item.disabled || disabled"
/>
<!-- 图标 -->
<span v-else-if="item.type === 'svg'">
<svg-icon
:style="item.style"
:icon-class="item.iconClass"
class="form-svg"
@click.native="clickSvg(item.func)"
></svg-icon>
</span>
</el-form-item>
<div v-if="item.type == 'btn'" class="flex">
<template v-for="(btn, index) in item.list">
<el-button
v-if="btn.btnType == 'button'"
:key="index"
:type="btn.type"
:size="size"
:icon="btn.icon"
:style="btn.style"
@click="btn.func(form)"
>{{ btn.btnText }}</el-button
>
<div
v-if="btn.btnType == 'tobeModified'"
:key="index"
class="tobeModified"
:style="{ backgroundColor: modifiedFlag ? '#4E68FF' : '#fff' }"
@click="changeModified"
>
<i
:style="{ color: modifiedFlag ? '#fff' : '#d9d9d9' }"
class="el-icon-check"
></i>
<span :style="{ color: modifiedFlag ? '#fff' : '#000' }"
>待修改({{ btn.tobeModified }}</span
<!-- 图标 -->
<span v-else-if="item.type === 'svg'">
<svg-icon
:style="item.style"
:icon-class="item.iconClass"
class="form-svg"
@click.native="clickSvg(item.func)"
></svg-icon>
</span>
</el-form-item>
<div v-if="item.type == 'btn'" class="flex">
<template v-for="(btn, index) in item.list">
<el-button
v-if="btn.btnType == 'button'"
:key="index"
:type="btn.type"
:size="size"
:icon="btn.icon"
:style="btn.style"
@click="btn.func(form)"
>{{ btn.btnText }}</el-button
>
</div>
</template>
</div>
</el-col>
<div
v-if="btn.btnType == 'tobeModified'"
:key="index"
class="tobeModified"
:style="{ backgroundColor: modifiedFlag ? '#4E68FF' : '#fff' }"
@click="changeModified"
>
<i
:style="{ color: modifiedFlag ? '#fff' : '#d9d9d9' }"
class="el-icon-check"
></i>
<span :style="{ color: modifiedFlag ? '#fff' : '#000' }"
>待修改({{ btn.tobeModified }}</span
>
</div>
</template>
</div></template
>
</div>
<el-col v-if="lists" :xs="24" :sm="24" :lg="24" style="padding-left: 120px">
<el-button
......@@ -342,6 +337,8 @@ export default {
<style lang="scss" scoped>
.el-form-self {
display: flex;
flex-wrap: wrap;
width: 100%;
margin: 20px 0;
overflow: hidden;
......
......@@ -685,8 +685,8 @@
<template v-if="column.type === 'switch'">
<el-switch
v-model="scope.row[column.value]"
:active-value="1"
:inactive-value="0"
:active-value="0"
:inactive-value="1"
@change="column.func(scope.row, scope.$index)"
></el-switch>
</template>
......
......@@ -110,7 +110,7 @@ export default {
type: Number,
default: 9,
},
fileSize: Number,
fileSize: { type: Number, default: 10 * 1024 * 1024 },
loadText: String,
showFileList: {
type: Boolean,
......@@ -186,8 +186,9 @@ export default {
beforeUpload(file) {
return new Promise((resolve, reject) => {
const size = this.fileSize
console.log(file.size)
if (size && file.size > size) {
this.$message.error("大小超出限制" + this.tip)
this.$message.error("文件大小超出限制,请上传10M以下的文件")
reject()
}
resolve()
......@@ -213,7 +214,7 @@ export default {
// 移除提醒
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.file_name || file.name}?`)
// return this.$confirm(`确定移除 ${file.file_name || file.name}?`)
},
// 移除
......
......@@ -104,10 +104,10 @@ export default {
route: "/allianceintroduction",
name: "联盟介绍",
},
{
route: "/healthpopularization",
name: "健康科普",
},
// {
// route: "/healthpopularization",
// name: "健康科普",
// },
{
route: "/scientificresearch",
name: "科学研究",
......
......@@ -7,7 +7,7 @@
<div class="userInfo">
<error-log></error-log>
<!-- <avatar></avatar> -->
<div v-if="$route.path != '/auditqualitycontrol'" class="fontSelect">
<div v-if="showFontList.includes($route.path)" class="fontSelect">
<div
v-for="(item, index) in fontList"
:key="index"
......@@ -122,6 +122,25 @@ export default {
return {
pulse: false,
isDot: true,
showFontList: [
"/dataoverview",
"/screening/index",
"/screening/draft",
"/followupquery",
"/followupresearch",
"/auditqualitycontrol",
"/field-mapping",
"/systems/form-config",
"/database",
"/systems/colla-group",
"/systems/org",
"/systems/dict",
"/systems/user",
"/systems/role",
"/systems/menu",
"/systems/medicalunion",
"/operation",
],
screeningList: [
{
title: "社区筛查",
......
const state = {
fontSize: localStorage.getItem("fontSize") || 1,
fontSize: localStorage.getItem("fontSize") || 14,
selectedIndex: sessionStorage.getItem("selectedIndex") || "",
refreshFlag: 0,
}
......
......@@ -14,7 +14,7 @@
<div class="list_title">
{{ leftBar[activeBar].name }}
</div>
<ul class="list" v-if="tableData.length > 0">
<ul v-if="tableData.length > 0" class="list">
<li v-for="(item, index) in tableData" :key="index">
<div class="leftImg">
<img
......@@ -62,14 +62,19 @@
{{ item }}<span v-if="index != showTitle.length - 1"> / </span>
</div>
</div>
{{ showText }}
<div class="refuteList">
<!-- <pdf :src="pdfSrc"></pdf> -->
<pdf-view ref="pdfView" :pdf-url="pdfSrc"></pdf-view>
</div>
</div>
</div>
</template>
<script>
import { articleList } from "@/api/operation-management"
import PdfView from "../PdfView/index"
import paginationMixin from "@/components/TabComponents/mixin"
export default {
components: { PdfView },
mixins: [paginationMixin],
data() {
return {
......@@ -89,7 +94,7 @@ export default {
name: "其他",
},
],
showText: "",
pdfSrc: "",
showTitle: [],
showDetail: false,
// 分页数据
......@@ -97,6 +102,15 @@ export default {
tableData: [],
}
},
watch: {
showDetail(v) {
if (v) {
setTimeout(() => {
this.$refs.pdfView.loadPDF()
}, 250)
}
},
},
mounted() {
console.log(this.$route)
if (this.$route.query.tabIndex) {
......@@ -112,6 +126,7 @@ export default {
size: this.pageSize,
current: this.pageIndex,
moduleType: "4",
status: "1",
articleType: this.activeBar - 0 + 1,
}
articleList(params)
......@@ -129,19 +144,23 @@ export default {
changeActive(i) {
this.activeBar = i
this.showDetail = false
this.showText = ""
this.pdfSrc = ""
this.getArticleList()
},
viewDetail(i) {
this.showDetail = true
this.showText = this.tableData[i].articleContent
this.pdfSrc =
"https://ds.cixincloud.com/geca-api/disease-data/file/info/" +
this.tableData[i].filePath[0].bucketName +
"/" +
this.tableData[i].filePath[0].uuidName
this.showTitle[0] = this.leftBar[this.activeBar].name
this.showTitle[1] = this.tableData[i].articleTitle
console.log(this.showText)
console.log(this.pdfSrc)
},
back(index) {
if (index == 0) {
this.showText = ""
this.pdfSrc = ""
this.showDetail = false
}
},
......@@ -268,4 +287,8 @@ export default {
font-family: AlibabaPuHuiTiR;
}
}
.refuteList {
height: 100%;
// overflow: auto;
}
</style>
......@@ -199,7 +199,7 @@ export default {
left: 0;
right: 0;
padding: 10px 0;
background-color: rgba(255, 255, 255, 0.5);
background-color: rgba(255, 255, 255, 1);
.info {
display: flex;
flex-wrap: wrap;
......
<template>
<div class="commonList">
<ul class="left_bar">
<!-- <ul class="left_bar">
<li
v-for="(item, index) in leftBar"
:key="index"
......@@ -9,11 +9,11 @@
>
{{ item.name }}
</li>
</ul>
</ul> -->
<div v-loading="listLoading" class="right_list">
<div class="list_title">
<!-- <div class="list_title">
{{ leftBar[activeBar].name }}
</div>
</div> -->
<ul v-if="tableData.length > 0" class="list">
<li
v-for="(item, index) in tableData"
......@@ -103,7 +103,8 @@ export default {
size: this.pageSize,
current: this.pageIndex,
moduleType: "5",
articleType: this.activeBar - 0 + 1,
status: "1",
// articleType: this.activeBar - 0 + 1,
}
articleList(params)
.then((res) => {
......@@ -159,7 +160,8 @@ export default {
}
}
.right_list {
width: calc(100% - 208px);
width: 100%;
// width: calc(100% - 208px);
height: 760px;
background: #ffffff;
border-radius: 4px;
......
......@@ -2,7 +2,7 @@
<div id="con">
<Notice v-show="isNotice"></Notice>
<div v-show="!isNotice">
<div class="top flex">
<div class="flex">
<div class="left box">
<video :src="videoSrc" controls class="video" />
</div>
......@@ -15,7 +15,10 @@
:label="e.title"
:name="index + 1 + ''"
>
<ul class="tabslist">
<ul
class="tabslist videoTabList"
:style="{ height: videoHeight }"
>
<li
v-for="(item, index) in noticeList"
:key="index"
......@@ -132,7 +135,7 @@
</div>
<!-- 健康科普 -->
<div class="healthPopularization">
<!-- <div class="healthPopularization">
<div class="title_box">
<div class="title">健康科普</div>
<div class="empty"></div>
......@@ -152,7 +155,7 @@
{{ item.name }}
</li>
</ul>
</div>
</div> -->
<!-- 科学研究 -->
<div class="scientificresearch">
......@@ -179,9 +182,9 @@
<div v-show="showFixed" class="fixed_box">
<ul class="f_list">
<el-popover
popper-class="poperbackground"
v-for="(item, index) in rigBarList"
:key="index"
popper-class="poperbackground"
placement="left-start"
title=""
width="200"
......@@ -229,9 +232,10 @@ export default {
isNotice: false,
curPdf: {},
pdfSrc: "",
videoHeight: "0px",
fixIndex: -1,
// videoSrc: require("../../../public/aaa.mp4"),
videoSrc: "",
videoSrc: require("../../../public/video.mp4"),
// videoSrc: "",
exTab: "浙江省典型案例",
example: [
{
......@@ -249,6 +253,9 @@ export default {
{
title: "学术动态",
},
{
title: "健康知识",
},
],
noticeTopList: [
{
......@@ -332,7 +339,24 @@ export default {
this.showFixed = false
}
})
var video = document.querySelector("video")
video.addEventListener("canplay", (e) => {
console.log(e.target.clientHeight)
this.videoHeight = e.target.clientHeight - 66 + "px"
})
})
window.onresize = () =>
(() => {
this.$nextTick(() => {
this.videoHeight =
document.querySelector("video").clientHeight - 66 + "px"
})
})()
},
beforeDestroy() {
window.onresize = () => {}
},
methods: {
setPdf(item) {
......@@ -349,7 +373,10 @@ export default {
item.filePath[0].uuidName
},
handleClick() {
// if (this.curTab == "4") {
// } else {
this.getArticleList(this.curTab)
// }
},
// 获取新闻会议tab的数据
getArticleList(moduleType) {
......@@ -363,7 +390,7 @@ export default {
articleList(params)
.then((res) => {
if (res.code == 1) {
if (["1", "2", "3"].includes(moduleType)) {
if (["1", "2", "3", "4"].includes(moduleType)) {
const d = res.data.records
if (moduleType === "2") {
this.noticeList = [...this.noticeTopList, ...d]
......@@ -413,7 +440,7 @@ export default {
.video {
width: 100%;
border-radius: 5px;
height: 420px;
// height: 420px;
object-fit: fill;
}
}
......@@ -422,7 +449,6 @@ export default {
border-radius: 8px;
overflow: hidden;
.tabslist {
height: 352px;
padding-right: 8px;
overflow: hidden;
display: flex;
......@@ -464,7 +490,7 @@ export default {
}
}
.videoboxs {
height: 100%;
// height: 100%;
}
}
.dataAnalysis {
......
......@@ -15,6 +15,7 @@
:patient-id="patientId"
:screenList="screenList"
@refreshData="refreshData"
@changeShow="changeShow"
></ConfigForms>
</div>
</template>
......@@ -78,6 +79,9 @@ export default {
})
},
methods: {
changeShow() {
this.$emit("changeShow")
},
refreshData(data) {
// this.refreshFlag = false
// this.$nextTick(() => {
......
<template>
<!-- 随访查询 -->
<div class="screeningSearch">
<div v-show="!isDetail">
<div v-show="!isDetail && !show">
<div class="top">
<form-components
ref="form"
......@@ -31,6 +31,7 @@
v-if="isDetail"
@back="back"
></FollowUpDetail>
<followupentry v-if="show" @changeShow="changeShow"></followupentry>
</div>
</template>
<script>
......@@ -40,15 +41,18 @@ import searchMixin from "../searchMixin"
import { getCurrentFormByType } from "@/api/coop-group.js"
import { getFollowSearch } from "@/api/followup"
import FollowUpDetail from "./FollowUpDetail.vue"
import followupentry from "../followupentry"
export default {
components: {
FormComponents,
FollowUpDetail,
followupentry,
},
mixins: [paginationMixin, searchMixin],
data() {
return {
isDetail: false,
show: false,
followId: "",
listLoading: false,
keyword: "",
......@@ -292,6 +296,10 @@ export default {
this.getCurrentFormByType(2)
},
methods: {
changeShow() {
this.$router.push({ query: {} })
this.show = false
},
back() {
this.isDetail = false
const followId = this.$route.query.followId
......@@ -311,8 +319,9 @@ export default {
console.log(v)
},
handleEdit(data, i, index) {
this.show = true
this.$router.push({
path: "/followupentry",
// path: "/followupentry",
query: {
patientId: data.patientId,
followId: data.id,
......@@ -328,9 +337,10 @@ export default {
},
onSearch(form) {
console.log(form)
this.pageIndex = 1
sessionStorage.setItem("followQuery-form", JSON.stringify(form))
this.formEdit = form
// this.handleSearch()
this.handleSearch()
},
onClickSearch() {
this.pageIndex = 1
......
<template>
<!-- 随访调查 -->
<div class="screeningSearch">
<div class="top">
<form-components
:forms="formList"
:formEdit="formEdit"
@handleSearch="onSearch"
></form-components>
</div>
<div class="bot">
<el-table-self
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
<template v-if="!show">
<div class="top">
<form-components
:forms="formList"
:formEdit="formEdit"
@handleSearch="onSearch"
></form-components>
</div>
<div class="bot">
<el-table-self
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
</template>
<followupentry v-if="show" @changeShow="changeShow"></followupentry>
</div>
</template>
<script>
import FormComponents from "@/components/FormComponents"
import followupentry from "../followupentry"
import paginationMixin from "@/components/TabComponents/mixin"
import searchMixin from "../searchMixin"
import { getCurrentFormByType } from "@/api/coop-group.js"
......@@ -35,12 +39,14 @@ import { mapGetters } from "vuex"
export default {
components: {
FormComponents,
followupentry,
},
mixins: [paginationMixin, searchMixin],
data() {
return {
formId: "", //随访表单类型
listLoading: false,
show: false,
keyword: "",
modifiedFlag: false,
columns: [
......@@ -271,6 +277,10 @@ export default {
this.handleSearch() //调试注释
},
methods: {
changeShow() {
this.$router.push({ query: {} })
this.show = false
},
changeModified() {
this.modifiedFlag = !this.modifiedFlag
},
......@@ -287,7 +297,7 @@ export default {
rowOpration(data, i) {
sessionStorage.setItem("formEdit", JSON.stringify(data))
this.$router.push({
path: `/followupentry`,
// path: `/followupentry`,
query: {
patientId: data.patientId,
getData: 0,
......@@ -295,6 +305,7 @@ export default {
model: "add",
},
})
this.show = true
},
async handleSearch() {
this.listLoading = true
......
......@@ -18,7 +18,7 @@
v-if="formType == 1 ? (!disabled ? true : false) : true"
class="draftButton"
:loading="loading"
:disabled="!infoCompelete"
:disabled="formType == 1 ? !infoCompelete : false"
@click="onSubmit(formType)"
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button
>
......@@ -353,17 +353,21 @@ export default {
this.loading = false
} else {
// 返回
this.$router.back()
// this.$router.back()
this.$emit("changeShow")
}
},
continueSubmit() {
sessionStorage.removeItem("index1Data")
this.activeName = "index0"
// 清空表单
for (let i = 0; i < this.$refs.formTabs.length; i++) {
this.$refs.formTabs[i].resetForm()
this.$refs.formTabs[i].initForm()
}
// for (let i = 0; i < this.$refs.formTabs.length; i++) {
// this.$refs.formTabs[i].resetForm()
// this.$refs.formTabs[i].initForm()
// }
this.formTabsList = []
this.formTabs = []
this.getCurrentFormByType(this.formType)
// 清空红字:不符合筛查条件
this.$refs.showDialog.dialogVisible = false
if (this.$route.path != "/screening/add") {
......
......@@ -259,6 +259,9 @@ export default {
.then((res) => {
if (res.code == 1) {
this.$message.success("删除成功")
if (this.tableData.length == 1 && this.pageIndex != 1) {
this.pageIndex--
}
this.handleSearch()
}
})
......
......@@ -6,6 +6,7 @@
<div class="bot-table">
<customs-table
ref="table"
:max-height="780"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
......@@ -135,7 +136,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -223,11 +224,11 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
// 获取新闻会议
getArticleList() {
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
<template>
<div id="medicalunion-management">
<div class="top-btn">
<el-select v-model="selectType" @change="getArticleList">
<el-select v-model="selectType" @change="beforeSearch">
<el-option
v-for="item in selectList"
:key="item.value"
......@@ -17,6 +17,7 @@
ref="table"
:table-data="tableData"
:columns="columns"
:max-height="780"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
......@@ -170,7 +171,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -291,11 +292,15 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
// 获取健康科普
getArticleList() {
beforeSearch() {
this.pageIndex = 1
this.handleSearch()
},
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
......@@ -14,6 +14,7 @@
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
:max-height="780"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
......@@ -135,7 +136,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -223,11 +224,11 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
// 获取新闻会议
getArticleList() {
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
......@@ -15,6 +15,7 @@
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
:max-height="780"
@currentPageChange="handleCurrentChange"
/>
</div>
......@@ -135,7 +136,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -223,11 +224,11 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
// 获取新闻会议
getArticleList() {
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
......@@ -12,6 +12,7 @@
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:max-height="780"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
......@@ -135,7 +136,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -223,11 +224,11 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
// 获取新闻会议
getArticleList() {
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
......@@ -44,7 +44,7 @@ const mixin = {
articleEnable(params).then((res) => {
if (res.code == 1) {
// this.$message.success("保存成功")
this.getArticleList()
this.handleSearch()
}
})
},
......@@ -67,7 +67,8 @@ const mixin = {
this.form = {
status: 1,
}
this.getArticleList()
// this.pageIndex = 1
this.handleSearch()
}
})
} else {
......@@ -89,7 +90,10 @@ const mixin = {
.then((res) => {
if (res.code == 1) {
this.$message.success("删除成功")
this.getArticleList()
if (this.tableData.length == 1 && this.pageIndex != 1) {
this.pageIndex--
}
this.handleSearch()
}
})
.catch(() => {})
......
<template>
<div id="medicalunion-management">
<div class="top-btn">
<el-select v-model="selectType" @change="getArticleList">
<el-select v-model="selectType" @change="beforeSearch">
<el-option
v-for="item in selectList"
:key="item.value"
......@@ -17,6 +17,7 @@
ref="table"
:table-data="tableData"
:columns="columns"
:max-height="780"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
......@@ -161,7 +162,7 @@ export default {
value: "filePath",
},
{
label: "上传时间",
label: "创建时间",
minWidth: 120,
value: "uploadTime",
},
......@@ -277,11 +278,15 @@ export default {
},
watch: {},
mounted() {
this.getArticleList()
this.handleSearch()
},
methods: {
beforeSearch() {
this.pageIndex = 1
this.handleSearch()
},
// 获取健康科普
getArticleList() {
handleSearch() {
this.listLoading = true
let params = {
size: this.pageSize,
......
......@@ -187,6 +187,9 @@ export default {
type: "success",
message: "删除成功!",
})
if (this.tableData.length == 1 && this.pageIndex != 1) {
this.pageIndex--
}
this.handleSearch()
}
})
......
......@@ -345,12 +345,14 @@ export default {
spanCount: 12,
prop: "orgId",
opts: orgList,
rules: [{ required: true, message: "请选择机构" }],
func: this.orgChange,
},
{
type: "select",
label: "科室",
spanCount: 12,
rules: [{ required: true, message: "请选择科室" }],
prop: "deptId",
opts: [],
},
......
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