123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- <template>
- <div class="addPage">
- <div class="title-p">
- <p>发布</p>
- <p class="reset-button-one" @click="backPage">关闭</p>
- <p class="inquire-button-one"@click="submitForm">确定</p>
- </div>
- <el-form ref="form" class="addPageFormBox" :model="form" :rules="rules" label-width="80px">
- <el-form-item label="标题" prop="title" class="form-item">
- <el-input v-model="form.title" maxLength="30" placeholder="请输入通知标题" style="width:300px;"/>
- </el-form-item>
- <el-form-item label="发布单位" prop="company" class="form-item">
- <el-input v-model="form.company" maxLength="12" placeholder="请输入发布单位" style="width:300px;"/>
- </el-form-item>
- <el-form-item label="发布内容" prop="content" class="form-item">
- <div class="button-max-box">
- <div class="button-big-box">
- <p class="name-p" v-if="form.contentName">{{form.contentName}}</p>
- <el-upload
- class="avatar-uploader button-p"
- :action="uploadImgUrl"
- :show-file-list="false"
- :on-success="(res)=>handleAvatarSuccess(res)"
- :headers="headers"
- :before-upload="beforeAvatarUpload">
- {{form.contentName?'重新上传':'上传文件'}}
- </el-upload>
- <p class="null-p" v-if="form.contentName"></p>
- <p class="del-p" v-if="form.contentName" @click="delItem">删除</p>
- </div>
- <p class="right-text-p" @click="exportModel">下载范例</p>
- </div>
- </el-form-item>
- </el-form>
- </div>
- </template>
- <script>
- import { addNotifyplan,exportModel } from "@/api/laboratory/notifyplan";
- import { getToken } from "@/utils/auth";
- export default {
- name: "addPage",
- data() {
- return {
- uploadImgUrl: this.uploadUrl(), // 上传的图片服务器地址
- headers: {
- Authorization: "Bearer " + getToken(),
- },
- // 表单参数
- form: {},
- // 表单校验
- rules: {
- title: [
- { required: true, message: "请输入通知标题", trigger: "blur" },
- { required: true, message: "请输入通知标题", validator: this.spaceJudgment, trigger: "blur" }
- ],
- company: [
- { required: true, message: "请输入发布单位", trigger: "blur" },
- { required: true, message: "请输入发布单位", validator: this.spaceJudgment, trigger: "blur" }
- ],
- content: [
- { required: true, message: "请上传文件", trigger: "blur" }
- ],
- },
- }
- },
- created() {
- },
- mounted(){
- },
- methods: {
- //下载模板
- exportModel(){
- this.download('/laboratory/notifyplan/exportModel', {}, `计划范例.xlsx`)
- },
- //删除上传文件
- delItem(){
- this.form.content = "";
- this.form.contentName = "";
- this.$forceUpdate();
- },
- //后退
- backPage(){
- this.$parent.pageTypeClick(1);
- },
- //提交
- submitForm(){
- this.$refs["form"].validate(valid => {
- if (valid) {
- this.form.type = 2;
- this.form.contentUrl = this.form.content;
- addNotifyplan(this.form).then( response => {
- this.msgSuccess("新增成功");
- this.$parent.pageTypeClick(1);
- });
- }
- });
- },
- //上传相关
- handleAvatarSuccess(res) {
- let obj ={
- name:this.upDataName,
- url:res.data.url,
- };
- this.form.content = res.data.url;
- this.form.contentName = this.upDataName;
- this.$forceUpdate()
- },
- beforeAvatarUpload(file) {
- let type = false;
- console.log('file',file);
- if (file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type == 'application/vnd.ms-excel') {
- this.upDataName = file.name;
- type = true;
- }else{
- this.$message.error('只能上传xls或xlsx格式表格');
- type = false;
- }
- return type;
- },
- }
- }
- </script>
- <style scoped lang="scss">
- .addPage{
- flex:1;
- display: flex !important;
- flex-direction: column;
- padding:0 20px 20px!important;
- *{
- margin:0;
- }
- .title-p{
- display: flex;
- border-bottom:1px solid #E0E0E0;
- margin-bottom:30px;
- p:nth-child(1){
- flex:1;
- line-height:80px;
- color:#0045AF;
- font-size:18px;
- }
- p:nth-child(2){
- font-size:14px;
- margin:20px 20px 0 0;
- }
- p:nth-child(3){
- font-size:14px;
- margin:20px 0 0;
- }
- }
- .form-item{
- margin-bottom:30px;
- }
- .button-max-box{
- display: flex;
- font-size:14px;
- line-height:40px;
- font-weight:500;
- .button-big-box{
- display: flex;
- border:1px solid #e0e0e0;
- width:300px;
- border-radius:4px;
- .name-p{
- width:150px;
- margin-left:10px;
- color:#486CC2;
- display:block;
- overflow:hidden;
- text-overflow:ellipsis;
- white-space:nowrap;
- }
- .button-p{
- color:#486CC2;
- }
- .null-p{
- height:12px;
- width:1px;
- background: #e0e0e0;
- margin:14px 0;
- }
- .del-p{
- width:60px;
- text-align: center;
- color:#FF3A3A;
- cursor: pointer;
- }
- }
- .right-text-p{
- margin-left:20px;
- cursor: pointer;
- color:#486CC2;
- }
- }
- }
- </style>
|