|
@@ -13,14 +13,35 @@
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
|
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="编码" prop="code">
|
|
|
|
|
- <el-input v-model="form.code" placeholder="请申请编码" disabled>
|
|
|
|
|
- <template slot="append">
|
|
|
|
|
- <el-link :underline="false" @click.native="getCodeOpen"
|
|
|
|
|
- >申请编码
|
|
|
|
|
- </el-link></template
|
|
|
|
|
|
|
+ <el-form-item label="编码分类" prop="codeType">
|
|
|
|
|
+ <ele-tree-select
|
|
|
|
|
+ clearable
|
|
|
|
|
+ :data="list"
|
|
|
|
|
+ v-model="form.codeType"
|
|
|
|
|
+ placeholder="请选择"
|
|
|
|
|
+ default-expand-all
|
|
|
|
|
+ labelKey="name"
|
|
|
|
|
+ childrenKey="sonDirectoryList"
|
|
|
|
|
+ valueKey="id"
|
|
|
|
|
+ @change="typeChange"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
|
+ <el-form-item label="编码方案" prop="businessCodeId">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="form.businessCodeId"
|
|
|
|
|
+ placeholder="请选择"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in options"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :label="item.name"
|
|
|
|
|
+ :value="item.id"
|
|
|
>
|
|
>
|
|
|
- </el-input>
|
|
|
|
|
|
|
+ </el-option>
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
@@ -31,31 +52,18 @@
|
|
|
></DictSelection>
|
|
></DictSelection>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
- <!-- <el-col :span="24">
|
|
|
|
|
- <el-form-item label="上传方式" prop="SCFS">
|
|
|
|
|
- <el-radio-group v-model="SCFS">
|
|
|
|
|
- <el-radio :label="1">手动上传</el-radio>
|
|
|
|
|
- <el-radio :label="2">选择模板</el-radio>
|
|
|
|
|
- </el-radio-group>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col> -->
|
|
|
|
|
- <el-col :span="24">
|
|
|
|
|
- <el-form-item label="文档名称" prop="name">
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="form.name"
|
|
|
|
|
- placeholder="请输入文档名称"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
|
|
+
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
<el-form-item label="文档" prop="storagePath">
|
|
<el-form-item label="文档" prop="storagePath">
|
|
|
<div style="display: flex; align-items: center">
|
|
<div style="display: flex; align-items: center">
|
|
|
<fileUpload
|
|
<fileUpload
|
|
|
v-model="form.storagePath"
|
|
v-model="form.storagePath"
|
|
|
module="main"
|
|
module="main"
|
|
|
- :limit="1"
|
|
|
|
|
|
|
+ :limit="100"
|
|
|
|
|
+ :multiple="true"
|
|
|
@fileChange="fileChange"
|
|
@fileChange="fileChange"
|
|
|
>
|
|
>
|
|
|
|
|
+
|
|
|
</fileUpload>
|
|
</fileUpload>
|
|
|
</div>
|
|
</div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -93,141 +101,163 @@
|
|
|
确认
|
|
确认
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
- <getCode ref="getCode" @success="success"></getCode>
|
|
|
|
|
</ele-modal>
|
|
</ele-modal>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
- import { fileSaveAPI, getDocTreeListAPI } from './api';
|
|
|
|
|
- import FileUpload from './fileUpload.vue';
|
|
|
|
|
- import { setFolderList } from './util.js';
|
|
|
|
|
- import getCode from './getCode.vue';
|
|
|
|
|
- import { mapGetters } from 'vuex';
|
|
|
|
|
|
|
+import { fileSaveAPI,selectTreeList, listParentId,getDocTreeListAPI,listCode} from './api/index';
|
|
|
|
|
+import FileUpload from './fileUpload.vue';
|
|
|
|
|
+import { setFolderList } from './util.js';
|
|
|
|
|
+import { mapGetters } from 'vuex';
|
|
|
|
|
+export default {
|
|
|
|
|
+ components: { FileUpload },
|
|
|
|
|
|
|
|
- export default {
|
|
|
|
|
- components: { FileUpload, getCode },
|
|
|
|
|
-
|
|
|
|
|
- data() {
|
|
|
|
|
- const defaultForm = {
|
|
|
|
|
- name: '', //名称
|
|
|
|
|
- type: '', //类型
|
|
|
|
|
- sizeUnit: '', //大小,
|
|
|
|
|
- unit: '', //单位
|
|
|
|
|
- remark: '', //备注
|
|
|
|
|
- status: '', //状态
|
|
|
|
|
- storagePathId: '',
|
|
|
|
|
- directoryId: '',
|
|
|
|
|
- storagePath: [],
|
|
|
|
|
- id: '',
|
|
|
|
|
- lcyStatus: 1,
|
|
|
|
|
- fileType: 0
|
|
|
|
|
- };
|
|
|
|
|
- return {
|
|
|
|
|
- rules: {
|
|
|
|
|
- name: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
|
|
- code: [{ required: true, message: '请输入', trigger: 'blur' }],
|
|
|
|
|
- directoryId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
|
|
|
|
- storagePath: [{ required: true, message: '请选择', trigger: 'blur' }]
|
|
|
|
|
- },
|
|
|
|
|
- templateVisible: false,
|
|
|
|
|
- folderList: [],
|
|
|
|
|
- defaultForm,
|
|
|
|
|
- code: '',
|
|
|
|
|
- // 表单数据
|
|
|
|
|
- form: { ...defaultForm },
|
|
|
|
|
|
|
+ data() {
|
|
|
|
|
+ const defaultForm = {
|
|
|
|
|
+ name: '', //名称
|
|
|
|
|
+ type: '', //类型
|
|
|
|
|
+ sizeUnit: '', //大小,
|
|
|
|
|
+ unit: '', //单位
|
|
|
|
|
+ remark: '', //备注
|
|
|
|
|
+ status: '', //状态
|
|
|
|
|
+ storagePathId: '',
|
|
|
|
|
+ directoryId: '',
|
|
|
|
|
+ businessCodeId: '',
|
|
|
|
|
+ storagePath: [],
|
|
|
|
|
+ id: '',
|
|
|
|
|
+ lcyStatus: 1,
|
|
|
|
|
+ fileType:0
|
|
|
|
|
+ };
|
|
|
|
|
+ return {
|
|
|
|
|
+ rules: {
|
|
|
|
|
+ businessCodeId: [
|
|
|
|
|
+ { required: true, message: '请选择', trigger: 'blur' }
|
|
|
|
|
+ ],
|
|
|
|
|
+ // codeType: [{ required: true, message: '请选择', trigger: 'blur' }],
|
|
|
|
|
+ directoryId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
|
|
|
|
+ storagePath: [{ required: true, message: '请选择', trigger: 'blur' }]
|
|
|
|
|
+ },
|
|
|
|
|
+ templateVisible: false,
|
|
|
|
|
+ folderList: [],
|
|
|
|
|
+ list: [],
|
|
|
|
|
+ options: [],
|
|
|
|
|
+ defaultForm,
|
|
|
|
|
+ code: '',
|
|
|
|
|
+ // 表单数据
|
|
|
|
|
+ form: { ...defaultForm },
|
|
|
|
|
|
|
|
- // 提交状态
|
|
|
|
|
- loading: false,
|
|
|
|
|
- showEditFlag: false,
|
|
|
|
|
- title: '新建附件'
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ // 提交状态
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ showEditFlag: false,
|
|
|
|
|
+ title: '',
|
|
|
|
|
+ type: '新建附件'
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ // 是否开启响应式布局
|
|
|
|
|
+ styleResponsive() {
|
|
|
|
|
+ return this.$store.state.theme.styleResponsive;
|
|
|
},
|
|
},
|
|
|
- computed: {
|
|
|
|
|
- // 是否开启响应式布局
|
|
|
|
|
- styleResponsive() {
|
|
|
|
|
- return this.$store.state.theme.styleResponsive;
|
|
|
|
|
- },
|
|
|
|
|
- ...mapGetters(['user'])
|
|
|
|
|
|
|
+ ...mapGetters(['user'])
|
|
|
|
|
+ },
|
|
|
|
|
+ async created() {
|
|
|
|
|
+ let query = {
|
|
|
|
|
+ type: 0,
|
|
|
|
|
+ currentUserId: this.user.info.userId
|
|
|
|
|
+ };
|
|
|
|
|
+ this.folderList = await getDocTreeListAPI(query);
|
|
|
|
|
+ setFolderList(this.folderList); //权限过滤
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ async open() {
|
|
|
|
|
+
|
|
|
|
|
+ this.showEditFlag = true;
|
|
|
|
|
+ this.list = await selectTreeList();
|
|
|
|
|
+ this.options= await listCode();
|
|
|
|
|
+ if(this.options.length>0){
|
|
|
|
|
+ this.form.businessCodeId=this.options[0].id
|
|
|
|
|
+ }
|
|
|
|
|
+ this.setTree(this.list);
|
|
|
},
|
|
},
|
|
|
- async created() {
|
|
|
|
|
- let query = {
|
|
|
|
|
- type: 0,
|
|
|
|
|
- currentUserId: this.user.info.userId
|
|
|
|
|
- };
|
|
|
|
|
- this.folderList = await getDocTreeListAPI(query);
|
|
|
|
|
- setFolderList(this.folderList); //权限过滤
|
|
|
|
|
|
|
+ setTree(data) {
|
|
|
|
|
+ data.forEach((item) => {
|
|
|
|
|
+ item.sonDirectoryList = item.sonDirectoryList.filter(
|
|
|
|
|
+ (item) => item.type == 1
|
|
|
|
|
+ );
|
|
|
|
|
+ if (item.sonDirectoryList.length > 0) {
|
|
|
|
|
+ this.setTree(item.sonDirectoryList);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ async typeChange(val) {
|
|
|
|
|
+ let data = await listParentId({
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
|
+ size: 100,
|
|
|
|
|
+ parentId: val
|
|
|
|
|
+ });
|
|
|
|
|
+ this.options = data.list.filter((item) => item.type == 2);
|
|
|
|
|
+ this.form.businessCodeId = '';
|
|
|
},
|
|
},
|
|
|
- methods: {
|
|
|
|
|
- async open() {
|
|
|
|
|
- this.showEditFlag = true;
|
|
|
|
|
- },
|
|
|
|
|
- getCodeOpen() {
|
|
|
|
|
- this.$refs.getCode.open();
|
|
|
|
|
- },
|
|
|
|
|
- fileChange(file) {
|
|
|
|
|
- this.form.name = file.name.replace(/\.[^/.]+$/, '');
|
|
|
|
|
- },
|
|
|
|
|
- success(code) {
|
|
|
|
|
- this.code = code;
|
|
|
|
|
- this.$nextTick(() => {
|
|
|
|
|
- this.$set(this.form, 'code', code);
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- /* 保存编辑 */
|
|
|
|
|
- save() {
|
|
|
|
|
- this.$refs.form.validate(async (valid) => {
|
|
|
|
|
- if (!valid) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- const data = {
|
|
|
|
|
- ...this.form
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ fileChange(file) {
|
|
|
|
|
+ this.form.name = file.name.replace(/\.[^/.]+$/, '');
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
- this.loading = true;
|
|
|
|
|
- fileSaveAPI(data)
|
|
|
|
|
- .then((msg) => {
|
|
|
|
|
- this.loading = false;
|
|
|
|
|
|
|
+ /* 保存编辑 */
|
|
|
|
|
+ save() {
|
|
|
|
|
+ this.$refs.form.validate(async (valid) => {
|
|
|
|
|
+ if (!valid) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- this.cancel();
|
|
|
|
|
- this.$emit('done', msg);
|
|
|
|
|
- })
|
|
|
|
|
- .catch((e) => {
|
|
|
|
|
- this.loading = false;
|
|
|
|
|
- });
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ const data = {
|
|
|
|
|
+ ...this.form,
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- cancel() {
|
|
|
|
|
- this.form = { ...this.defaultForm };
|
|
|
|
|
- this.$refs.form.clearValidate();
|
|
|
|
|
- this.showEditFlag = false;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ this.loading = true;
|
|
|
|
|
+ fileSaveAPI(data)
|
|
|
|
|
+ .then( (msg) => {
|
|
|
|
|
+ this.loading = false;
|
|
|
|
|
+
|
|
|
|
|
+ this.cancel();
|
|
|
|
|
+ this.$emit('done',msg);
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((e) => {
|
|
|
|
|
+ this.loading = false;
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ cancel() {
|
|
|
|
|
+ this.form = { ...this.defaultForm };
|
|
|
|
|
+ this.$refs.form.clearValidate();
|
|
|
|
|
+ this.showEditFlag = false;
|
|
|
}
|
|
}
|
|
|
- };
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
</script>
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
- .aaa {
|
|
|
|
|
|
|
+.aaa {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+
|
|
|
|
|
+ ::v-deep .upload-demo {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
|
|
|
|
- ::v-deep .upload-demo {
|
|
|
|
|
|
|
+ .el-upload--text {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
|
|
|
|
- .el-upload--text {
|
|
|
|
|
|
|
+ button {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
-
|
|
|
|
|
- button {
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- background: #ffffff;
|
|
|
|
|
- border: 1px solid #dbdbdb;
|
|
|
|
|
- border-radius: 5px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ border: 1px solid #dbdbdb;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .el-upload-list {
|
|
|
|
|
- transform: translate(10px, -39px);
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .el-upload-list {
|
|
|
|
|
+ transform: translate(10px, -39px);
|
|
|
|
|
+ position: absolute;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|