From 3011b9800d6c5bee031d87bc4e225b5b1fb52571 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 23 十一月 2024 09:19:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1
---
company/src/components/business/OperaContractWindow.vue | 187 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 187 insertions(+), 0 deletions(-)
diff --git a/company/src/components/business/OperaContractWindow.vue b/company/src/components/business/OperaContractWindow.vue
new file mode 100644
index 0000000..a9717b9
--- /dev/null
+++ b/company/src/components/business/OperaContractWindow.vue
@@ -0,0 +1,187 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="鍚堝悓鍚嶇О" prop="name">
+ <el-input v-model="form.name" maxlength="50" show-word-limit placeholder="璇疯緭鍏ュ悎鍚屽悕绉�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍚堝悓瀵硅薄" prop="companyType" v-if="type !== 2">
+ <el-radio-group v-model="form.companyType" @change="getList">
+ <el-radio :label="0">浼佷笟</el-radio>
+ <el-radio :label="1">鍟嗘埛</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item :label="type !== 2 ? '浼佷笟/鍟嗘埛鍚嶇О' : '浼佷笟鍚嶇О'" prop="companyId">
+ <el-select v-model="form.companyId" filterable placeholder="璇烽�夋嫨锛屾敮鎸佹悳绱�">
+ <el-option
+ v-for="item in nameList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍚堝悓鏃堕棿" prop="date">
+ <el-date-picker
+ v-model="form.date"
+ type="daterange"
+ @change="changeDate"
+ value-format="yyyy-MM-dd"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="绛剧珷鏂瑰紡" prop="type">
+ <el-radio-group v-model="form.type">
+ <el-radio :label="0">鍙屾柟绛剧珷</el-radio>
+ <el-radio :label="1">浠呮垜鏂圭绔�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鍚堝悓闄勪欢" prop="multifile" :rules="[{required:true,message:'璇蜂笂浼犳柟妗堢‘璁や功'}]">
+ <div v-if="visible">
+ <UploadFile @remove="deleFile" :uploadData="{ folder: 'contract', fileType:'.pdf' }" :fileList="fileList" @uploadSuccess="editFanganFile" />
+ </div>
+ </el-form-item>
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input
+ type="textarea"
+ placeholder="璇疯緭鍏ュ娉�"
+ v-model="form.remark"
+ maxlength="300"
+ show-word-limit
+ v-trim
+ />
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import UploadFile from '@/components/common/UploadFile'
+ import { pageAll } from '@/api/business/company'
+ import { mapState } from 'vuex'
+ export default {
+ name: 'OperaContractWindow',
+ extends: BaseOpera,
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ components: { GlobalWindow, UploadFile },
+ data () {
+ const validatorTime = (rule, value, callback) => {
+ if (!this.form.startTime || !this.form.endTime) {
+ return callback(new Error('璇烽�夋嫨鍚堝悓鏃堕棿'))
+ }
+ callback()
+ }
+ const validatorMultifile = (rule, value, callback) => {
+ if (!this.form.multifile) {
+ return callback(new Error('璇蜂笂浼犲悎鍚岄檮浠�'))
+ }
+ callback()
+ }
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ remark: '',
+ name: '',
+ companyType: 0,
+ type: 0,
+ startTime: '',
+ endTime: '',
+ date: [],
+ multifile: null,
+ companyId: ''
+ },
+ fileList: [],
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ュ悎鍚屽悕绉�' }
+ ],
+ companyType: [
+ { required: true, message: '璇烽�夋嫨鍚堝悓瀵硅薄' }
+ ],
+ companyId: [
+ { required: true, message: '璇烽�夋嫨浼佷笟/鍟嗘埛鍚嶇О' }
+ ],
+ date: [
+ { required: true, validator: validatorTime }
+ ],
+ multifile: [
+ { required: true, validator: validatorMultifile }
+ ],
+ },
+ nameList: [],
+ list: [],
+ type: null
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/contract',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title, target, type) {
+ this.title = title
+ this.type = type
+ this.visible = true
+ if (this.userInfo.type === 0) {
+ this.list = [{ label: '浼佷笟', id: 0 },{ label: '鍟嗘埛', id: 1 }]
+ } else if (this.userInfo.type === 2) {
+ this.list = [{ label: '浼佷笟', id: 0 }]
+ }
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ this.getList()
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ this.getList()
+ },
+ getList() {
+ this.form.companyId = ''
+ pageAll({ type: this.form.companyType })
+ .then(res => {
+ console.log(res)
+ this.nameList = res
+ })
+ },
+ deleFile () {
+ this.form.multifile = null
+ },
+ editFanganFile (data) {
+ console.log(data)
+ this.form.multifile = data
+ },
+ changeDate(e) {
+ if (e) {
+ this.form.startTime = e[0]
+ this.form.endTime = e[1]
+ } else {
+ this.form.startTime = ''
+ this.form.endTime = ''
+ }
+ }
+ }
+ }
+</script>
--
Gitblit v1.9.3