tree-select 樹形下拉框

image.png
<template>
  <div class="app-container">
    <el-form
      ref="templateForm"
      :model="formData"
      :rules="rules"
      label-width="90px"
      class="edit-page-form"
    >
      <el-form-item label="模板id" prop="docTreeName" v-show="false">
        <el-input v-model="formData.id" v-show="true" />
      </el-form-item>
      <el-form-item label="模板名稱" prop="docTreeName">
        <el-input
          v-model="formData.docTreeName"
          placeholder="請(qǐng)輸入文書樹模板名稱"
        />
      </el-form-item>
      <el-form-item label="審計(jì)類型" prop="auditBizType">
        <treeselect
          noResultsText="暫無(wú)數(shù)據(jù)"
          v-model="formData.auditBizType"
          :options="auditBizTypeOptions"
          :show-count="true"
          placeholder="請(qǐng)選擇審計(jì)業(yè)務(wù)類型 "
          clearable
          :style="{ width: '100%' }"
          @select="selectChange"
        >
          <label
            :style="{
              color: '#606266',
              'font-family':
                'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif',
              'font-weight': '400',
              'font-size': '14px',
            }"
            slot="option-label"
            slot-scope="{
              node,
              shouldShowCount,
              count,
              labelClassName,
              countClassName,
            }"
            :class="labelClassName"
          >
                             {{ node.label }}
          </label>
        </treeselect>
      </el-form-item>
      <el-form-item label="模板描述" prop="docTreeDesc">
        <el-input
          v-model="formData.docTreeDesc"
          type="textarea"
          placeholder="請(qǐng)輸入模板描述"
          :autosize="{ minRows: 4, maxRows: 4 }"
          :style="{ width: '100%' }"
        ></el-input>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer" style="text-align: center">
      <el-button type="primary" @click="submitTemplateForm">確 定</el-button>
      <el-button @click="templateCancel">取 消</el-button>
    </div>
  </div>
</template>

<script>
import {
  addDocTemplate,
  updateDocTemplate,
} from "../../../api/operation/docTemplate";
import { listTreedict, loadTreeNode } from "../../../api/system/treedict";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";

export default {
  name: "templateInfo",
  components: {
    Treeselect,
  },
  props: {
    templateForm: {
      type: Object,
      required: true,
    },
  },
  data() {
    return {
      formData: {
        id: null,
        docTreeName: null,
        auditBizType: null,
        docTreeDesc: null,
      },
      auditBizTypeOptions: [],
      // 表單校驗(yàn)
      rules: {
        auditBizType: [
          {
            required: true,
            message: "審計(jì)類型不能為空",
            trigger: "input",
          },
        ],
        docTreeName: [
          {
            required: true,
            message: "模板名稱不能為空",
            trigger: "blur",
          },
        ],
      },
    };
  },
  watch: {
    templateForm: {
      deep: true,
      handler(newValue, oldValue) {
        console.log("newValue", newValue);
        console.log("oldValue", oldValue);
        console.log("this.formData", this.formData);
        this.formData = {
          id: newValue.id,
          docTreeName: newValue.docTreeName,
          auditBizType: newValue.auditBizType,
          docTreeDesc: newValue.docTreeDesc,
        };
      },
      immediate: true,
    },
  },

  created() {
    this.getListTreeDictselect();
  },

  methods: {
    initFormData() {
      this.$refs["templateForm"].resetFields();
    },
    // 不要用input事件 =>    值更改后發(fā)出。 因?yàn)辄c(diǎn)完編輯再點(diǎn)擊新增 會(huì)導(dǎo)致校驗(yàn)的提示語(yǔ)不會(huì)消失
    // 用select即可解決 =>選擇一個(gè)選項(xiàng)后發(fā)出。
    selectChange(val) {
      console.log("this.fromAddBtn", this.fromAddBtn);
      this.$nextTick(() => {
        this.$refs.templateForm.validateField("auditBizType");
      });
    },
    /** 文書模板提交按鈕 */
    submitTemplateForm() {
      console.log("this.formData.auditBizType", this.formData.auditBizType);
      this.$refs["templateForm"].validate((valid) => {
        console.log("valid", valid);
        if (valid) {
          if (this.templateForm.id != null) {
            updateDocTemplate(this.templateForm).then((response) => {
              this.msgSuccess("模板修改成功");
              this.$emit("closeDialog");
              this.$refs["templateForm"].resetFields();
            });
          } else {
            addDocTemplate(this.templateForm).then((response) => {
              this.msgSuccess("模板新增成功");
              this.$emit("closeDialog");
              this.$refs["templateForm"].resetFields();
            });
          }
        }
      });
    },
    templateCancel() {
      this.$emit("closeDialog");
      this.$refs["templateForm"].resetFields();
      // this.$refs["templateForm"].clearValidate();
    },
    /** 查詢審計(jì)業(yè)務(wù)類型下拉樹結(jié)構(gòu) */
    getListTreeDictselect() {
      loadTreeNode("auditBizType").then((response) => {
        this.auditBizTypeOptions = response.data.filter((item) => {
          if (item.dictId != 1) {
            return true;
          }
        });
      });
    },
  },
};
</script>

<style scoped>
span {
  color: #333;
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
  font-size: 16px;
  margin-top: 2px;
}
/deep/ .audit-notice .el-form-item .el-form-item__label {
  color: #333;
  text-align: left;
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  position: relative;
  font-weight: 500;
  font-size: 16px;
}
</style>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赴蝇,一起剝皮案震驚了整個(gè)濱河市京闰,隨后出現(xiàn)的幾起案子垃瞧,更是在濱河造成了極大的恐慌北滥,老刑警劉巖纹因,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勇哗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡苏研,警方通過查閱死者的電腦和手機(jī)等浊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)摹蘑,“玉大人筹燕,你說(shuō)我怎么就攤上這事⌒坡梗” “怎么了撒踪?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)大渤。 經(jīng)常有香客問我制妄,道長(zhǎng),這世上最難降的妖魔是什么泵三? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任耕捞,我火速辦了婚禮衔掸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘砸脊。我一直安慰自己具篇,他們只是感情好纬霞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布凌埂。 她就那樣靜靜地躺著,像睡著了一般诗芜。 火紅的嫁衣襯著肌膚如雪瞳抓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天伏恐,我揣著相機(jī)與錄音孩哑,去河邊找鬼。 笑死翠桦,一個(gè)胖子當(dāng)著我的面吹牛横蜒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播销凑,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼丛晌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了斗幼?” 一聲冷哼從身側(cè)響起澎蛛,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜕窿,沒想到半個(gè)月后谋逻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桐经,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年毁兆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阴挣。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡气堕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屯吊,到底是詐尸還是另有隱情送巡,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布盒卸,位于F島的核電站骗爆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蔽介。R本人自食惡果不足惜摘投,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一煮寡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犀呼,春花似錦幸撕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至宋光,卻和暖如春貌矿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罪佳。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工逛漫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赘艳。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓酌毡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蕾管。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枷踏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容