###### tags:`Gateweb` Menu Item Issue === 當前環境 --- #### 當前環境的menuItem是由以下資料決定的 * companyType (primary) * role * businessNo * transferType #### 當前的問題 以CompanyType為主的選單分類(統一將所有ct1相關的設定放到ct1_config中) 以簡單情境舉例,這三個維度都各有二種資料,他應該會有幾種組合 | companyType | role |function | -------- | -------- |-------- | ct1 | r1 | f1 | ct1 | r2 | f1 | ct2 | r1 | f1 | ct2 | r2 | f1 #### 情境-新增一個F2給R2 有幾個CompanyType擁有r2的權限,就要新增幾次(ct1+ct2) | companyType | role |function | -------- | ---------- |-------- | ct1 | r1 | f1 | ct1 | r2 | f1 | **ct1** | **r2** | **f2** | ct2 | r1 | f1 | ct2 | r2 | f1 | **ct2** | **r2** | **f2** #### 情境-把F1從R2中移除 有幾個CompanyType擁有r2的權限,就要移除幾次(ct1+ct2) | companyType | role |function | -------- | ---------- |-------- | ct1 | r1 | f1 | ~~ct1~~ | ~~r2~~ | ~~f1~~ | ct1 | r2 | f2 | ct2 | r1 | f1 | ~~ct2~~ | ~~r2~~ | ~~f1~~ | ct2 | r2 | f2 困難的地方在於,R2的權限宣告散佈在各個CompanyType中,因此新增及移除的作業都相當麻煩 #### 情境-單純給單一統編F3 新增的情況相對簡單(假設同公司不會有不同的companytype) | companyType | role |businessNo|function | -------- | ---------- |------|-------- | ct1 | r1 | | f1 | ct1 | r2 | |f2 | ct2 | r1 | |f1 | ct2 | r2 | |f2 | **ct2** | **r2** | **b1** |**f3** #### 情境-單純移除單一統編F1 | companyType | role |businessNo|function | -------- | ---------- |------|-------- | ct1 | r1 | | f1 | ct1 | r2 | |f2 | **ct1** | **r1** | **b1** | **f2** | ct2 | r1 | |f1 | ct2 | r2 | |f2 | **ct2** | **r1** | **b1** | **f2** | ct2 | r2 | b1 |f3 因為b1不能再使用原來ct1跟舊的r1,r2路線,因為他不一樣了 為了這個需求要新增的數量為companyType的數量(ct1+ct2) 又因為組合散落在各個CompanyType中,因此很難找出實際上有多少 要一個一個新增又更困難 #### 修正想法 既然都是增加及刪除功能,那就以功能本身為主 若我們改為使用一個功能一個選單檔案,則在這四個情境中,function的檔案都是用到同一個 因為是在同一個地方定義Role及comapnyType能否看到 即便是比較複雜的案例,f2出現2次也只是同一份jsp的二行而已 而不會是不同jsp(ct1,ct2)的各別一行 即便是在增加維度的案例下也是同一份檔案而已 #### 情境-加入transferType3並讓這些案例擁有F4 | companyType | role |businessNo|transferType|function | -------- | ---------- |------|----- |-------- | ct1 | r1 | | |f1 | ct1 | r2 | | |f2 | ct1 | r1 | b1 | |f2 | ct1 | r1 | | t3 |f4 | ct1 | r2 | | t3 |f4 | ct2 | r1 | | |f1 | ct2 | r2 | | |f2 | ct2 | r1 | b1 | |f2 | ct2 | r2 | b1 | |f3 | ct2 | r1 | | t3 |f4 | ct2 | r2 | | t3 |f4 表格中的F4出現了四次,但那只代表了在F4中的4行程式而已 不會對其它地方有影響
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up